摘要
之前的环境中配置了 Hadoop 集群以及 Yarm。现在基于 HDFS 部署 ZooKeeper 集群和 HBase 集群。
三台机器中,将 131 作为 Master、其余两台作为 Region。另外设置 132 为 backup-master。
三台机器都部署 zookeeper。
部署 Zookeeper
在 weilu131/weilu132/weilu135
三台上部署 zookeeper。
开放端口
1 | firewall-cmd --add-port=2888/tcp --permanent |
将安装包拷贝到 /usr/local/
目录下,解压:1
tar -zxvf zookeeper-3.4.5-cdh5.15.0.tar.gz
zoo.cfg
在 zookeeper 包的根目录创建一个文件夹,随意命名:1
/usr/local/zookeeper-3.4.5-cdh5.15.0/zookeeperDataDir
进入 /usr/local/zookeeper-3.4.5-cdh5.15.0/conf
目录,拷贝一份 zoo_sample.cfg
文件,命名为 zoo.cfg
:1
cp zoo_sample.cfg zoo.cfg
在 zoo.cfg
中配置以下内容:1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18# The number of milliseconds of each tick
tickTime=2000
# The number of ticks that the initial synchronization phase can take
initLimit=10
# The number of ticks that can pass between sending a request and getting an acknowledgement
syncLimit=5
# the directory where the snapshot is stored.
dataDir=/usr/local/zookeeper-3.4.5-cdh5.15.0/zookeeperDataDir
# the port at which the clients will connect
clientPort=2181
server.1=weilu131:2888:3888
server.2=weilu132:2888:3888
server.3=weilu135:2888:3888
myid
在每台 ZooKeeper 节点的数据目录(dataDir目录)下存放一个 myid
文件,文件中存放一个集群中唯一的ID,表明这台机器的ID,ID范围是 1~255
分发配置
将 zoo.cfg 和 myid 分发到其他及台机器上,对应修改 myid。
1 | scp zoo.cfg root@weilu135:/usr/local/zookeeper-3.4.5-cdh5.15.0/conf |
分发目录时增加参数 -r
1
scp -r zookeeperDataDir/ root@weilu151:/usr/local/zookeeper-3.4.5-cdh5.15.0/zookeeperDataDir
启动 zookeeper
启动时需要分别在每个节点使用 bin/zkServer.sh
脚本启动:1
/usr/local/zookeeper-3.4.5-cdh5.15.0/bin/zkServer.sh start
在所有节点启动完成之前,如果使用 ./zkServer.sh status
查看状态时,会提示1
2
3JMX enabled by default
Using config: /usr/local/zookeeper-3.4.5-cdh5.15.0/bin/../conf/zoo.cfg
Error contacting service. It is probably not running.
如果都启动之后,再次查看会得到:1
2
3JMX enabled by default
Using config: /usr/local/zookeeper-3.4.5-cdh5.15.0/bin/../conf/zoo.cfg
Mode: follower
部署 HBase
将安装包拷贝到 /usr/local/
目录下,解压 Hbase:1
tar -zxvf hbase-1.2.0-cdh5.15.0.tar.gz
hbase-env.sh
配置 JDK 环境:1
export JAVA_HOME=/usr/local/jdk1.8.0_181
配置不使用 HBase 默认自带的 ZooKeeper:1
export HBASE_MANAGES_ZK=false
hbase-site.xml
创建临时文件目录:1
mkdir -p /home/hbase/tmp
配置1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30<configuration>
<property>
<name>hbase.tmp.dir</name>
<value>/home/hbase/tmp</value>
</property>
<property>
<name>hbase.rootdir</name>
<value>hdfs://weilu131:9000/hbase</value>
</property>
<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
</property>
<property>
<name>hbase.zookeeper.quorum</name>
<value>weilu131,weilu132,weilu135</value>
</property>
<property>
<name>hbase.master.info.port</name>
<value>60010</value>
</property>
<property>
<name>hbase.regionserver.info.port</name>
<value>60030</value>
</property>
<property>
<name>hbase.master.port</name>
<value>16000</value>
</property>
</configuration>
regionservers
配置 Region 服务器列表,在 regionservers
文件中配置以下内容,类似于 Hadoop 集群的 slaves 列表:1
2weilu132
weilu135
backup-masters
在 conf/backup-masters
中用来配置备份 master 服务器。1
weilu132
分发配置
1 | # hbase-env.sh 文件 |
启动服务
1 | /usr/local/hbase-1.2.0-cdh5.15.0/bin/start-hbase.sh |
验证
对于 Master 可以访问以下地址,查看集群情况。
访问Master:http://192.168.0.131:60010
对于 Region 可以访问以下地址,查看情况。
访问Master:http://192.168.0.132:60030
问题
zookeeper.MetaTableLocator: Failed verification of hbase:meta
1 | 2018-11-05 22:27:04,735 INFO [weilu131:60000.activeMasterManager] zookeeper.MetaTableLocator: Failed verification of hbase:meta,,1 at address=weilu135,60020,1541427295657, exception=org.apache.hadoop.hbase.NotServingRegionException: Region hbase:meta,,1 is not online on weilu135,60020,1541428018822 |
这个问题是 zookeeper 的数据出错导致的,将 zookeeper 集群都停掉,然后将 Datadir目录中除了配置的 myid
以外的文件都删掉,然后启动 zookeeper,应该就可以了。