Hadoop系列之(三)Zookeeper、HBase安装配置

来源:互联网 发布:js多少级技能 编辑:程序博客网 时间:2024/05/21 21:28
Zookeeper管理Hadoop集群中的NameNode,HBase中HBaseMaster的选举,Servers之间状态同步等。单只HBase中ZooKeeper实例负责的工作就有:存储HBase的Schema,实时监控HRegionServer,存储所有Region的寻址入口,当然还有最常见的功能就是保证HBase集群中只有一个Master。

1.Zookeeper安装配置

zookeeper的配置相对简单,配置原理同Hadoop相同,即在Master上安装配置完成后,scp到所有的Slave上。

1).复制解压zookeeper-3.4.6.tar.gz

用root用户登录,将zookeeper-3.4.6.tar.gz拷贝到/usr下,解压缩。

cp /usr/local/src/zookeeper-3.4.6.tar.gz /usrcd /usrtar zxvf zookeeper-3.4.6.tar.gzchown -R hadoop:hadoop zookeeperll

ll即可看到zookeeper的状态,如图所示:

2).配置在datanode节点建myid

退出root用户,在家目录hadoop用户下创建相关版本的zookeeper-3.4.6目录文件,并在该目录下创建data目录,用于存放myid

cd mkdir zookeeper-3.4.6mkdir zookeeper-3.4.6/datavi myid插入1,保存退出:wq

内容如下:

3).配置zoo.cfg

进入到zookeeper的配置文件目录下,将zoo_sample.cfg 改为zoo.cfg,打开进行配置

cd /usr/zookeeper/conf/mv zoo_sample.cfg zoo.cfgvi zoo.cfg

在16行的dataDir设置为上一步的data路径

dataDir=/home/hadoop/zookeeper-3.4.6/data

在21行添加如下配置

server.1=Master.Hadoop:2888:3888server.2=Slave1.Hadoop:2888:3888server.3=Slave2.Hadoop:2888:3888

这里的server.id 对应myid中设置的数字 如:这里有三台机器装了zookeeper,那么对应的myid分别为:

Master.Hadoop 中的myid为1Slave1.Hadoop 中的myid为2Slave2.Hadoop 中的myid为3

将35行和39行的注释打开

autopurge.snapRetainCount=3autopurge.purgeInterval=1

zoo.cfg配置完成,保存退出即可,如图所示:

4).将zookeeper发送到其他slave并修改权限

同hadoop的配置一样,将/usr下的zookeeper/home/hadoop/zookeeper-3.4.6文件分别发送到所有的Slave机器上,可发送到root用户。

scp -r /usr/zookeeper root@Slave1.Hadoop:/usrscp -r /usr/zookeeper root@Slave2.Hadoop:/usrscp -r /home/hadoop/zookeeper-3.4.6 hadoop@Slave1.Hadoop:/home/hadoop/scp -r /home/hadoop/zookeeper-3.4.6 hadoop@Slave2.Hadoop:/home/hadoop/

发送完成后,分别root登录到Slave1和Slave2,修改权限和myid

cd /usrchown -R hadoop:hadoop zookeepervi /home/hadoop/zookeeper-3.4.6/data/myid将Slave1.Hadoop中的myid设置为2将Slave2.Hadoop中的myid设置为3

5).开启Zookeeper服务

配置完成后,分别在装有zookeeper的三台机器上启动zookeeper

cd /usr/zookeeper/bin./zkServer.sh startjps

如果三台机器都有QuorumPeerMain进程,则说明zookeeper启动成功。

6).查看Zookeeper服务状态

zookeeper通过选举机制来选出leaderfollower,因此机器必须为奇数,偶数会出问题。相关的选举机制及其原理,请参照zookeeper原理 分别在三台机器上查看zookeeper状态

./zkServer.sh status

至此,zookeeper配置成功。

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作为对应来源.

2.HBase安装配置

1.复制解压hbase-1.1.7-bin.tar.gz

root用户登录,将hbase-1.1.7-bin.tar.gz拷贝到/usr目录下,解压后,将hbase-1.1.7重命名为hbase,删除hbase-1.1.7-bin.tar.gz包,给hbase添加读权限。

cd /usr/loacl/srclscp hbase-1.1.7-bin.tar.gz /usr/        #将hbase安装包拷贝到安装目录cd /usr & lstar zxvf hbase-1.1.7-bin.tar.gz        #解压缩mv hbase-1.1.7 hbase                   #重命名rm hbase-1.1.7-bin.tar.gz            chown -r hadoop:hadoop hbase           #改权限

如下图操作:

接下来要进行配置,共需要配置三个文件:hbase-env.sh hbase-site.xml 和 regionservers.如图所示:

2.配置hbase-env.sh

hbase-env.sh的配置有几个坑,第一个为HBASE_PID_DIR,第二个为PermSize设置问题,如果第一个不设置的话,在启动hbase的时候会出现一个错误提示

/usr/hbase/bin/hbase-daemon.sh:行213: /tmp/hbase-hadoop-master.pid: 权限不够

由于The directory where pid files are stored. /tmp by default.默认存放hbase-hadoop-master.pid的目录为/tmp,而这个目录为系统级目录,需要root权限,且每次系统重启后/tmp目录内容清空。故需要重新设置一下,后边会讲。第二个如果不设置的话,也会出现警告提示:

Java HotSpot(TM) 64-Bit Server VM warning: ignoring option PermSize=128m; support was removed in 8.0Java HotSpot(TM) 64-Bit Server VM warning: ignoring option MaxPermSize=128m; support was removed in 8.0........

因此,也需要在hbase-env.sh配置文件中进行配置,后面讲。

hbase-env.sh配置文件中,需要配置三个地方。第一个为JDK目录,第二个为HBASE_PID_DIR,第三个为PermSize.

cd /usr/hbase/confvi hbase-env.sh1.在28行配置jdk路径export JAVA_HOME=/usr/java/jdk1.8.0_1112.在122行配置pid目录export HBASE_PID_DIR=/home/hadoop/hbase-1.1.7/tmp3.在46行将PermSize的两个配置关掉#export HBASE_MASTER_OPTS="$HBASE_MASTER_OPTS -XX:PermSize=128m -XX:MaxPermSize=128m"#export HBASE_REGIONSERVER_OPTS="$HBASE_REGIONSERVER_OPTS -XX:PermSize=128m -XX:MaxPermSize=128m"

至此,hbase-env.sh配置完成。保存退出即可:wq,这是正确的配置方法,如图:

jdk配置:

pid_dir配置:这里的pid路径需要自己创建如果不配置的话,启动时会出现如下错误:

permsize配置:入托不进行配置的话,启动时会出现如下错误:

3.配置hbase-site.xml

vi hbase-site.xml添加如下配置:<property>        <name>hbase.rootdir</name>        <value>hdfs://Master.Hadoop:9000/hbase</value></property><property>        <name>hbase.cluster.distributed</name>        <value>true</value></property><property>        <name>hbase.zookeeper.quorum</name>        <value>Master.Hadoop,Slave1.Hadoop,Slave2.Hadoop</value></property><property>        <name>hbase.zookeeper.property.dataDir</name>        <value>/home/hadoop/zookeeper-3.4.6/data</value></property>保存退出:wq

其中hbase.zookeeper.property.dataDir的目录为之前配置zookeeper的data目录。

4.配置regionservers

vi regionservers添加:Master.HadoopSlave1.HadoopSlave2.Hadoop

5.将hbase发送到其他slave

和hadoop、zookeeper的配置一样,在master上配置完成后,将其相关文件发送到所有的slave下,并且修改其权限。

scp -r /usr/hbase root@Slave1.Hadoop:/usrscp -r /usr/hbase root@Slave2.Hadoop:/usr提示让输入密码后发送过去scp -r /home/hadoop/hbase-1.1.7 hadoop@Slave1.Hadoop:/home/hadoopscp -r /home/hadoop/hbase-1.1.7 hadoop@Slave2.Hadoop:/home/hadoop

分别进入Slave1和Slave2,修改/usr/hbase的权限问题,root用户登录

cd /usrllchown -R hadoop:hadoop hbase/

修改完成后,即完成hbase配置,下边开启服务并验证。

6.开启HBase服务

进入master的hbase

cd /usr/hbase/bin./start-hbase.shjps查看所有机器,会出现HRegionServer进程,但是在Master.Hadoop中缺少`HMaster`进程。

如果你的机器中在Master中出现HMaster和HRegionServer两个进程,在Slave上出现HRegionServer一个进程,则表示配置成功。忽略一下步骤。 在HBase启动时,如果HRegionServer或者HMaster其中一个进程启动不成功,可以查看日志,会发现集群时间不一致,误差超过2分半钟,所以要保证集群的时间同步。建议搭建ntp时间服务器来保证时间同步。方法如下:

7.搭建ntp时间服务器

其实这一步在安装完操作系统就该配置好,由于之前没有发现这里的错误,故就在此进行配置。在系统中查看当前时间,会发现与当前时间不一致。

(1).检查安装ntp服务

