hive与hbase集成


详细步骤

一 、简介

Hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供完整的sql查询功能,可以将sql语句转换为MapReduce任务进行运行。 其优点是学习成本低,可以通过类SQL语句快速实现简单的MapReduce统计,不必开发专门的MapReduce应用,十分适合数据仓库的统计分析。

Hive与HBase的整合功能的实现是利用两者本身对外的API接口互相进行通信,相互通信主要是依靠hive_hbase-handler.jar工具类。

二、安装步骤:

1 .Hadoop和Hbase都已经成功安装了

Hadoop集群配置:http://www.linuxidc.com/Linux/2012-02/53632.htm

Hbase安装配置:http://www.linuxidc.com/Linux/2012-02/54225.htm

2 . 拷贝hbase-0.90.3-cdh3u1.jar和zookeeper-3.3.3-cdh3u1.jar到hive/lib下。

注意:如何hive/lib下已经存在这两个文件的其他版本(例如zookeeper-3.3.2.jar),建议删除后使用hbase下的相关版本。

2. 修改hive/conf下hive-site.xml文件,在底部添加如下内容:

<!--

<property>

<name>hive.exec.scratchdir</name>

<value>/tmp</value>

<description>Scratch space for Hive jobs</description>

</property>

<property>

<name>hive.querylog.location</name>

<value>/usr/local/hive/logs</value>

</property>

<property>

<name>hive.aux.jars.path</name>

<value>file:///usr/local/hive/lib/hive-hbase-handler-0.7.1-cdh3u1.jar,file:///usr/local/hive/lib/hbase-0.90.3-cdh3u1.jar,fi

le:///usr/local/hive/lib/zookeeper-3.3.1.jar</value>

</property>

注意:如果hive-site.xml不存在则自行创建,或者把hive-default.xml.template文件改名后使用。

3. 拷贝hbase-0.90.3-cdh3u1.jar到所有hadoop节点(包括master)的hadoop/lib下。

4. 拷贝hbase/conf下的hbase-site.xml文件到所有hadoop节点(包括master)的hadoop/conf下。

注意,如果3,4两步跳过的话,运行hive时很可能出现如下错误:

view plaincopy

org.apache.hadoop.hbase.ZooKeeperConnectionException: HBase is able to connectto ZooKeeper but the connection closes immediately.

This could be a sign that the server has too many connections (30 is thedefault). Consider inspecting your ZK server logs for that error and

then make sure you are reusing HBaseConfiguration as often as you can. SeeHTable‘s javadoc for more information. at org.apache.hadoop.

hbase.zookeeper.ZooKeeperWatcher.

三、启动Hive

1.单节点启动

#bin/hive -hiveconf hbase.dwn01=master:490001

2 集群启动:

#bin/hive -hiveconf hbase.zookeeper.quorum=dwn01,dwd01,dwd02,dwd03

如何hive-site.xml文件中没有配置hive.aux.jars.path,则可以按照如下方式启动。

bin/hive --auxpath /usr/local/hive/lib/hive-hbase-handler-0.8.0.jar,/usr/local/hive/lib/hbase-0.90.5.jar, /usr/local/hive/lib/zookeeper-3.3.2.jar-hiveconf hbase.zookeeper.quorum=dwn01,dwd01,dwd02,dwd03

四、测试:

1.创建hbase识别的数据库:

CREATE TABLE hbase_table_1(key int, value string)

STORED BY ‘org.apache.hadoop.hive.hbase.HBaseStorageHandler‘

WITH SERDEPROPERTIES ("hbase.columns.mapping" =":key,cf1:val")

TBLPROPERTIES ("hbase.table.name" = "xyz");

hbase.table.name 定义在hbase的table名称

hbase.columns.mapping 定义在hbase的列族

2.使用sql导入数据

1) 新建hive的数据表:

CREATE TABLE hb_test (id INT, url STRING);

2)批量插入数据:

hive> LOAD DATA LOCAL INPATH ‘/tmp/id.txt‘ OVERWRITE INTO TABLE hb_test

3)使用sql导入hbase_table_1:

hive> INSERT OVERWRITE TABLE hbase_table_1 SELECT * FROM hb_test;

3. 查看数据

hive> select * from hbase_table_1;

这时可以登录Hbase去查看数据了

#bin/hbase shell

hbase(main):001:0> describe ‘xyz‘

hbase(main):002:0> scan ‘xyz‘

hbase(main):003:0> put ‘xyz‘,‘100‘,‘cf1:val‘,‘www.51.com‘

这时在Hive中可以看到刚才在Hbase中插入的数据了。

4 hive访问已经存在的hbase

使用CREATEEXTERNAL TABLE:

CREATE EXTERNAL TABLE hbase_table_2(key int, value string)

STORED BY ‘org.apache.hadoop.hive.hbase.HBaseStorageHandler‘

WITH SERDEPROPERTIES ("hbase.columns.mapping" ="cf1:val")

TBLPROPERTIES("hbase.table.name" = "some_existing_table");

 更多分享请扫一扫

时间: 2024-12-27 23:08:47

