【十八掌●武功篇】第八掌:HBase之安装与集成

这一篇博文是【大数据技术●降龙十八掌】系列文章的其中一篇,点击查看目录:这里写图片描述大数据技术●降龙十八掌


系列文章:
:【十八掌●武功篇】第八掌:HBase之基本概念
【十八掌●武功篇】第八掌:HBase之Shell
【十八掌●武功篇】第八掌:HBase之基本操作Java API
【十八掌●武功篇】第八掌:HBase之过滤器总结
【十八掌●武功篇】第八掌:HBase之性能调优
【十八掌●武功篇】第八掌:HBase之安装与集成

一、 HBase安装部署—伪分布式安装

1、 版本选择
选择:hbase-0.98.6-cdh5.3.6.tar.gz,CDH版本5.3.6的HBase0.98.6版本

2、 安装要求
(1) 要有Hadoop集群。因为Hbase是运行在Hadoop上的,所以必须已经安装好了Hadoop。
(2) 要有Zookeeper集群。因为HBase是使用Zookeeper来进行协同管理的。
(3) 最好使用JDK1.7,官网上推荐使用JDK1.7,因为虽然可以跑在JDK1.8上,但是没有进行严格的测试。

3、 解压HBase
[hadoop@bigdata-51cdh software]$ tar -zxf /opt/software/hbase-0.98.6-cdh5.3.6.tar.gz -C /opt/modules/
将HBase解压到/opt/modules目录下。

4、 配置HBase

(1) 配置hbase-env.sh

hbase-env.sh文件配置HBase的一些环境变量的设置
● 配置JAVA_HOME
export JAVA_HOME=/opt/modules/jdk1.7.0_67
● 配置HBASE_CLASSPATH
export HBASE_CLASSPATH=/opt/modules/hadoop-2.5.0-cdh5.3.6/etc/hadoop
这个需要配置的是Hadoop的配置文件路径。
● 配置HBASE_MANAGES_ZK
export HBASE_MANAGES_ZK=false
这个是配置是否使用HBase自带的Zookeeper,我们一般不使用自带的而是使用自己的Zookeeper集群,所以这里配置为false。

(2) 配置hbase-site.xml

● hbase.rootdir
hbase.rootdir是指定HBase存储数据所在的HDFS上的路径。

<property>
<name>hbase.rootdir</name>
<value>hdfs://bigdata-51cdh.chybinmy.com:8020/hbase</value>
</property>

● hbase.cluster.distributed
hbase.cluster.distributed是配置HBase是否是集群模式运行,false是本地模式,运行在一个JVM进程中,true时HBase是运行在多个JVM进程中。

<property>
<name>hbase.cluster.distributed</name>
<value>true</value>
</property>

● hbase.zookeeper.property.datadir
指定HBase使用的Zookeeper上节点的数据路径。

<property>
   <name>hbase.zookeeper.property.dataDir</name>
   <value>/hbase</value>
 </property>

● hbase.zookeeper.quorum
指定HBase使用的Zookeeper集群地址

<property>
   <name>hbase.zookeeper.quorum</name>
   <value>bigdata-senior01.chybinmy.com:2181,bigdata-senior02.chybinmy.com:2181,bigdata-senior03.chybinmy.com:2181</value>
 </property>

(3) 配置reginservers
指定HBase数据存储在哪些机器上,就是RegionServers节点的机器名,一行一个。

(4) 配置backup-masters
指定HBase Master节点的备份节点是哪些,就是备份节点的机器名,一行一个。

5、 启动HBase

[hadoop@bigdata-51cdh hbase-0.98.6-cdh5.3.6]$ bin/start-hbase.sh
启动HBase后,有两个进程:

[hadoop@bigdata-51cdh hbase-0.98.6-cdh5.3.6]$ jps
3301 ResourceManager
3151 SecondaryNameNode
3402 NodeManager
3830 RunJar
25338 Jps
25127 HMaster
2969 DataNode
2872 NameNode
25255 HRegionServer
3752 RunJar

