基础架构
一个HBase集群,正常运行会出现:
HMaster进程,主节点
RegionServer进,从节点
Zookeeper
HBase的运行需要依赖:
存储上依赖HDFS
元数据上依赖Zookeeper
部署HBase,前提是:
有Hadoop集群
有Zookeeper集群
元数据就是对数据进行描述的一种数据。 比如:Hive的元数据记录了Hive有哪些表,哪些库,表有哪些字段,表的数据在哪里 这些都是对Hive管理的数据,进行描述的数据,是元数据。 存储在MySQL中。
HBase的元数据也是记录了:HBase有哪些表,有哪些库(namespace),表有哪些列,以及数据在哪个region 这些元数据,存储在:Zookeeper
集群规划
node1:Master 和 RegionServer
node2:RegionServer
node3:RegionServer
安装部署
上传资料中提供的安装包hbase-2.1.0-bin-with-config.tar.gz
解压到安装目录,比如/export/server内
tar -zxvf hbase-2.1.0-bin-with-config.tar.gz -C export/server/
解压后,在/export/server下就有hbase-2.1.0的文件夹
编辑配置文件,首先编辑:conf/hbase-env.sh
内容:
shell # JDK的位置 export JAVA_HOME=/export/server/jdk # 是否使用HBase内置的Zookeeper,我们选择false不使用,我们自己部署Zookeeper export HBASE_MANAGES_ZK=false # 表示HBase启动的时候 是否不加载hadoop的jar包,选择是:不加载 export HBASE_DISABLE_HADOOP_CLASSPATH_LOOKUP=”true”
编辑配置文件,conf/hbase-site.xml
内容:
```xml hbase.rootdir hdfs://node1:8020/hbase hbase.cluster.distributed true hbase.zookeeper.quorum node1,node2,node3 hbase.zookeeper.property.dataDir data/zk-data/hbase-zk-data hbase.unsafe.stream.capability.enforce false
```
需要注意的是:
hbase.rootdir设置为你的hdfs路径
hbase.zookeeper.quorum,设置为你电脑的Zookeeper地址
hbase.zookeeper.property.dataDir,设置为你的电脑的路径(随意在哪都行)
编辑配置文件:conf/regionservers
内容:
shell node1 node2 node3
配置环境变量:vim etc/profile
在底部追加2行:
shell export HBASE_HOME=/export/server/hbase-2.1.0 export PATH=$PATH:$HBASE_HOME/bin
开始分发
将node1的hbase文件夹复制到node2和node3上 shell cd export/server scp -r hbase-2.1.0 node2:`pwd`/ scp -r hbase-2.1.0 node3:`pwd`/
登陆到node2,和node3 修改环境变量 编辑:/etc/profile,在底部追加 shell export HBASE_HOME=/export/server/hbase-2.1.0 export PATH=$PATH:$HBASE_HOME/bin
至此,HBase的前期配置就ok了。
启动
前提
hdfs已经启动了(Hadoop安装文件夹/sbin/start-dfs.sh)
Zookeeper已经启动了(Zookeeper安装文件夹/bin/zkServer.sh start)
执行hbase的启动脚本:
执行:hbase的安装目录/bin/start-hbase.sh
执行完成后,打开浏览器:输入:node1:16010端口即可看到:
停止hbase集群
执行:hbase的安装文件夹/bin/stop-hbase.sh
如果这个命令半天没反应,手动kill进程也是可以的。
master进程叫:HMaster
regionserver进程叫:HRegionServer
安装部署的常见问题
zk的启动
# 大部分同学的Zookeeper只启动了 node1
我们用的hdfs、yarn、以及hbase都有脚本可以一次性启动整个集群
但是:
Zookeeper不可以,需要一台台单独的启动
# 修复,在node2和node3启动zk
# 接着启动hbase即可