hive与hbase集成的相关文章

新闻网大数据实时分析可视化系统项目——12、Hive与HBase集成进行数据分析

(一)Hive 概述 (二)Hive在Hadoop生态圈中的位置 (三)Hive 架构设计 (四)Hive 的优点及应用场景 (五)Hive 的下载和安装部署 1.Hive 下载 Apache版本的Hive. Cloudera版本的Hive. 这里选择下载Apache稳定版本apache-hive-0.13.1-bin.tar.gz,并上传至bigdata-pro03.kfk.com节点的/opt/softwares/目录下. 2.解压安装hive tar -zxf apache-hive-0.

新闻实时分析系统Hive与HBase集成进行数据分析

(一)Hive 概述 (二)Hive在Hadoop生态圈中的位置 (三)Hive 架构设计 (四)Hive 的优点及应用场景 (五)Hive 的下载和安装部署 1.Hive 下载 Apache版本的Hive. Cloudera版本的Hive. 这里选择下载Apache稳定版本apache-hive-0.13.1-bin.tar.gz,并上传至bigdata-pro03.kfk.com节点的/opt/softwares/目录下. 2.解压安装hive tar -zxf apache-hive-0.

新闻实时分析系统Hive与HBase集成进行数据分析 Cloudera HUE大数据可视化分析

1.Hue 概述及版本下载 1)概述 Hue是一个开源的Apache Hadoop UI系统,最早是由Cloudera Desktop演化而来,由Cloudera贡献给开源社区,它是基于Python Web框架Django实现的.通过使用Hue我们可以在浏览器端的Web控制台上与Hadoop集群进行交互来分析处理数据,例如操作HDFS上的数据,运行MapReduce Job等等. 2)下载 CDH版本下载 官网下载 2.编译安装 1)解压 tar -zxf hue-3.9.0-cdh5.5.0.

Hive On HBase实战

1.概述 HBase是一款非关系型.分布式的KV存储数据库.用来存储海量的数据,用于键值对操作.目前HBase是原生是不包含SQL操作,虽然说Apache Phoenix可以用来操作HBase表,但是需要集成对应的Phoenix依赖包到HBase集群中,同时需要编写对应的Schema才能实现SQL操作HBase. 本篇博客,笔者将为大家介绍另一位一种SQL方式来操作HBase,那就是Hive. 2.内容 2.1 使用场景 熟悉大数据的同学应该都知道,Hive是一个分布式的数据仓库,它能够将海量数

全网最详细的hive-site.xml配置文件里如何添加达到Hive与HBase的集成,即Hive通过这些参数去连接HBase(图文详解)

不多说,直接上干货! 一般,普通的情况是 <configuration> <property> <name>javax.jdo.option.ConnectionURL</name> <value>jdbc:mysql://master:3306/metastore?createDatabaseIfNotExist=true</value> </property> <property> <name>

Hadoop Hive与Hbase关系 整合

用hbase做数据库,但因为hbase没有类sql查询方式,所以操作和计算数据很不方便,于是整合hive,让hive支撑在hbase数据库层面 的 hql查询.hive也即 做数据仓库 1. 基于Hadoop+Hive架构对海量数据进行查询:http://blog.csdn.net/kunshan_shenbin/article/details/7105319 2. HBase 0.90.5 + Hadoop 1.0.0 集成:http://blog.csdn.net/kunshan_shenb

数据导入(一):Hive On HBase

Hive集成HBase可以有效利用HBase数据库的存储特性,如行更新和列索引等.在集成的过程中注意维持HBase jar包的一致性.Hive与HBase的整合功能的实现是利用两者本身对外的API接口互相进行通信,相互通信主要是依靠hive_hbase-handler.jar工具类. 整合hive与hbase的过程如下: 1.将HBASE_HOME下的 hbase-common-0.96.2-hadoop2.jar 和 zookeeper-3.4.5.jar 拷贝(覆盖)到HIVE_HOME/l

Hive 整合Hbase

摘要 Hive提供了与HBase的集成,使得能够在HBase表上使用HQL语句进行查询 插入操作以及进行Join和Union等复杂查询.同时也可以将hive表中的数据映射到Hbase中. ? ? 应用场景 2.1 将ETL操作的数据存入HBase ? ? ? ? ?? ? 2.2 HBase作为Hive的数据源 ? ? ? ? 2.3 构建低延时的数据仓库 环境准备 ? ? ? ? 3.1 hive与hbase整合环境配置 修改hive-site.xml文件,添加配置属性(zookeeper的地

HIVE和HBASE区别

1. 两者分别是什么? Apache Hive是一个构建在Hadoop基础设施之上的数据仓库.通过Hive可以使用HQL语言查询存放在HDFS上的数据.HQL是一种类SQL语言,这种语言最终被转化为Map/Reduce. 虽然Hive提供了SQL查询功能,但是Hive不能够进行交互查询--因为它只能够在Haoop上批量的执行Hadoop. Apache HBase是一种Key/Value系统,它运行在HDFS之上.和Hive不一样,Hbase的能够在它的数据库上实时运行,而不是运行MapRedu