Hive部署(包括集成Hbase和Sqoop)

标签: hive hbase sqoop | 发表时间:2013-04-14 12:50 | 作者:
出处:http://www.iteye.com

Hive部署(包括集成Hbase和Sqoop) 

1 安装环境

1.1 系统环境

    主要是选择软件版本。

  • Hadoop 1.0.3
  • Hbase 0.94.0
  • Hive 0.8.1
  • zookeeper-3.3.5
  • Mysql 5.5.28
  • JDK 1.6
  • Sqoop-1.4.2

1.2 环境变量

  • $HDOOP_HOME:/home/hadoop/hadoop
  • $HBASE_HOME:/home/hadoop/hbase
  •  $HIVE_HOME:/home/hadoop/hive

2 下载

http://mirror.bit.edu.cn/apache/hive/hive-0.8.1/

3 解压

tar –xf hive-0.8.1.tar.gz

将解压后的hive-0.8.1文件放在系统的/home/hadoop/hive/中。

mkdir /home/hadoop/hive
mv /home/hadoop/hive-0.8.1 /home/hadoop/hive

4 修改配置文件

4.1 设置HADOOP_HOME

修改hive-0.8.1目录下/conf/hive-env.sh.template中的HADOOP_HOME为实际的Hadoop安装目录。

步骤一:进入/home/hadoop/hive/conf。

cd /home/hadoop/hive/conf

步骤二:复制hive-env.sh.template命名为hive-env.sh。

cp hive-env.sh.template hive-env.sh

步骤三:修改HADOOP_HOME目录为/home/hadoop/hadoop。

vim hive-env.sh

 修改完成之后的效果如图所示。

配置设置HADOOP_HOME结束。

4.2 在HDFS中创建/tmp/user/hive/warehouse并设置权限

步骤如下所示:

bin/hadoop fs -mkdir /tmp 
bin/hadoop fs -mkdir /user/hive/warehouse 
bin/hadoop fs -chmod g+w /tmp
bin/hadoop fs -chmod g+w /user/hive/warehouse

修改完成之后的效果如图所示:


创建/tmp和/user/hive/warehouse结束。

4.3 修改hive-site.xml

hive-site.xml主要配置项说明如下所示:

  • hive.metastore.warehouse.dir:数据存放目录,默认路径为/user/hive/warehouse
  • hive.exec.scratchdir:临时文件目录,默认路径为/tmp

步骤一:创建hive-default.xml、hive-site.xml

将conf/hive-default.xml.template复制两份,分别命名为hive-default.xml(用于保留默认配置)和hive-site.xml(用于个性化配置,可覆盖默认配置)。命令如下所示:

cd /home/hadoop/hive/conf
cp hive-default.xml.template hive-default.xml
cp hive-default.xml.template hive-site.xml

步骤二:修改hive-site.xml,命令如下所示:

cd /home/hadoop/hive/conf
vim hive-site.xml

下面是hive-site.xml文件的配置示例:

<property>
<name>hive.metastore.warehouse.dir</name>
<value>/user/hive/warehouse</value>
<description>location of default database for the warehouse
</description>
</property>

<property>
<name>hive.exec.scratchdir</name>
<value>/tmp</value>
<description>Scratch space for Hive jobs</description>
</property>

修改hive-site.xml结束。

4.4 测试

在终端输入bin/hive,当你看到“hive>”,那么恭喜你,Hive已经正确安装,可以运行了。

5

5 设置Hive元数据存储

由于Hive的元数据可能要面临不断的更新、修改和读取,所以它显然不适合使用Hadoop文件系统进行存储。目前Hive将元数据存储在RDBMS中,比如MySQL、Derby中。本文选择MySQL。

5.1 连接数据库配置参数

  • javax.jdo.option.ConnectionURL:元数据连接字串
  • javax.jdo.option.ConnectionDriverName:DB连接引擎
  • javax.jdo.option.ConnectionUserName:DB连接用户名
  • javax.jdo.option.ConnectionPassword:DB连接密码

5.2 修改hive-site.xml

代码如下所示:

<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>
jdbc:mysql://10.2.0.254:3306/hive?createDatabaseIfNotExist=true
</value>
<description>
JDBC connect string for a JDBC metastore
</description>
</property>

