hive0.11.0/hadoop1.2.1/hbase0.94.15整合

工作在假设已经正确配置安装了Hadoop和Hbase的前提下进行。

一、安装Hive

从官网下载Hive-0.11.0.tar.gz

1,解压

2,设置/etc/profile:

exportHIVE_HOME=/home/hadoopuser/hive-0.11.0

exportHIVE_CONF_DIR=/home/hadoopuser/hive-0.11.0/conf

export PATH=$PATH:$HIVE_HOME/bin

3,进入HIVE_HOME运行bin/hive 出现hive shell 命令行说明安装成功。


二、安装MySql

1,从官网下载并安装MySql,用命令mysqladmin password [New Password] -u root -p [Old Password] 修改root用户密码,[Old Password]在Linux的Root用户HOME下的.mysql_secret文件里

2, 为hive建立相应的mysql账号:

进入mysql: mysql –u root –p

mysql> create user 'hive'@’localhost’identified by '111111';

Query OK, 0 rows affected (0.00 sec)

mysql> GRANT ALL PRIVILEGES ON *.* TO 'hive'@'localhost'IDENTIFIED BY '111111' WITH GRANT OPTION;

Query OK, 0 rows affected (0.00 sec)

[url=]mysql>[/url] flush privileges;

Query OK, 0rows affected (0.00 sec)

mysql> exit

如果要为远程访问MySql的电脑设置权限,就用:

GRANT ALL PRIVILEGES ON *.* TO 'root'@'10.200.%' IDENTIFIED BY '111111' WITH GRANT OPTION;

这里是为10.200的ip段设置了访问权限

3,     从客户端用hive账号登陆mysql

mysql –u hive -p

4,    建立hive的元数据库

mysql>create database hive;

5,    mysql中保存了hive的元数据信息,包括表的属性、桶信息和分区信息等,以hive帐号登陆hive查看元数据信息


三、配置Hive

在Hive安装目录的conf目录下,将hive-default.xml.template复制一份命名为:hive-site.xml

 设置以下内容,配置上mysql数据连接、驱动、用户名和密码

<property>

  <name>hive.metastore.local</name>

  <value>false</value>

</property>

<property>

  <name>javax.jdo.option.ConnectionURL</name>

  <value>jdbc:mysql://localhost:3306/hive?createDatabaseIfNotExist=true</value>

</property>

<property>

  <name>javax.jdo.option.ConnectionDriverName</name>

  <value>com.mysql.jdbc.Driver</value>

</property>

<property>

  <name>javax.jdo.option.ConnectionUserName</name>

  <value>hive</value>

</property>

<property>

  <name>javax.jdo.option.ConnectionPassword</name>

  <value>111111</value>

</property>

1,     把mysql的驱动包mysql-connector-java-5.1.15拷贝到Hive安装路径下的lib目录,改驱动包需要在官网下载。

2,    进入bin/hive,没报错说明安装成功


四、hive与hbase的整合(用hive读取hbase的数据)

Hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供完整的sql查询功能,可以将sql语句转换为MapReduce任务进行运行。 其优点是学习成本低,可以通过类SQL语句快速实现简单的MapReduce统计,不必开发专门的MapReduce应用,十分适合数据仓库的统计分析。 Hive与HBase的整合功能的实现是利用两者本身对外的API接口互相进行通信,相互通信主要是依靠hive_hbase-handler.jar工具类, 大致意思如图所示:

a)         将文件hbase-0.94.15.jar 与zookeeper-3.4.5.jar拷贝到/home/hadoopuser/hive- 0.11.0/lib文件夹下面

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

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

<property>

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

<value>/home/hadoopuser/hive-0.11.0/logs</value>

</property>

<property>

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

<value>file:///home/hadoopuser/hive-0.11.0/lib/hive-hbase-handler-0.11.0.jar,file:///home/hadoopuser/hive-0.11.0/lib/hbase-0.94.15.jar,file:///usr/hadoop/hive-0.11.0/lib/zookeeper-3.4.5.jar</value>

</property>

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

c)         拷贝hbase-0.94.15.jar到所有hadoop节点(包括master)的usr/hadoop/hadoop-1.2.1/lib下。

d)        拷贝home/hadoopuser/hbase-0.94.15/conf下的hbase-site.xml文件到所有hadoop节点(包括master)的usr/hadoop/hadoop-1.2.1/conf下。

注意,如果3,4两步跳过的话,运行hive时很可能出现如下错误:org.apache.hadoop.hbase.ZooKeeperConnectionException:HBase is able to connect to 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.

e)         启动hive
单节点启动
bin/hive -hiveconf hbase.master=master:60000

f)         集群启动
bin/hive   

注意:如果hive-site.xml文件中没有配置hive.aux.jars.path,则可以按照如下方式启动。hive --auxpath /home/hadoopuser/hive-0.11.0/lib/hive-hbase-handler-0.11.0.jar,/home/hadoopuser/hive/hive-0.11.0/lib/hbase-0.94.15.jar,/home/hadoopuser/hive/hive-0.11.0/lib/zookeeper-3.4.5.jar-hiveconf hbase.master=localhost:60000

g)       创建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");

h)       新建hive的数据表

create table pokes(foo int,bar string)row format delimited fields terminated by ',';

i)       批量导入数据

load data local inpath '/home/hadoopuser/1.txt' overwrite into table pokes;

1.txt文件的内容为
1,hello
2,pear
3,world

j)      使用sql导入hbase_table_1

insert overwrite table hbase_table_1 select * from pokes;

k)       查看数据

hive>select * from hbase_table_1;
OK
1 hello
2 pear
3 world


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

_大漠孤烟_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值