1.写在前面
目前Hadoop生态的大数据组件都有一个其本身擅长的领域,并且目前看来,这个领域相对较窄,所以各位学生在大数据相关活动中,难免会有技术交集,最近学生在做离线数仓项目的时候,采用kylin技术组件,能够快速根据维度和度量指标获得结果,kylin依赖Hbase的数据存储,这里简单讲解一下Hbase的相关特性和安装部署流程。
其他大数据相关组件可以参照本栏目其他文章,kylin组件后续安排
2.Hbase介绍及特性
1)HBase是BigTable的开源java版本。是建立在HDFS之上,提供高可靠性、高性能、列存储、可伸缩、实时读写NoSQL的数据库系统
2)HBase仅能通过主键(row key)和主键的range来检索数据,仅支持单行事务
3)主要用来存储结构化和半结构化的松散数据
4)Hbase查询数据功能很简单,不支持join等复杂操作,不支持复杂的事务(行级的事务)
5)Hbase中支持的数据类型:byte[]
6)Hbase支持横向扩展,即增加服务器达到增加存储和处理能力
7)Hbase表的特点:大,可以存上十亿行,上百万列;面向列,面向列(族)的存储和权限控制,列(族)独立检索;稀疏,对于为空(null)的列,并不占用存储空间,因此,表可以设计的非常稀疏
3. Hbase应用场景
对象存储、时序数据、推荐画像、时空数据、Cube OLAP(kylin)、消息订单、Feeds流、NewSQL等
4. 强调
1)因为Hbase不支持join,故不适合做数仓存储
2)不同于Hive,有较快的查询能力,可以直接对接业务系统,但对复杂事务支持不够
3)Hbase是一种在Hadoop之上的NoSQL 的Key/value数据库
对象存储、时序数据、推荐画像、时空数据、Cube OLAP(kylin)、消息订单、Feeds流、NewSQL等
5. 安装部署
安装版本:hbase 2.1.0
上传安装包至 /export/software
解压安装包
tar -xvzf hbase-2.1.0.tar.gz -C ../server/
5.1 修改HBase配置文件
cd /export/server/hbase-2.1.0/conf
vim hbase-env.sh
# 第28行
export JAVA_HOME=/export/server/jdk1.8.0_333/
export HBASE_MANAGES_ZK=false
修改hbase-site.xml
<configuration>
<!-- HBase数据在HDFS中的存放的路径 -->
<property>
<name>hbase.rootdir</name>
<value>hdfs://node1:8020/hbase</value>
</property>
<!-- Hbase的运行模式。false是单机模式,true是分布式模式。若为false,Hbase和Zookeeper会运行在同一个JVM里面 -->
<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
</property>
<!-- ZooKeeper的地址 -->
<property>
<name>hbase.zookeeper.quorum</name>
<value>node1,node2,node3</value>
</property>
<!-- ZooKeeper快照的存储位置 -->
<property>
<name>hbase.zookeeper.property.dataDir</name>
<value>/export/server/zookeeper-3.4.6/data</value>
</property>
<!-- V2.1版本,在分布式情况下, 设置为false -->
<property>
<name>hbase.unsafe.stream.capability.enforce</name>
<value>false</value>
</property>
</configuration>
配置环境变量
# 配置Hbase环境变量
vim /etc/profile
export HBASE_HOME=/export/server/hbase-2.1.0
export PATH=$PATH:${HBASE_HOME}/bin:${HBASE_HOME}/sbin
#加载环境变量
source /etc/profile
复制jar
cp $HBASE_HOME/lib/client-facing-thirdparty/htrace-core-3.1.0-incubating.jar $HBASE_HOME/lib/
修改conf下regionservers文件
#删除localhost
node1
node2
node3
分发安装包与配置文件
cd /export/server
scp -r hbase-2.1.0/ node2:$PWD
scp -r hbase-2.1.0/ node3:$PWD
scp -r /etc/profile node2:/etc
scp -r /etc/profile node3:/etc
在node2和node3分别加载环境变量
source /etc/profile
6、启动hbase
#进入onekey目录下,栏目下有文章介绍一键启动
# 启动ZK一键启动
./start-zk.sh
# 启动hadoop
start-dfs.sh
# 启动hbase
start-hbase.sh
7、验证Hbase是否安装成功
# 启动hbase shell客户端
hbase shell
# 输入status
status
8、UI界面访问
http://node1:16010