hbase分布式,数据最终会落到 hdfs 文件系统中,所以先要部署 hdfs ,详见文档 hadoop-2.6.0-cdh5.9.3分布式高可用部署。hdfs 部署完毕后,就可以部署 hbase 集群了。
hbase开启 snappy 压缩功能的话,请查看文档
https://blog.csdn.net/qq_31547771/article/details/100564415
首先从cdh官网下载 hbase-1.2.0-cdh5.9.3.tar.gz 包。
http://archive.cloudera.com/cdh5/cdh/5/
1、服务器3台(hbase高可用集群最好是5个以上,两个HMaster ,3个HRegionServer )
ip | 主机名 | 部署服务名 |
---|---|---|
192.168.2.81 | hbasemaster81 | HMaster |
192.168.2.82 | hbasemaster82 | HMaster、HRegionServer |
192.168.2.83 | hbaseregion83 | HRegionServer |
2、每个节点添加hosts解析,除3台hbase几点的解析外,还需要加hdfs集群中zookeepeer的(上篇部署 hdfs 集群文档中的服务器 ip 是10网段的,我现在这里用的是另一个 hdfs 集群,部署方式一样)
cat >> /etc/hosts << EOF
192.168.2.81 hbasemaster81
192.168.2.82 hbasemaster82
192.168.2.83 hbaseregion83
192.168.2.91 namenode91
192.168.2.92 namenode92
192.168.2.93 namenode93
EOF
3、安装 jdk ,我用的是 jdk1.8
java -version
java version "1.8.0_111"
Java(TM) SE Runtime Environment (build 1.8.0_111-b14)
Java HotSpot(TM) 64-Bit Server VM (build 25.111-b14, mixed mode)
4、ssh免密登录,是的,你没看错,hdfs和hbase都非常粗暴的一点,启动本机的进程,也是直接ssh登录本机执行的启动命令
ssh-keygen
ssh-copy-id hbasemaster81
ssh-copy-id hbasemaster82
ssh-copy-id hbaseregion83
5、准备一个hbase使用的zookeepeer集群,我这里和 hdfs 用的是一个zookeepeer集群
6、下载hbase-1.2.0-cdh5.9.3.tar.gz文件并解压到安装路径 /data
wget http://archive.cloudera.com/cdh5/cdh/5/hbase-1.2.0-cdh5.9.3.tar.gz
tar xvf hbase-1.2.0-cdh5.9.3.tar.gz -C /data
cd /data/hbase-1.2.0-cdh5.9.3
7、添加环境变量到/etc/profile,并加载环境变量
cat >> /etc/profile << EOF
export HBASE_HOME=/data/hbase-1.2.0-cdh5.9.3
export PATH=$PATH:$HBASE_HOME/bin
EOF
. /etc/profile
1、配置 conf/hbase-site.xml 文件(hbase.rootdir 和 dfs.nameservices 要改成自己的 hdfs 高可用集群名称,上篇 hdfs 高可用部署文档中,我的 hdfs 集群名称是 flinkhdfs ,这篇文档,我用的 hdfs 集群是另一个名为 hbasehdfs 的hdfs 集群 )
再解释一下,hdfs://hbasehdfs/hbasedir ,hbasehdfs是hdfs 高可用集群名称,hbasedir是hbase在hdfs文件系统中的目录,自己定义一个
我的hbase注册的zookeepeer集群和hdfs使用的同一个
vim conf/hbase-site.xml
hbase.rootdir
hdfs://hbasehdfs/hbasedir
dfs.nameservices
hbasehdfs
hbase.cluster.distributed
true
hbase.zookeeper.quorum
namenode91,namenode92,namenode93
hbase.zookeeper.property.clientPort
2181
2、设置hbase使用独立 zookeepeer 集群,这个不改的话,启动hbase 时候,会自动启动zookeepeer的
vim conf/hbase-env.sh
export HBASE_MANAGES_ZK=false
3、将 hdfs集群中的配置文件 core-site.xml 和 hdfs-site.xml 文件复制到 conf 目录下
cp -a /data/hadoop-2.6.0-cdh5.9.3/etc/hadoop/core-site.xml conf/
cp -a /data/hadoop-2.6.0-cdh5.9.3/etc/hadoop/hdfs-site.xml conf/
4、在 conf/regionservers 文件中添加 hbase HRegionServer 节点的主机名
cat >> conf/regionservers << EOF
hbasemaster82
hbaseregion83
EOF
5、创建一个 conf/backup-masters 文件,用来指定 hbase master 备份节点,我的备份节点是 hbasemaster82
cat >> conf/backup-masters << EOF
hbasemaster82
EOF
6、将 hbase-1.2.0-cdh5.9.3 目录修改属主后发到各个节点来启动集群
cd ..
chown -R root. hbase-1.2.0-cdh5.9.3
scp -r hbase-1.2.0-cdh5.9.3 hbasemaster82:/data/
scp -r hbase-1.2.0-cdh5.9.3 hbaseregion83:/data/
cd -
start-hbase.sh
7、启动成功后,各节点的进程
hbasemaster81节点截图
hbasemaster82节点截图
hbaseregion83节点截图
8、验证启动没问题后,打开web浏览器,查看 UI 界面
查看master主节点
192.168.2.81:60010
查看master备份节点
192.168.2.82:60010