您的位置:首页 > 大数据

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

2017-12-01 08:47 417 查看
这一篇博文是【大数据技术●降龙十八掌】系列文章的其中一篇,点击查看目录:

大数据技术●降龙十八掌


系列文章:

:【十八掌●武功篇】第八掌: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/hbase−0.98.6−cdh5.3.6/[hadoop@bigdata−51cdhhbase−0.98.6−cdh5.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中的数据可以表示为二维表的形式。

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

大数据技术●降龙十八掌
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  hbase 大数据
相关文章推荐