HMaster 服务器用来管理HBase集群。你可以弄10个 HMaster,其中9个做备份 HMaster 服务器。使用 local-master-backup.sh 启动备份HMaster 。对于每个你想要启动的 master,可以添加一个参数代表这个 master 的端口。每个HMaster使用三个端口,默认是16010,16020,16030 。端口偏移量添加到这些端口,所以偏移量为2 ,备份HMaster会使用16012/16022/16032 的端口。以下命令使用 16012/16022/16032, 16013/16023/16033, 和16015/16025/16035 作为端口号。
$ ./bin/local-master-backup.sh 2 3 5
从整个集群中移除某一个备份 master ,你需要找到进程ID(PID)。PID存储在名称类似于 /tmp/hbase-USER-X-master.pid 的文件中。你可以使用 kill -9 命令来杀死这个PID。下面的命令将从正在运行的集群中移除一个端口偏移量为1的 master。
$ cat /tmp/hbase-testuser-1-master.pid |xargs kill -9
(7)、启动和停止附加的 RegionServer 。
HRegionServer 在 HMaster 的指导下管理 storefile 中的数据。一般的,一个 HRegionServer 在集群的每个节点上运行。伪分布式模式下在一个系统中运行多个HRegionServer 对于测试是有用的。local-regionservers.sh 命令允许你运行多个 RegionServer。它的工作原理类似于 local-master-backup.sh 命令,你提供的参数代表实例端口偏移量。每个 RegionServer 需要两个端口,默认的是16020和16030 。无论怎样,附件的 RegionServer 的基本端口不能使用默认的,因为默认端口被HMaster 端口占用,这也是 HBase 1.0.0 版本 RegionServer 的一个使用。基本端口用16200和16300替代。在同一台机器上,你可以运行99个附加的RegionServer,不是HMaster或者备份HMaster。下面这个命令启动4个附件的 RegionServer ,运行在从 16202/16302 开始连续的端口(16200/16300 端口每次加2)。
$ .bin/local-regionservers.sh start 2 3 4 5
使用 local-regionservers.sh 命令加上 stop 参数及服务器端口偏移量手动地停止一个RegionServer
$ .bin/local-regionservers.sh stop 3
2.4 高级 ----- 完全分布式
实际上,你需要一个完全分布式配置并且使用真实情景去完全的测试HBase。在一个分布式配置中,一个集群包含多个节点,每个节点运行一个或者多个 HBase 守护进程。他们包含主 HMaster 和备份 HMaster 实例,多个 Zookeeper 节点,和多个 RegionServer 节点。
添加大于两个的节点到你的集群,实例如下:
表1. 分布式集群样例模板
这个示例采取每个节点是在同一网段的虚拟机。分布式模式的搭建是根据之前的伪分布式的搭建,假设之前的配置步骤是在现在的 node-a 节点。停止掉 HBase 后再继续。
!请确保每个节点的防火墙关闭。
步骤:配置SSH互信
(略过,请自行 Google 或者某度!)
步骤:准备节点 node-a
node-a 节点用来运行主 master 和 Zookeeper 进程,不过没有 RegeionServer 。
(1)、编辑 cong/regionservers ,并且移除 lcoalhost 行。然后添加 node-b 和 node-c 的主机名或者IP地址。
如果你想要在节点 node-a 节点运行 RegionServer ,你应该确保各主机间能够相互通信。这使你可以配置分发到任何主机冲突的节点。保存文件。
(2)、配置 HBase 使 node-b 节点作为备份 master。
创建一个新的文件 conf/backup-masters ,并添加新的一行主机名--node-b。在本例中,主机名是 node-b.example.com。
(3)、配置 Zookeeper。
实际上,你需要小心的考虑 Zookeeper 的配置。关于 Zookeeper的更多配置,下面有专门解释。
在节点 node-a ,编辑 conf/hbase-site.xml ,添加以下配置。