【上海大数据培训】大数据学习之HBase分布式集群搭建

时间:2018-03-28 15:21:09   来源:上海尚学堂   阅读:

一、HBase介绍


在安装之前先介绍下Hbase,Hadoop生态系统中HBase所处位置,实现的功能,解决的问题。

HBase – Hadoop Database,是一个高可靠性、高性能、面向列、可伸缩的分布式存储系统,利用HBase技术可在廉价PC Server上搭建起大规模结构化存储集群。

HBase是Google Bigtable的开源实现,类似Google Bigtable利用GFS作为其文件存储系统,HBase利用Hadoop HDFS作为其文件存储系统;Google运行MapReduce来处理Bigtable中的海量数据,HBase同样利用Hadoop MapReduce来处理HBase中的海量数据;Google Bigtable利用 Chubby作为协同服务,HBase利用Zookeeper作为对应。HBase是Google Bigtable的开源实现,它利用Hadoop HDFS作为其文件存储系统,利用Hadoop MapReduce来处理HBase中的海量数据,利用Zookeeper作为协同服务。

 

二、搭建环境

部署节点操作系统为CentOS,防火墙和SElinux禁用,创建了一个shiyanlou用户并在系统根目录下创建/app目录,用于存放Hadoop等组件运行包。因为该目录用于安装hadoop等组件程序,用户对shiyanlou必须赋予rwx权限(一般做法是root用户在根目录下创建/app目录,并修改该目录拥有者为shiyanlou(chown –R shiyanlou:shiyanlou /app)。

虚拟机数量:3台 
操作系统:Ubuntu 14.04 
实验环境及版本: 
Hadoop:Hadoop 2.2.0 
Java:java version “1.7.0_51” 
HBase:hbase-0.96.0.tar.gz 
Zookeeper:zookeeper-3.4.5.tar.gz

Hbase安装包: http://mirror.bit.edu.cn/apache/hbase/1.3.1/hbase-1.3.1-bin.tar.gz

上海尚学堂 上海大数据培训

三、安装hbase

首先在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 /etc/profile

#内容
export HBASE_HOME=/usr/local/hbase
export PATH=$HBASE_HOME/bin:$PATH
#使立即生效
source /etc/profile

修改系统变量ulimit

ulimit -n 10240

四、配置文件

hbase 相关的配置主要包括hbase-env.sh、hbase-site.xml、regionservers三个文件,都在 /usr/local/hbase/conf目录下面:

配置hbase-env.sh

vim hbase-env.sh
#内容
export JAVA_HOME=/usr/lib/jvm/jre-1.7.0-openjdk.x86_64
export HBASE_CLASSPATH=/usr/local/hbase/conf
# 此配置信息,设置由hbase自己管理zookeeper,不需要单独的zookeeper。
export HBASE_MANAGES_ZK=true
export HBASE_HOME=/usr/local/hbase
export HADOOP_HOME=/usr/local/hadoop
#Hbase日志目录
export HBASE_LOG_DIR=/usr/local/hbase/logs

配置 hbase-site.xml

<configuration>
    <property>
        <name>hbase.rootdir</name>
        <value>hdfs://hadoop-master:9000/hbase</value>
    </property>
    <property>
        <name>hbase.cluster.distributed</name>
        <value>true</value>
    </property>
    <property>
        <name>hbase.master</name>
        <value>hadoop-master:60000</value>
    </property>
    <property>
        <name>hbase.zookeeper.quorum</name>
        <value>hadoop-master,hadoop-slave1,hadoop-slave2,hadoop-slave3</value>
    </property>
</configuration>

配置regionservers

vim /usr/local/hbase/conf/regionservers
hadoop-master
hadoop-slave1
hadoop-slave2
hadoop-slave3

复制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

启动仅在master节点上执行即可

~/hbase/bin/start-hbase.sh

启动后,master上进程和slave进程列表

master中的信息

[hadoop@master ~]$ jps
6225 Jps
2897 SecondaryNameNode   # hadoop进程
2710 NameNode            # hadoop master进程
3035 ResourceManager     # hadoop进程
5471 HMaster             # hbase master进程
2543 HQuorumPeer         # zookeeper进程

salve中的信息

[hadoop@slave1 ~]$ jps
4689 Jps
2533 HQuorumPeer          # zookeeper进程
2589 DataNode             # hadoop slave进程
4143 HRegionServer        # hbase slave进程

因为hbase依赖于hadoop,因此启动和停止都是需要按照顺序进行。上海尚学堂上海大数据培训

如果安装了独立的zookeeper,

启动顺序: hadoop-> zookeeper-> hbase
停止顺序:hbase-> zookeeper-> hadoop

使用自带的zookeeper

启动顺序: hadoop-> hbase
停止顺序:hbase-> hadoop

重启hbase

~/hbase/bin/stop-hbase.sh
~/hadoop/sbin/stop-all.sh
~/hadoop/sbin/start-all.sh
~/hbase/bin/start-hbase.sh

六、错误处理

在搭建的过程中,报了这么一个错误,错误信息如下:

Unhandled: org.apache.hadoop.hbase.ClockOutOfSyncException: Server hadoop-slave3,16020,1500526355333

Caused by: 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>

参考原文:
作者:纯洁的微笑 
出处:www.ityouknow.com 

感谢阅读上海尚学堂大数据文章,获取更多大数据内容或支持请点击  上海大数据培训

相关文章推荐阅读:《HBase体系架构和集群安装》;《HBase Shell配置与调试操作》;《Hadoop伪分布式搭建操作步骤指南
分享:0

电话咨询

客服热线服务时间

周一至周五 9:00-21:00

周六至周日 9:00-18:00

咨询电话

021-67690939
15201841284

微信扫一扫