Hbase2 分布式搭建
参考目录:
https://blog.csdn.net/m0_37683758/article/details/86840405
作者:纯洁的微笑
链接:https://www.imooc.com/article/25826
来源:慕课网
本文原创发布于慕课网 ,转载请注明出处,谢谢合作
hbase和hadoop一样也分为单机版、伪分布式版和完全分布式集群版本,这篇文件介绍如何搭建完全分布式集群环境搭建。
hbase依赖于hadoop环境,搭建habase之前首先需要搭建好hadoop的完全集群环境,因此看这篇文章之前需要先看我的上一篇文章:hadoop分布式集群搭建。本文中没有按照独立的zookeeper,使用了hbase自带的zookeeper。
环境准备- hbase软件包: http://mirror.bit.edu.cn/apache/hbase/1.3.1/hbase-1.3.1-bin.tar.gz
- 完成hadoop集群环境搭建
首先在hadoop-master安装配置好之后,在复制到从节点
wget http://mirror.bit.edu.cn/apache/hbase/1.3.1/hbase-1.3.1-bin.tar.gz#解压 tar -xzvf hbase-1.3.1-bin.tar.gz -C /usr/local/#重命名 mv hbase-1.3.1 hbase
配置环境变量vim ~/.bashrc
# Hbase环境变量 export HBASE_HOME=/opt/hbase-2.1.3 export PATH=$PATH:$HBASE_HOME/bin
修改系统变量ulimit
ulimit -n 10240
hbase 相关的配置主要包括hbase-env.sh、hbase-site.xml、regionservers三个文件,都在 /usr/local/hbase/conf目录下面:
配置hbase-env.sh
export JAVA_HOME=/usr/lib/jvm/jre-1.7.0-openjdk.x86_64 #使用独立的ZooKeeper时需要修改HBASE_MANAGES_ZK值为false,为不使用默认自带的ZooKeeper实例。 export HBASE_MANAGES_ZK=true export HBASE_LOG_DIR=/hbase/logs #Hbase日志目录 export HBASE_PID_DIR=/hbase/pids# #Hbase pid目录
配置 hbase-site.xml
<configuration>
<property>
<name>hbase.rootdir</name>
<value>hdfs://hadoop-master/hbase</value>
</property>
<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
</property>
<property>
<name>hbase.zookeeper.quorum</name>
<value>hadoop-slave1,hadoop-slave2</value>
</property>
<property>
<name>hbase.zookeeper.property.dataDir</name>
<value>/hbase/zookeeper</value>
</property>
<property>
<name>hbase.tmp.dir</name>
<value>/hbase/tmp</value>
</property>
</configuration>
注意:hdfs://master:8020/hbase,这里的hbase目录未建好的话是需要hdfs dfs –mkdir 新建的目录
配置regionservers
vim /opt/hbase/conf/regionservers hadoop-slave1 hadoop-slave2
复制hbase到从节点中
scp -r /usr/local/hbase hadoop-slave1:/usr/local/
scp -r /usr/local/hbase hadoop-slave2:/usr/local/
scp -r /usr/local/hbase hadoop-slave3:/usr/local/
~/hbase/bin/start-hbase.sh #启动仅在master节点上执行即可
启动后,master上进程和slave进程列表
master中的信息
root@ubuntu:/$ jps 66391 SecondaryNameNode 66027 NameNode 67467 Jps 66621 ResourceManager 67327 HMaster
salve中的信息
root@ubuntu:/hbase$ jps 26388 HQuorumPeer 26072 NodeManager 25901 DataNode 26557 Jps
因为hbase依赖于hadoop,因此启动和停止都是需要按照顺序进行
如果安装了独立的zookeeper
启动顺序: hadoop-> zookeeper-> hbase
停止顺序:hbase-> zookeeper-> hadoop
使用自带的zookeeper
启动顺序: hadoop-> hbase
停止顺序:hbase-> hadoop
重启hbase
stop-hbase.sh stop-yarn.sh stop-dfs.sh start-dfs.sh start-yarn.sh start-hbase.sh
在搭建的过程中,报了这么一个错误,错误信息如下:
Unhandled: org.apache.hadoop.hbase.ClockOutOfSyncException:Server hadoop-slave3,16020,1500526355333Causedby: org.apache.hadoop.hbase.ipc.RemoteWithExtrasException(org.apache.hadoop.hbase.ClockOutOfSyncException):
org.apache.hadoop.hbase.ClockOutOfSyncException:Server hadoop-slave3,16020,1500526355333 has been rejected;Reported time is too far out of sync with
master.Time difference of 77348ms> max allowed of 30000ms
看大概的意思是主节点连接从节点超时了。可能有两方面的原因,第一、linux服务器时间不一致导致,第二、由于网络其它原因导致连接的时间超长。
解决方案:
第一个原因,修改各服务器时间保持一致。最终的解决方案是:设置一个定时使用ntp从某个服务器定时同步时间
查看定时
crontab -l
编辑
crontab -e
# 内容0*/1 * * *
/usr/sbin/ntpdate 192.168.0.12;/sbin/hwclock -w
手动执行
#从 0.12同步时间/usr/sbin/ntpdate 192.168.0.12
第二个原因,可以修改hbase默认的最大链接时间长一些。
HBase配置文件hbase-siter.xml中添加连接时长的属性
<property> <name>hbase.master.maxclockskew</name> <value>120000</value> </property>

浙公网安备 33010602011771号