<property>
<name>javax.jdo.option.ConnectionDriverName</name>
<value>com.mysql.jdbc.Driver</value>
<description>
Driver class name for a JDBC metastore
</description>
</property>

<property>
<name>javax.jdo.option.ConnectionUserName</name>
<value>hive</value>
<description>
username to use against metastore database
</description>
</property>

<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>exhive</value>
<description>
password to use against metastore database
</description>
</property>

5.3 拷贝MySQL的JDBC驱动包

把MySQL的JDBC驱动包(mysql-connector-java-5.1.21.jar)复制到Hive的lib目录下。

Hive元数据配置结束。

5.4 测试

在Hive中创建表成功后,数据库中自动创建表格,即说明配置成功。如图所示:




 
 

6

6 Hive集成Hbase

6.1 前置条件及原理

Hadoop、hive和hbase环境搭建完成。Hive与Hbase的整合功能的实现是利用两者本身对外的API接口互相进行通信,相互通信主要是依靠hive-hbase-handler.jar工具类(Hive Storage Handlers)。

6.2 配置hbase与hive结合包

 将hbase-0.94.0.jar 、zookeeper-3.3.5.jar包copy至所有节点$HDOOP_HOME/lib及$HIVE_HOME/lib下。注意$HIVE_HOME/lib含有hbase包需要删除。

将protobuf-java-2.4.0a.jar包copy至所有节点$HADOOP_HOME/lib下,并需要重启集群(不重启该包不会被加载进classpath)。

将hbase-site.xml文件copy至所有节点$HDOOP_HOME/conf下。

6.3 配置hive-site.xml

代码如下所示:

<property>
<name>hive.aux.jars.path</name>
<value>
file:///home/hadoop/hive/lib/hive-hbase-handler-0.8.1jar,
file:/// home/hadoop/hive/lib/hbase-0.94.0.jar,
file:/// home/hadoop/hive/lib/zookeeper-3.4.5.jar
</value>
</property>

Hive与hbase集成到这里就结束了。

6.4 测试

1、启动hive,创建表。代码如下:

hive>CREATE TABLE hbase_hive(key string, value string)
STORED BY
'org.apache.hadoop.hive.hbase.HBaseStorageHandler'
WITH SERDEPROPERTIES
("hbase.columns.mapping"=":key,info:value")
TBLPROPERTIES  ("hbase.table.name"= "hbase_hive");

创建表成功,表名为:hbase_hive。

2、在hive和hbase查询表hbase_hive是否存在

在hive中:

hive> show tables;

hbase_hive

在hbase中:

hbase(main):004:0> list

TABLE                                                               

hbase_hive                                                                                                                                       

Hive和Hbase中都出现了hbase_hive这张表,表明Hive集成Hbase成功。

7

7 安装sqoop

7.1 下载sqoop

http://www.apache.org/dist/sqoop/1.4.2/sqoop-1.4.2.bin__hadoop-0.20.tar.gz

7.2 解压

tar –xf sqoop-1.4.2.bin__hadoop-0.20.tar.gz

将解压后的sqoop-1.4.2.bin__hadoop-0.20文件放在系统的/home/hadoop/sqoop/中。

mkdir /home/hadoop/sqoop
mv /home/hadoop/sqoop-1.4.2.bin__hadoop-0.20 /home/hadoop/sqoop

7.3 修改配置文件

修改sqoop目录下/conf/sqoop-env.sh.template中的HADOOP_HOME和HIVE_HOME安装目录。

步骤一:进入/home/hadoop/sqoop/conf。

cd /home/hadoop/sqoop/conf

步骤二:复制sqoop-env.sh.template命名为sqoop-env.sh。

cp sqoop-env.sh.template sqoop-env.sh 

步骤三:修改HADOOP_HOME目录为/home/hadoop/hadoop。

vim sqoop-env.sh

修改完成之后的效果如图所示。
    到这里,sqoop就已经安装成功。   

此博客为原创,转载请保留此出处,谢谢。 http://free9277.iteye.com/blog/1847094



已有 0 人发表留言,猛击->> 这里<<-参与讨论


ITeye推荐



相关 [hive hbase sqoop] 推荐:

