• Hive 和 HBase 的快速入门


    虽然有一些正式的文档, 但是我发现在后期用HBase去设置一个Hive还是比较繁琐。这些有帮助性的文档能够使我们快速入门。该文章假设你已经搭建了HBase。 如果没有的话,去看我的HBase quickstart这篇文章。

    注: 这些是针对于开发的用法。 他们没有使用 HDFS, 举例说明。 作为在产品开发中的一份充分而全面的文档,可以去关注 CDH4 方面比较卓越的地方。

    Linux

    sudo apt-get install hive
    
    # create directory that Hive stores data in by default
    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

    连接到 HBase

    现在, 你可以由HBase去创建一个表并通过hive命令行去启动hive。 在下面的例子中, 我的HBase表将会被调用来用于测试,并且将会有一个integer类型的值去被该值调用。 记录表的删除/创建操作仅仅是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}
    
    

    简单的Map Reduce实例

    在上文中表里给予了你一个行数据, 下面是关于 GROUP/SUM 的 map reduce实例, 在这种类型的列中,你能对HBase的各种列值进行求和。该实例创建了一个视图用于去处理HBase的一个行键值的引爆点。你能够在最后用 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的thrift服务 -- service hiveserver. Hiver 是一个非常小巧而不错的 Python API 包装器。

    import hiver
    client = hiver.connect(host, port)
    client.execute('SHOW TABLES')
    rows = client.fetchAll()
    


    该文章英文原文出自http://chase-seibert.github.io/blog/2013/05/10/hive-hbase-quickstart.html

  • 相关阅读:
    [LeetCode] Output Contest Matches 输出比赛匹配对
    [LeetCode] 527. Word Abbreviation 单词缩写
    [LeetCode] Permutation in String 字符串中的全排列
    [LeetCode] 560. Subarray Sum Equals K 子数组和为K
    [LeetCode] Reshape the Matrix 重塑矩阵
    [LeetCode] 536. Construct Binary Tree from String 从字符串创建二叉树
    [LeetCode] IPO 上市
    [LeetCode] Binary Tree Tilt 二叉树的坡度
    [LeetCode] Array Partition I 数组分割之一
    [LeetCode] Zuma Game 祖玛游戏
  • 原文地址:https://www.cnblogs.com/javawebsoa/p/3085753.html
Copyright © 2020-2023  润新知