rpm -qa | grep ntp      #检查是否安装ntp服务,如果没有安装,执行yum install ntp

如图所示:

(2).配置ntp服务

为保证集群时间一致,现将hbase的master节点所在虚拟机作为时间服务器,其他Slave节点都与Master节点时间保持一致即可。如果Master连接外网,打开ntp配置文件进行配置。root用户登录

vi /etc/ntp.conf在17行左右加# Hosts on local network are less restricted.restrict 10.211.55.0 mask 255.255.255.0 nomodify notrap27行左右加# 中国这边最活跃的时间服务器 : http://www.pool.ntp.org/zone/cnserver 210.72.145.44 perfer   #中国国家受时中心37行左右加# 允许上层时间服务器主动修改本机时间restrict 210.72.145.44 nomodify notrap noqueryrestrict 202.112.10.36 nomodify notrap noqueryrestrict 59.124.196.83 nomodify notrap noquery# 外部时间服务器不可用时,以本地时间作为时间服务server  127.127.1.0     # local clockfudge   127.127.1.0 stratum 10保存退出:wq

(3).启动服务

配置完成后,需要将ntp服务启动,用下边几条命令进行相关操作

systemctl enable ntpd.service      #设置开机启动systemctl start ntpd.service       #启动服务systemctl status ntpd.service      #查看状态systemctl restart ntpd.service     #重启服务 

(4).Slave时间同步

在Slave1和Slave2上进行时间同步。root用户登录后

ntpdate Master.Hadoop

即可查看时间已经改变。

(5).再次启动HBase并查看状态

时间同步完成后,再次启动hbase查看进程状态 退出root用户。hadoop用户登录

cd /usr/hbase/bin./start-hbase.shjps

会发现Master中有HMaster和HRegionServer,Slave中有HRegionServer则表示启动成功。

如果你的机器中在Master中出现HMaster和HRegionServer两个进程,在Slave上出现HRegionServer一个进程,则表示配置成功。忽略一下步骤。 在HBase启动时,如果HRegionServer或者HMaster其中一个进程启动不成功,可以查看日志,会发现集群时间不一致,误差超过2分半钟,所以要保证集群的时间同步。建议搭建ntp时间服务器来保证时间同步。方法如下:

7.搭建ntp时间服务器

其实这一步在安装完操作系统就该配置好,由于之前没有发现这里的错误,故就在此进行配置。在系统中查看当前时间,会发现与当前时间不一致。

(1).检查安装ntp服务

rpm -qa | grep ntp      #检查是否安装ntp服务,如果没有安装,执行yum install ntp

如图所示:

(2).配置ntp服务

为保证集群时间一致,现将hbase的master节点所在虚拟机作为时间服务器,其他Slave节点都与Master节点时间保持一致即可。如果Master连接外网,打开ntp配置文件进行配置。root用户登录

vi /etc/ntp.conf在17行左右加# Hosts on local network are less restricted.restrict 10.211.55.0 mask 255.255.255.0 nomodify notrap27行左右加# 中国这边最活跃的时间服务器 : http://www.pool.ntp.org/zone/cnserver 210.72.145.44 perfer   #中国国家受时中心37行左右加# 允许上层时间服务器主动修改本机时间restrict 210.72.145.44 nomodify notrap noqueryrestrict 202.112.10.36 nomodify notrap noqueryrestrict 59.124.196.83 nomodify notrap noquery# 外部时间服务器不可用时,以本地时间作为时间服务server  127.127.1.0     # local clockfudge   127.127.1.0 stratum 10保存退出:wq

(3).启动服务

配置完成后,需要将ntp服务启动,用下边几条命令进行相关操作

systemctl enable ntpd.service      #设置开机启动systemctl start ntpd.service       #启动服务systemctl status ntpd.service      #查看状态systemctl restart ntpd.service     #重启服务 

(4).Slave时间同步

在Slave1和Slave2上进行时间同步。root用户登录后

ntpdate Master.Hadoop

即可查看时间已经改变。

(5).再次启动HBase并查看状态

时间同步完成后,再次启动hbase查看进程状态 退出root用户。hadoop用户登录

cd /usr/hbase/bin./start-hbase.shjps

会发现Master中有HMaster和HRegionServer,Slave中有HRegionServer则表示启动成功。


至此,HBase安装配置完成,鉴于Hive配置较为繁琐,且篇幅较长,单独拿出一章配置Hive。

================

#看在我辛苦截图敲代码的份上,喜欢的话打赏一下吧,哈哈。

转个人博客:Hadoop系列之(三)Zookeeper、HBase安装配置

0 0