Hive部署(包括集成Hbase和Sqoop)

- - ITeye博客
Hive部署(包括集成Hbase和Sqoop) .     主要是选择软件版本. 将解压后的hive-0.8.1文件放在系统的/home/hadoop/hive/中. 4.1 设置HADOOP_HOME. 修改hive-0.8.1目录下/conf/hive-env.sh.template中的HADOOP_HOME为实际的Hadoop安装目录.

Sqoop导入关系数据库到Hive

- - 开源软件 - ITeye博客
文章来自:http://blog.javachen.com/2014/08/04/import-data-to-hive-with-sqoop/. Sqoop 是 apache 下用于 RDBMS 和 HDFS 互相导数据的工具. 本文以 mysql 数据库为例,实现关系数据库导入到 hdfs 和 hive.

hive中udf读写hbase

- - CSDN博客推荐文章
在大数据开发过程中经常会遇到,将hive中处理后的结果写入hbase中,每次都要写java程序会非常浪费时间,我们就想了一个办法 ,用hive的udf来实现. 只需要调用同一个udf,将表名字段名以及每一个字段的值作为udf的参数,就可以实现写hbase了. 这样大大的节省了开发时间,提升了开发效率.

Sqoop实现关系型数据库到hive的数据传输

- - CSDN博客互联网推荐文章
Sqoop实现关系型数据库到hive的数据传输. 作者:zyuc_wangxw 发表于2013-8-9 17:21:20 原文链接. 阅读:118 评论:0 查看评论.

oozie定时循环调度sqoop job 增量导数入hive

- - angela的博客
假设oracle里面有一个student表每10分钟有一批新增的数据,现在想要把数据同步到hive,实现思路是用oozie的coordinator定义一个job,job里面调度workflow用sqoop从oracle里增量导数入hive. 一、oozie调度sqoop直接导数入hive --全量.

从hbase(hive)将数据导出到mysql

- - CSDN博客云计算推荐文章
在上一篇文章《 用sqoop进行mysql和hdfs系统间的数据互导》中,提到sqoop可以让RDBMS和HDFS之间互导数据,并且也支持从mysql中导入到HBase,但从HBase直接导入mysql则不是直接支持,而是间接支持. 要么将HBase导出到HDFS平面文件,要么将其导出到Hive中,再导出到mysql.

Hive集成HBase详解 - MOBIN - 博客园

- -
Hive提供了与HBase的集成,使得能够在HBase表上使用HQL语句进行查询 插入操作以及进行Join和Union等复杂查询. 将ETL操作的数据存入HBase. HBase作为Hive的数据源. 从Hive中创建HBase表. 使用HQL语句创建一个指向HBase的Hive表. 通过HBase shell可以查看刚刚创建的HBase表的属性.

实时分析系统(HIVE/HBASE/IMPALA)浅析

- - 数据库 - ITeye博客
1. 什么是实时分析(在线查询)系统. 大数据领域里面,实时分析(在线查询)系统是最常见的一种场景,通常用于客户投诉处理,实时数据分析,在线查询等等过. 因为是查询应用,通常有以下特点:. b. 查询条件复杂(多个维度,维度不固定),有简单(带有ID). c. 查询范围大(通常查询表记录在几十亿级别).

hive中与hbase外部表join时内存溢出(hive处理mapjoin的优化器机制)

- - CSDN博客云计算推荐文章
与hbase外部表(wizad_mdm_main)进行join出现问题:. 最后在进行到0.83时,内存溢出失败. 默认情况下,Hive会自动将小表加到DistributeCache中,然后在Map扫描大表的时候,去和DistributeCache中的小表做join,这称为Mapjoin. 这里wizad_mdm_main是基于HBase的外部表,而这张表在HDFS上的源路径为 /hivedata/warehouse/wizad.db/wizad_mdm_main,实际这个目录为空,.

sqoop 使用心得

- - 经验沉淀 知识结晶
本文原创,转载请说明出处:http://ronxin999.blog.163.com/blog/static/42217920201348103424245/. sqoop是干吗的,就不在这里浪费笔墨了,这里主要讲下一个新手接触到sqoop碰到的问题. 一  业务场景 Hive 查询Hql的结果进入MySql,目前本人是通过两步来实现的,.