Hive 和 HBase 的快速入门 已翻译 100%

oschina 投递于 2013/05/14 22:57 (共 3 段, 翻译完成于 05-15)
阅读 2478
收藏 11
0
加载中

即使是有一些正式的文档,构建以HBase为后端的Hive仍然是多少需要一些技巧的。希望这份手册能让你入门快一些。本文假定你已经安装好HBase,如果没有,参考我写的另一篇文章 HBase 快速入门

注: 这些方法是用于开发环境的,例如,其中并没有用到HDFS。关于产品部署的完整手册,参考 CDH4 指南

Linux

sudo apt-get install hive

# 创建Hive的默认数据存储目录
sudo mkdir -p /user/hive/warehouse
sudo chown -R myusername:myusername /user/hive/warehouse/

# copy HBase JARs into the Hive lib
sudo cp /usr/share/hbase/hbase-0.92.1.jar /usr/lib/hive/lib
sudo cp /usr/share/hadoop-zookeeper/zookeeper-3.4.3.jar /usr/lib/hive/lib

OSX

brew install hive
zicode
zicode
翻译于 2013/05/15 15:39
2

连接到HBase

现在你可以使用hive命令启动hive,在后端的HBase上创建一张表。例子中的表名为test,有一个叫values的整数的列簇(Cloumn Family)。注意对表的删除/创建只会影响Hive的元数据;并没有真正在HBase生效。

DROP TABLE IF EXISTS test;

CREATE EXTERNAL TABLE
    test(key string, values map<string, int>)
STORED BY
    'org.apache.hadoop.hive.hbase.HBaseStorageHandler'
WITH SERDEPROPERTIES (
    "hbase.columns.mapping" = ":key,values:"
    )
TBLPROPERTIES (
    "hbase.table.name" = "test"
    );

SELECT * FROM test;

>c4ca4-0000001-79879483-000000000124-000000000000000000000000000025607621 {'comments':0, 'likes':0}
>c4ca4-0000001-79879483-000000000124-000000000000000000000000000025607622 {'comments':0, 'likes':0}
zicode
zicode
翻译于 2013/05/15 15:54
1

简单的Map Reduce例子

假设表中有上面给出的裸数据,下面是一个使用GROUP/SUM的map reduce例子,用来汇总values列簇的不同列。这个例子创建了一个view,用于划分并处理HBase的rowkey。你可以用INSERT OVERWRITE语句将结果写回到Hbase。

CREATE VIEW
    test_view AS
SELECT
    substr(key, 0, 36) as org_date_asset_prefix,
    split(key, '-')[2] as inverse_date_str,
    stats['comments'] as comments,
    stats['likes'] as likes
FROM
    test;

SELECT
    org_date_asset_prefix,
    map(
      'comments', SUM(comments),
      'likes', SUM(likes)
    ) as stats
FROM
    test_view
GROUP BY
    org_date_asset_prefix;

Thrift REST API

如果你想用thrift连接Hive,你可以用hive --service hiveserver启动thrift服务。Hiver 是一个不错的Python API的轻量级包装。

import hiver
client = hiver.connect(host, port)
client.execute('SHOW TABLES')
rows = client.fetchAll()
zicode
zicode
翻译于 2013/05/15 16:09
1
本文中的所有译文仅用于学习和交流目的,转载请务必注明文章译者、出处、和本文链接。
我们的翻译工作遵照 CC 协议,如果我们的工作有侵犯到您的权益,请及时联系我们。
加载中

评论(1)

qwfys
qwfys
~~
返回顶部
顶部