个人备忘
CentOs 7
环境:jdk1.8 + hadoop-2.8.3 + zookeeper-3.4.6 + hbase-1.2.6
Hbase 下载 wget http://mirror.bit.edu.cn/apache/hbase/stable/hbase-1.2.6-bin.tar.gz
有必要就配置下环境变量
[root@nn hbase]# vim /etc/profile
[root@nn hbase]# source /etc/profile
HBASE_HOME=/agui/hbase/hbase-1.2.6
export PATH=$HBASE_HOME/bin:$PATH
Hbase 的解压缩目录下/conf 下的配置文件 :
[root@nn conf]# vim hbase-env.sh
export JAVA_HOME=/agui/jdk/jdk1.8.0_151
#不使用hbase 自带的 zk
export HBASE_MANAGES_ZK=false
[root@nn conf]# pwd
/agui/hbase/hbase-1.2.6/conf
// 我三个节点的 /etc/hosts 都是类似这样配置的。
[root@nn ~]# vim /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
0.0.0.0 nn.hadoop
39.17.24.23 dn1.hadoop
39.17.238.11 dn2.hadoop
// 步骤二
// 说明,上面配置文件第一个配置的hdfs地址要和 hadoop 的 core-site.xml 配置的hdfs 地址一致,后面的 /hbase 表示我们再改文件夹下去 作业
// 坑 ,真分布式环境下每台节点的hosts 映射,自己所在的机器,需配置成0.0.0.0 nn.hadoop 这类的映射。如果设置成外网,hbase 启动过程中,16000 16020 起不起来。---自己本身配置0.0.0.0 别配置外网ip 。 内网ip 没试过。
// 坑二 , hbase-site.xml 和 该节点上的 hadoop 的 core-size.xml 中的hdfs:// ip:端口 中的ip 必须配置成 hosts 映射名,配置成外网ip , hadooop 启动没问题,但是启动hbase 的时候,启动不起来。访问 0.0.0.0:9001 ,connection resfuse 。
// zookeeper 集群这里就不带着配置了。
root@dn2 conf]# vim hbase-site.xml
<configuration>
<property>
<name>hbase.rootdir</name>
<value>hdfs://nn.hadoop:9001/hbase</value>
</property>
<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
</property>
<property>
<name>hbase.zookeeper.quorum</name>
<value>nn.hadoop,dn1.hadoop,dn2.hadoop</value>
</property>
</configuration>
其他两个node 节点 如下操作 :
将上一步修改后的hbase-site.xml 文件 上传到 node 从节点 。
//说明:namenode 所在的节点,hbase -site .xml 配置的hdfs 地址为 0.0.0.0
[root@dn2 conf]# rm -rf hbase-site.xml
[root@dn2 conf]# rz
[root@dn2 conf]# ll
total 40
-rw-r--r-- 1 root root 1811 Dec 27 2015 hadoop-metrics2-hbase.properties
-rw-r--r-- 1 root root 4537 Jan 29 2016 hbase-env.cmd
-rw-r--r-- 1 root root 7572 May 8 21:59 hbase-env.sh
-rw-r--r-- 1 root root 2257 Dec 27 2015 hbase-policy.xml
-rw-r--r-- 1 root root 1239 May 8 22:10 hbase-site.xml
-rw-r--r-- 1 root root 4603 May 29 2017 log4j.properties
-rw-r--r-- 1 root root 10 Dec 27 2015 regionservers
[root@dn2 conf]#
regionservers 配置修改
//需注意,hosts 配置的 nn.hadoop 如果在自己的机器上,需要映射成 0.0.0.0 而不是 外网ip 否则有坑。
// 注意 regionservers 三个都要配置
[root@nn conf]# vim regionservers
nn.hadoop
dn1.hadoop
dn2.hadoop
继续配置 Hbase-env.xml :
[root@dn1 conf]# vim hbase-env.sh
#hadoop 配置文件路径
export HBASE_CLASSPATH=/agui/hadoop/hadoop-2.8.3/etc/hadoop
启动集群 :
// 启动hbase集群之前,要启动 hadoop-hdfs 集群 和 zk 集群
// jdk 1.8 有一个老年代 jvm 参数配置的坑
// jvm 参数配置文件为 hbase-evn.sh , 删除掉永久代的 jvm 参数配置即可。
// 坑二: hbase 从节点上 的 hadoop core-site.xml 中的hdfs:// ip :9001 中的ip 要改成 namenode hostname 的映射。
// 因为 : hbase 中的 hbase-site.xml 中的hdfs:// 要写成跟他一样。如果他俩都写成了 namenode 的外网ip 则,从节点的hbase 回去本地找9001 端口的hdfs 地址,肯定没有这个服务,回报 连接被决绝。
结果 :
// 主节点有一个 HMaster 和 HRegionServer 表示配置成功,其他从节点,分别有 HRegionServer 表示无误。
// 其他错误问题可以自己去看日志。
[root@nn ~]# jps
10838 NameNode
11191 ResourceManager
11706 HRegionServer
19802 Jps
11036 SecondaryNameNode
2077 QuorumPeerMain
19535 HMaster