Building

针对 hbase 开发工作的 metastore 贡献者指南。雨伞 JIRA-HIVE-9452

Note

这项工作已终止,并且在 3.0.0 版(HIVE-17234)中删除了代码。

您将需要下载 Tephra 的源代码并从 developer 分支进行构建。您需要 Tephra 0.5.1-SNAPSHOT。您可以从Cask's github获得 Tephra。切换到开发分支,然后执行“ mvn install”将构建您需要的版本。

用于针对 hbase metastore 运行配置单元的设置-

从 HBase metastore 分支(hbase-metastore)构建代码后,以下是如何使其针对 HBase 运行的方法:

  • 安装 HBase,最好安装 HBase 1.1.1,因为这就是用于测试的内容。

  • 将以下罐子复制到$ HBASE_HOME/lib 中

  • hive-common-.*.jar

    • hive-metastore-.*.jar

    • hive-serde-.*.jar

  • 设置 HBase,http://hbase.apache.org/book.html#quickstart我以独立模式运行它,因此您必须在 hbase-site.xml 中设置几个值才能起作用。

  • 如果您不在路径上已经存在 hadoop 的集群中,请设置 HADOOP_HOME。

  • 启动 HBase:$ HBASE_HOME/bin/start-hbase.sh

  • 进行设置,以便 Hive 可以拾取 HBase jar 和 conf 文件

  • export HIVE_AUX_JARS_PATH=$HBASE_HOME/lib/

    • export AUX_CLASSPATH=$HBASE_HOME/conf
  • 在 HBase 中创建 metastore 表:hive --service hbaseschematool --install

  • 在 hive-site.xml 中将 Hive 配置为使用 HBase 作为其元存储库:

<property>
    <name>hive.metastore.rawstore.impl</name>
    <value>org.apache.hadoop.hive.metastore.hbase.HBaseStore</value>
  </property>
  <property>
    <name>hive.metastore.fastpath</name>
    <value>true</value>
  </property>

现在,像往常一样启动 Hive,一切都应该正常工作。

Notes

  • 目前(截至 2015 年 4 月 8 日),我们尚未使用 metastore 服务测试 HBase metastore。我们不知道它是否有效。我们已经使用命令行 Client 端和 HiveServer2 对其进行了测试。

  • 并非所有的 Hive 操作都已经过测试。插入,选择,创建表,删除表,创建数据库,添加分区,删除分区已经过测试。其他功能可能不起作用。

  • 一旦我们切换到 HBase 1.1.1,Tephra 将不再起作用。您需要使用 VanillaHBaseConnection(默认设置),直到我们使 Tephra 再次工作。

将元数据从 rdbms 导入到 hbase

设置 hive-site.xml,使其具有 rdbms 必需的 jdo 属性,并设置 Hive 以将 hbase 用于元数据存储,如上文所述

以下命令会将元数据从 rdbms 导入到 hbase:

Hive--service hbaseimport

Design Docs

Overall Approach

RawStore 分区过滤条件的 Hbase 执行计划