Hadoop2 NN HA+Zookeeper独立安装的步骤参见:http://www.micmiu.com/bigdata/hadoop/hadoop2-cluster-ha-setup/ ,本文HBase的整合是在此环境搭建好的基础上进行的。
1、各节点的角色分配
hostname | IP | Hadoop角色 | HBase角色 |
nn1.hadoop zk1.hadoop | 172.17.225.61 | NN,JN,ZK,ZKFC,RM | Master |
nn2.hadoop zk2.hadoop | 172.17.225.121 | NN,JN,ZK,ZKFC,RM | x |
dn1.hadoop zk3.hadoop | 172.17.225.72 | DN,JN,ZK,MRJS | RegionServer |
dn2.hadoop | 172.17.225.76 | DN | RegionServer |
dn3.hadoop | 172.17.225.19 | DN | RegionServer |
2、软件安装配置
2.1、下载 hbase-0.98.9-hadoop2-bin.tar.gz
解压安装到 /usr/local/share/hbase
2.2、修改环境变量 vi ~/.bash_profile
:
1 2 |
export HBASE_HOME=/usr/local/share/hbase export PATH="$HBASE_HOME/bin:$PATH" |
2.3、修改 $HBASE_HOME/conf/hbase-env.sh
:
1 2 3 4 5 6 7 8 |
#必须要确认修改的属性 export JAVA_HOME=/usr/java/jdk1.7.0_75 #HBASE自己管理ZK 设为true(默认值);如果ZK独立安装 设为false export HBASE_MANAGES_ZK=false #根据实际环境优化配置 export HBASE_HEAPSIZE=4000 export HBASE_OPTS="-server -XX:NewSize=6m -XX:MaxNewSize=6m -XX:+UseConcMarkSweepGC -XX:+CMSIncrementalMode" |
2.4、修改 $HBASE_HOME/conf/hbase-site.xml
:
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 |
property> <name>hbase.rootdir</name> <!-- mycluster 需要和NN HA配置的 dfs.nameservices一致--> <value>hdfs://mycluster/user/hbase</value> </property> <property> <name>hbase.cluster.distributed</name> <value>true</value> </property> <property> <name>hbase.zookeeper.quorum</name> <value>zk1.hadoop,zk2.hadoop,zk3.hadoop</value> </property> <property> <name>hbase.zookeeper.property.dataDir</name> <value>/bigdata/hadoop/zookeeper/zkdata</value> </property> <property> <name>zookeeper.session.timeout</name> <value>60000</value> </property> <property> <name>hbase.regionserver.handler.count</name> <value>20</value> </property> |
ps: hdfs://mycluster/user/hbase 红色标注的目录根据实际自己的配置。
2.5、修改配置文件:$HBASE_HOME/conf/regionservers
:
1 2 3 |
dn1.hadoop dn2.hadoop dn3.hadoop |
2.6、在所有HBase的节点上按照上面的步骤配置一遍。
3、启动和演示可参见:HBase安装配置之完全分布式模式。
参考:
—————– EOF @Michael Sun —————–
在hbase-env.sh文件指定HBASE_CLASSPATH为${HADOOP_CONF_DIR},hbase-site.xml只用core-site.xml指定的逻辑集群名xxx,启动时HRegionserver报找不到主机xxx。后来创建软链接:ln -s ${HADOOP_HOME}/etc/hadoop/hdfs-site.xml ${HBASE_HOME}/conf/hdfs-site.xml,启动正常了。是不是HBASE_CLASSPATH的值没有生效,hbase不知道那是servicename而简单解析成host了。
将HBASE_CLASSPATH指定为绝对路径,而不是使用环境变量${HADOOP_CONF_DIR},在不添加软链接的情况下,也启动正常,说明用环境变量时,应该没有生效。
需要拷贝hdfs-site.xml文件到hbase conf中吗,不然只知道servicename怎么知道hdfs实际地址
其实这个主要看你的环境变量,它应该根据环境变量里配置 HADOOP_HOME找响应的配置文件,如果你没有配置环境变量 肯定要copy过去的