Hive和HBase整合

本文主要描述Hive和HBase 环境整合配置的详细过程:

  • 基本环境
  • 整合配置
  • 测试验证

[一]、基本环境

各设备对应的信息/角色/用途:

hostname IP Hadoop用途 HBase用途 Hive
Master.Hadoop 192.168.6.77 NameNode/ResouceManager Master mysql(metastore)
Slave5.Hadoop 192.168.8.205 DataNode/NodeManager RegionServer
Slave6.Hadoop 192.168.8.206 DataNode/NodeManager RegionServer
Slave7.Hadoop 192.168.8.207 DataNode/NodeManager RegionServer
  • Hadoop 2.2.0 集群部署
  • Hive-0.13.0 (MetaStore 配置为mysql数据库)
  • HBase-0.98.0-hadoop2 集群部署

ps:Hive0.12.0这个版本的发布包 和Hadoop2x、HBase0.98整合有问题,同时我编译Hive0.12.0的源码一直失败,故选择了Hive-branch-0.13.0(官方0.13.0还没有正式发布)编译,然后进行整合测试:

编译成功后在 packaging/target 下找到 apache-hive-0.13.0-bin.tar.gz

[二]、整合配置

Hadoop集群部署HBase集群部署Hive安装以及Hive的metastore的配置这里就不再过多描述,之前的文章已经详细介绍过了,这里重点就是Hive和HBase整合的主要配置过程。

ps:自己编译的Hive 0.13.0 直接可以部署成功,无需下面lib复制的过程(这个有点疑惑)。

首先要确保<HIVE_HOME>/lib 下HBase的jar包的版本要和实际环境中HBase的版本一致,需要用<HBASE_HOME>/lib/目录下得jar包:

替换掉<HIVE_HOME>/lib/目录下的jar包:

[三]、测试验证

测试前先依次启动Hadoop、Hbase

1、测试单节点HBase的连接

1.1、在Hive中创建HBase关联的表:

Hive shell 执行过程如下:

metastore 配置的mysql中信息:

HBase shell 下验证:

到此创建关联表验证成功。

1.2、下面演示把数据从Hive中迁移到HBase中:

在Hive CLI中,创建表pokes ,并导入测试数据:

Hive CLI 中向关联表 [ hbase_table_1 ] 中插入数据:

HBase shell 下验证插入的数据:

1.3、下面演示从HBase 端插入测试数据:

然后再在Hive中查询验证刚才插入的数据:

2、测试集群HBase的连接

其他建表、插入数据的测试过程可以参考上面。

参考:

  • https://cwiki.apache.org/confluence/display/Hive/HBaseIntegration
  • https://cwiki.apache.org/confluence/display/Hive/GettingStarted
  • https://cwiki.apache.org/confluence/display/Hive/HiveDeveloperFAQ

—————–  EOF @Michael Sun —————–

原创文章,转载请注明: 转载自micmiu – 软件开发+生活点滴[ http://www.micmiu.com/ ]

本文链接地址: http://www.micmiu.com/bigdata/hive/hive-hbase-integration/

发表评论?

3 条评论。

  1. 😛 可以将编译完的hive1.3发到我邮箱不

回复给 Michael ¬
取消回复


注意 - 你可以用以下 HTML tags and attributes:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">