在Hbase Replication时,需要部署两个集群才能完成一个完整的replication的流程,即使是stand-alone模式部署,也需要两台机器。
首先,需要明确的一点是,一台机器肯定是可以同时运行两个Hbase进程的,只是可能在启动时会产生冲突,我们要做的就是想办法解决冲突。
为了防止冲突,首先需要熟悉Hbase的启动流程:
start-hbase.sh 启动入口
1.1 该入口里面会调用hbase-config.sh
hbase-config内部会加载HBASE_HOME/conf/hbase-env.sh文件的内容
1.2 该入口会调用habse-daemon.sh和hbase-daemons.sh
hbase-daemon.sh 会启动master
hbase-daemons.sh会启动zk、rs以及backup-master
了解了流程之后,就大概明白哪些地方有冲突了。然后:
1首先需要将hbase安装到两个不同的目录下,比如/path/to/hbase1和/path/to/hbase2
2然后在环境变量中配置两个HBASE_HOME,注意不能同名,比如HBASE_HOME和HBASES_HOME。
3然后到第二个Hbase的hbase-config、hbase-env、hbase-daemon里面
3.1将HBASE_HOME全部改成HBASES_HOME.
3.2将/path/to/hbase1全部改成/path/to/hbase2。
4 最好将hbase start-hbase.sh这些命令的名字改掉,防止PATH中的路径冲突。
按照上述操作之后,分别在各自的安装目录下通过命令启动hbase进程即可。然后执行jps命令,看到有两个Hmaster进程就说明成功了。