0x01 HBase的获取
1. 官网下载
a. 为了统一,此处下载HBase1.2.6版本 :
http://archive.apache.org/dist/hbase
选择1.2.6/hbase-1.2.6-bin.tar.gz进行下载
0x02 上传安装包到集群
1. 上传安装包到虚拟机
PS:如果不是docker部署的集群,则直接上传到虚拟机即可,因为,每台虚拟机就是一个节点。
2. 复制安装包到master节点
docker cp hbase-1.2.6-bin.tar.gz hadoop-master:/root
sh master.sh
ll
0x03 安装HBase集群
1. 解压HBase
a. 解压安装包(-C为指定解压到/usr/local路径)
tar -zxvf hbase-1.2.6-bin.tar.gz -C /usr/local
2. 配置HBase
a. 修改配置文件hbase-env.sh($HBASE_HOME/conf):
cd /usr/local/hbase-1.2.6/conf
vi hbase-env.sh
- 添加JAVA_HOME、HBASE_CLASSPATH、HBASE_MANAGES_ZK
ps:原本也有JAVA_HOME、HBASE_CLASSPATH、HBASE_MANAGES_ZK这三个选项,只是被注释掉了,在非编辑模式下可以按/,再加上搜索的文字,按回车即可搜索如:
b. 修改配置文件regionservers($HBASE_HOME/conf):
vi regionservers
删除原本的localhost,添加:
hadoop-slave1 hadoop-slave2
c. 修改配置文件hbase-site.xml($HBASE_HOME/conf):
vi hbase-site.xml
<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.zookeeper.quorum</name> <value>hadoop-master,hadoop-slave1,hadoop-slave2</value> </property>
- 特别注意:hdfs://hadoop-master:9000/hbase的端口9000需要与hadoop里面的core-site.xml文件配置的一致。
d. 配置环境变量(可看到docker生成节点时默认配好的其他环境变量)
vi /etc/profile
export HBASE_HOME=/usr/local/hbase-1.2.6 export PATH=$PATH:$HBASE_HOME/bin
- 使配置生效(echo一下有内容输入,说明已经配好)
source /etc/profile
3. 在同步HBase到slave1、slave2
a. 将hbase-1.2.6拷贝到slave1和slave2上
scp -r /usr/local/hbase-1.2.6 root@hadoop-slave1:/usr/local/
scp -r /usr/local/hbase-1.2.6 root@hadoop-slave2:/usr/local/
复制成功截图:
ps:此处不用配置slave1、slave2的环境变量是因为启动的时候只需要在master上启动,与zk不同。
0x04 HBase集群校验
1. 启动Hadoop与ZK集群
a. 查看进程(如有hadoop与zk进程,则不需执行b.c.步):~/jps_all.sh
b. 在master上执行:
$HADOOP_HOME/sbin/start-dfs.sh
$HADOOP_HOME/sbin/start-yarn.sh
c. 三个节点上启动zk:
source /etc/profile
zkServer.sh start
ps:执行完b.c.步后再查看进程,发现a.的进程都有了
2. 启动HBase集群
a. 在master上执行:
start-hbase.sh
遇到此问题:
解决:
将三个节点上HBase的配置文件conf/hbase-env.sh此两行注释掉即可:
vi /usr/local/hbase-1.2.6/conf/hbase-env.sh
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"
重新启动!
3. 查看进程
a. 表示安装成功:
~/jps_all.sh
- 思考题:目前只是查看到进程,而了解过HBase的小伙伴知道我们可以通过16010端口查看HBase的Web UI界面,然而我们在生成容器的时候并没有暴露16010端口出去,应该怎么做呢?!
0xFF 总结
- 出现的问题还是有点多,同志们遇到什么问题请评论,还有自己多谷歌把问题解决。
- 操作过程中有时候还会出现两个问题:
问题一:显示没有权限,保存不了编辑文件,退出重新连接就可以了。
解决方法一:
保存不了编辑文件,退出重新连接就可以了。
解决方法二:
断开前面XFtp软件的连接,重新执行。
问题二:复制文件到从节点的时候,出现22端口无法连接,显示没有权限。
解决:
查看ssh服务状态(查看了slave2的):
/etc/init.d/ssh status
启动ssh服务:
/etc/init.d/ssh start