HBase2.1分布式部署
一、部署环境及Hbase各组件简介
Hbase组件简介
1.Client
Client包含了访问Hbase的接口,另外Client还维护了对应的cache来加速Hbase的访问,比如cache的.META.元数据的信息。
2.Zookeeper
HBase通过Zookeeper来做master的高可用、RegionServer的监控、元数据的入口以及集群配置的维护等工作。具体工作如下:
通过Zoopkeeper来保证集群中只有1个master在运行,如果master异常,会通过竞争机制产生新的master提供服务
通过Zoopkeeper来监控RegionServer的状态,当RegionSevrer有异常的时候,通过回调的形式通知Master RegionServer上下线的信息
通过Zoopkeeper存储元数据的统一入口地址
3.Hmaster(类似于NameNode)
master节点是整个Hbase的管理者,其主要职责如下:
1.监控RegionServer
2.处理RegionServer故障转移
3.处理元数据的变更,处理表级别的增删改查(ddl)
4.处理region的分配或转移
5.在空闲时间进行数据的负载均衡
6.通过Zookeeper发布自己的位置给客户端
4.regionServer(类似于DataNode)
regionServer直接对接用户的读写请求,是真正的“干活”的节点。它的功能概括如下:
1.负责存储HBase的实际数据,负责表内数据的增删改查(dml)
2.处理分配给它的Region
3.刷新缓存到HDFS
4.维护Hlog
5.执行压缩
6.负责处理Region分片
5.Region
Hbase表的分片,HBase表会根据RowKey值被切分成不同的region存储在RegionServer中,在一个RegionServer中可以有多个不同的region
部署环境
Hadoop版本:hadoop-2.7.5
部署参考:https://www.cnblogs.com/panwenbin-logs/p/8666589.html
zookeeper版本:zookeeper-3.4.12
部署参考:https://www.cnblogs.com/panwenbin-logs/p/10369402.html
hosts:
192.168.1.131 hadoop01
192.168.1.132 hadoop02
192.168.1.133 hadoop03
sed -i 's#\# StrictHostKeyChecking ask#StrictHostKeyChecking no#' /etc/ssh/ssh_config
systemctl restart sshd
配置节点直接免密登录
时间同步
关闭或放行相关端口
二、配置安装
1.下载安装包
资源下载地址:https://archive.apache.org/dist/hbase/
wget https://archive.apache.org/dist/hbase/2.1.0/hbase-2.1.0-bin.tar.gz
tar xf hbase-2.1.0-bin.tar.gz -C /usr/local
cd /usr/local
ln -sv hbase-2.1.0-bin hbase
2.修改HBase配置文件
hbase-env.sh
vim /usr/local/hbase/conf/hbase-env.sh
export JAVA_HOME=/usr/local/java8
export HBASE_MANAGES_ZK=false #不使用内置zookeeper
hbase-site.xml
vim /usr/local/hbase/conf/hbase-site.xml
<configuration>
<!-- HBase数据在HDFS中的存放的路径 -->
<property>
<name>hbase.rootdir</name>
<value>hdfs://hadoop01:9000/hbase</value>
</property>
<!-- Hbase的运行模式。false是单机模式,true是分布式模式。若为false,Hbase和Zookeeper会
运行在同一个JVM里面 -->
<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
</property>
<!-- ZooKeeper的地址 -->
<property>
<name>hbase.zookeeper.quorum</name>
<value>hadoop01,hadoop02,hadoop03</value>
</property>
<!-- ZooKeeper快照的存储位置 -->
<property>
<name>hbase.zookeeper.property.dataDir</name>
<value>/Data/zookeeper</value>
</property>
<!-- V2.1版本,在分布式情况下, 设置为false -->
<property>
<name>hbase.unsafe.stream.capability.enforce</name>
<value>false</value>
</property>
</configuration>
3.配置环境变量
vim /etc/profile.d/hbase.sh
export HBASE_HOME=/usr/local/hbase
export PATH=$PATH:${HBASE_HOME}/bin:${HBASE_HOME}/sbin
4.复制jar包到lib
cp /usr/local/hbase/lib/client-facing-thirdparty/htrace-core-3.1.0-incubating.jar /usr/local/hbase/lib/ #如果你后续需要使用phoenix的话需要拷贝
5.修改regionservers文件
vim /usr/local/hbase/conf/regionservers
hadoop01
hadoop02
hadoop03
6.同步配置
#加载环境变量和软链参考上面步骤
scp -r /etc/profile.d/hbase.sh hadoop02:/etc/profile.d/
scp -r /usr/local/hbase-2.1.0/ hadoop02:/usr/local/
scp -r /etc/profile.d/hbase.sh hadoop03:/etc/profile.d/
scp -r /usr/local/hbase-2.1.0/ hadoop03:/usr/local/
7.启动HBase
#启动所有mater及regionserver所有节点
start-hbase.sh
#启动指定服务,此时可以不配置regionservers文件
hbase-daemon.sh start master|regionserver
三、验证
hbase shell客户端
hbase shell
hbase(main):001:0> status
1 active master, 2 backup masters, 3 servers, 0 dead, 0.6667 average load
hbase shell客户端
http://hadoop01:16010/
相关端口
16000 master进程RPC端口 16010 master进程http端口 16020 Region Servers进程端口 16030 Region Servers进程RPC端口
四、指定backup master
#如果我们需要指定backup server那么还是可以通过1.X版本通过配置文件的方式添加
vim /usr/local/hbase/conf/backup-masters
hadoop02
hadoop03
#同步到其他节点重启服务即可
"一劳永逸" 的话,有是有的,而 "一劳永逸" 的事却极少