HMaster是Master节点进程。
HRegionServer是RegionServer节点进程。
Web界面地址端口号是:60010
这里写图片描述

6、 HBase数据结构组成
列族
RowKey列标签1列标签2
rowkey001namecityid

二、 HUE集成HBase

1、 修改HUE配置

(1) 修改hue.ini文件

[hadoop@bigdata-51cdh conf]$ cd /opt/modules/hue-3.7.0-cdh5.3.6/desktop/conf/
[hadoop@bigdata-51cdh conf]$ vim hue.ini

(2) 修改HBase节点的配置

[hbase]
# 配置HUE连接Hbase使用的Thrift服务器
  hbase_clusters=(Cluster|bigdata-51cdh.chybinmy.com:9090)
  #HBase配置目录,HUE读取这些配置感知HBase
  hbase_conf_dir=/opt/modules/hbase-0.98.6-cdh5.3.6/conf
2、 启动HBase Thrife服务

[hadoop@bigdata-51cdh conf] cd/opt/modules/hbase0.98.6cdh5.3.6/[hadoop@bigdata51cdhhbase0.98.6cdh5.3.6] bin/hbase-daemon.sh start thrift
启动后可以看到ThriftServer进程。
查看9090端口状态是否监控正常。
[hadoop@bigdata-51cdh hbase-0.98.6-cdh5.3.6]$ netstat -tlnup | grep 9090

3、 启动HUE

nohup /opt/modules/hue-3.7.0-cdh5.3.6/build/env/bin/supervisor > hive_run.log 2>&1 &

4、 查看HUE中的HBase

访问8888端口的HUE Web页面,转到HBase菜单,可以看到HBase中的表。

这里写图片描述

三、 HBase与Hive集成

(1) 拷贝Hive的依赖包

将Hive lib目录下的hive-hbase-handler-1.0.1.jar文件拷贝到hbase 的lib目录下。
[centos@hadoop1 ~]$ cp /data/sysdir/hive-1.0.0/lib/hive-hbase-handler-1.0.0.jar /data/sysdir/hbase-1.1.2/lib/

(2) 拷贝HBase的依赖包

将hbase的lib目录下的所有.jar包拷贝到hive的lib目录下。
[centos@hadoop1 sysdir]$ cp /data/sysdir/hbase-1.1.2/lib/*.jar /data/sysdir/hive-1.0.0/lib/

(3) Hive中创建外部表

在Hive创建表一个外部表,

create external table news_content(rowkey string,content string)
row format serde "org.apache.hadoop.hive.hbase.HBaseSerDe"
stored by "org.apache.hadoop.hive.hbase.HBaseStorageHandler"
with serdeproperties("hbase.columns.mapping"=":key,cf_content:content") tblproperties("hbase.table.name"="default:TemplateNewsContent");

对应的HBase表结构为:

hbase(main):001:0> desc 'TemplateNewsContent'
Table TemplateNewsContent is ENABLED                                                                                                                                        
TemplateNewsContent                                                                                                                                                         
COLUMN FAMILIES DESCRIPTION                                                                                                                                                 
{NAME => 'cf_content', DATA_BLOCK_ENCODING => 'NONE', BLOOMFILTER => 'NONE', REPLICATION_SCOPE => '0', VERSIONS => '3', COMPRESSION => 'NONE', MIN_VERSIONS => '0', TTL => '
FOREVER', KEEP_DELETED_CELLS => 'FALSE', BLOCKSIZE => '65536', IN_MEMORY => 'false', BLOCKCACHE => 'false'}

表名为:’TemplateNewsContent’,列族名为cf_content,有一个列标签为content。

(4) 在hive中查询hbase的数据

hive> select rowkey from news_content limit 100;

这样就可以在hive中查询hbase中的数据了,这里要求hbase中的数据可以表示为二维表的形式。


这一篇博文是【大数据技术●降龙十八掌】系列文章的其中一篇,点击查看目录:这里写图片描述大数据技术●降龙十八掌

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值