集群环境:
(以下数字为集群内机器的hostname)
Hadoop:
Namenode&jobtracker:28
Datanode&tasktracker:15,16,17,18,23,24,25,26,27,28
Hbase:
Master:18
Regionserver:15,16,17,18,23,24,25,26,27,28
Zookeeper:15,17,18
新集群环境:
文件系统用原有的,即
Hadoop:
Namenode&jobtracker:28
Datanode&tasktracker:15,16,17,18,23,24,25,26,27,28
Hbase:
Master:16
Regionserver:15,16,17,18
Zookeeper用原有的,即
Zookeeper:15,17,18
一、在新集群的配置文件hbase-site.xml里面需要修改的地方:
1、 <name>hbase.rootdir</name>
<value>hdfs://hostname:9000/rootDirectory</value>
这里的hostname就跟原hbase集群里面的是一样的,即hadoop文件系统的namenode结点;rootDirectory这里必须改动,即跟原集群里的必须不一样。
2、修改各种端口号
因为hbase集群内部有很多通信协议,集群内部需要统一的端口号,比如60000、60010这些,已经是默认的,原有的hbase集群已经在用了,现在需要对新集群的端口做些改变,否则默认的就会与原集群端口冲突。
<name>hbase.master.port</name>
<value>61000</value>
<name>hbase.master.info.port</name>
<value>61010</value>
<name>hbase.regionserver.port</name>
<value>61020</value>
<name>hbase.regionserver.info.port</name>
<value>61030</value>
3、修改临时文件的文件目录
<name>hbase.tmp.dir</name>
<value>/root/base_tmp</value>
4、修改参数,使得启动hbase的时候,不用自带的启动自己的一套zookeeper,这里是直接利用了原有的hbase的zookeeper
<name>hbase.cluster.distributed</name>
<value>true</value>
保留参数,这个跟原有的集群的配置一样,即两者公共一套zookeeper
<name>hbase.zookeeper.quorum</name>
<value>15,17,18</value>
5、修改参数,在zookeeper里面每个hbase需要有一个属于自己的Root ZNode
<name>zookeeper.znode.parent</name>
<value>/baseForTest</value>
二、在新集群的配置文件hbase-env.sh里面需要修改的地方:
因为hbase启动的master、regionserver进程,是在某一个指定的目录之下读取进程名称,如果不改这个目录,那么在同一台机器上启动两个regionserver或者master,会出现冲突问题。
将export HBASE_PID_DIR=/var/hadoop/pids注释去掉,等号后边的路径是在HBASE_HOME相对路径下手动选择的的一个路径,即HBASE_PID_DIR最后的绝对路径是HBASE_HOME/var/hadoop/pids。
在这个配置文件里面也需要指明不单独启动zookeeper,即将
export HBASE_MANAGES_ZK=true注释取消,并其值为false。