阿里云ECS服务器部署HADOOP集群:HBase完全分布式集群搭建(使用外置ZooKeeper)

Posted 522hh

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了阿里云ECS服务器部署HADOOP集群:HBase完全分布式集群搭建(使用外置ZooKeeper)相关的知识,希望对你有一定的参考价值。

本篇将在阿里云ECS服务器部署HADOOP集群(一):Hadoop完全分布式集群环境搭建的基础上搭建,多添加了一个 datanode 节点 。

 

1 节点环境介绍:

1.1 环境介绍:

1.2 各节点角色分配

  • master: NameNode、SecondaryNameNode、HMaster、QuorumPeerMain
  • slave1: DataNode、HMaster(候补节点)、HRegionServer、QuorumPeerMain
  • slave2: DataNode、HRegionServer、QuorumPeerMain

2 HBase 下载

下载 hbase-1.2.6-bin.tar.gz 并在合适的位置解压缩,笔者这里解压缩的路径为:

/usr/local

将解压得到的目录改名为 hbase 

1 cd /usr/local
2 mv hbase-1.2.6/ hbase/

3 添加 HBase 环境变量

在"/etc/profile"中添加内容:

1 export HBASE_HOME=/usr/local/hbase
2 export PATH=$PATH:$HBASE_HOME/bin

重新加载环境:

source /etc/profile

4 修改 HBase 配置信息

4.1 修改 hbase 环境变量 (hbase-env.sh)

编辑文件:

vim $HBASE_HOME/conf/hbase-env.sh

添加内容:

1 export JAVA_HOME=/usr/local/jdk1.8
2 export HBASE_CLASSPATH=/usr/local/hadoop/etc/hadoop3 export HBASE_MANAGES_ZK=false

关于 HBASE_CLASSPATH , 官方文档解释如下:Of note, if you have made HDFS client configuration changes on your Hadoop cluster, such as configuration directives for HDFS clients, as opposed to server-side configurations, you must use one of the following methods to enable HBase to see and use these configuration changes:

  • Add a pointer to your HADOOP_CONF_DIR to the HBASE_CLASSPATH environment variable in hbase-env.sh.
  • Add a copy of hdfs-site.xml (or hadoop-site.xml) or, better, symlinks, under ${HBASE_HOME}/conf, or 
  • if only a small set of HDFS client configurations, add them to hbase-site.xml.

An example of such an HDFS client configuration is dfs.replication. If for example, you want to run with a replication factor of 5, HBase will create files with the default of 3 unless you do the above to make the configuration available to HBase.

HBASE_MANAGES_ZK 设置是否使用内置 ZooKeeper ,默认为 true 也就是使用内置 ZooKeeper 笔者这里使用外置 ZooKeeper 。(生产环境建议使用外置ZooKeeper,维护起来比较方便,可参考到底要不要用hbase自带的zookeeper

4.2 修改 hbase 默认配置(hbase-site.xml)

编辑文件:

vim $HBASE_HOME/conf/hbase-site.xml

配置可参考如下代码:

 1 <configuration>
 2   <!--HBase 的数据保存在 HDFS 对应的目录下-->
 3   <property>
 4     <name>hbase.rootdir</name>
 5     <value>hdfs://master:9000/hbase</value>
 6   </property>
 7   <!--是否分布式环境-->  
 8   <property>
 9     <name>hbase.cluster.distributed</name>
10     <value>true</value>
11   </property>
12   <!--配置 ZK 的地址, 三个节点都启用 ZooKeeper-->
13   <property>
14     <name>hbase.zookeeper.quorum</name>
15     <value>master,slave1,slave2</value>
16   </property>
17   <!--内置 ZooKeeper 的数据目录-->  
18   <property>
19     <name>hbase.zookeeper.property.dataDir</name>
20     <value>/usr/local/hbase/zookeeper</value>
21   </property>
22 </configuration>

4.3 指定 regionservers (regionservers)

编辑文件:

vim $HBASE_HOME/conf/regionservers

添加内容:

1 slave1
2 slave2

4.4 指定候补节点(backup-masters)

这个文件需要自己创建。

编辑文件:

vim $HBASE_HOME/conf/backup-masters

添加内容:

slave1

为了保证HBase集群的高可靠性,HBase支持多Backup Master 设置。当Active Master挂掉后,Backup Master可以自动接管整个HBase的集群。

5 分发 hbase 和 profile 给 slave1,slave2(建议将 hbase 压缩后分发)

1 scp -r /usr/local/hbase slave1:/usr/local
2 scp -r /usr/local/hbase slave2:/usr/local
1 scp /etc/profile slave1:/etc/
2 scp /etc/profile slave2:/etc/

分发后分别在各节点重新加载环境并测试,可使用 hbase version 测试。

6 安装 ZooKeeper

参考 阿里云ECS服务器部署HADOOP集群(三):ZooKeeper 完全分布式集群搭建

7 开放相关端口(坑!!!!!!

注:服务器端口全部开放的可以直接跳过这一步,不想看笔者BB的也可以直接跳到该小结的最后。

 

可能是由于计算机网络没学好,从搭建Hadoop开始大半的时间都被浪费到这个端口问题上,各种 Error 全都是因为这个问题。

以上是关于阿里云ECS服务器部署HADOOP集群:HBase完全分布式集群搭建(使用外置ZooKeeper)的主要内容,如果未能解决你的问题,请参考以下文章

阿里云ECS服务器部署HADOOP集群:Flume 安装

阿里云ECS服务器部署HADOOP集群:Pig 安装

阿里云ECS服务器部署HADOOP集群:ZooKeeper 完全分布式集群搭建

阿里云ECS服务器部署HADOOP集群:Hive本地模式的安装

阿里云ECS服务器部署HADOOP集群:Hadoop完全分布式集群环境搭建

用阿里云三个ECS服务器搭建一个小模拟Hadoop集群(三个不同账号的阿里云,相同区域或不同区域)步骤整理