【问题标题】:Questions regarding Hive to HBase关于 Hive 到 HBase 的问题
【发布时间】:2018-07-27 07:09:55
【问题描述】:

我看到一个外部 Hive 表存储了 HBase 的数据:

CREATE EXTERNAL TABLE  IF NOT EXISTS ods.demo_table(
    rowkey String COMMENT 'rowkey of hbase',
    ....
    )
STORED BY 'org.apache.hadoop.hive.hbase.HBaseStorageHandler' WITH SERDEPROPERTIES ("hbase.columns.mapping" = "info:...") TBLPROPERTIES("hbase.table.name" = "...", "hbase.mapred.output.outputtable" = "...")
;

我有几个问题:

  1. 此表的 HDFS 路径是什么?

此 Hive 外部 create 语句不包含 location 并且 HDFS 路径 /user/hive/warehouse/ods.db/demo_table 不存在。那么在哪里可以找到这个表的数据文件呢?

另外,如果存在HBaseStorageHandler的默认路径,在哪里可以找到并更改它?配置文件?

  1. HBase 如何知道该表链接到 Hive(其 HBase 创建语句不包含此类信息)以及位置在哪里?

感谢任何帮助。

【问题讨论】:

    标签: hadoop hive hbase


    【解决方案1】:

    Hive-HBase 集成我们在 no sql table(hbase) 之上创建一个 sql wrapper table(hive),方法是定义架构并映射 table/cf 而使用 HBaseStorageHandler 创建 Hive 表。

    Hive 表只是 hbase 表的包装,所有实际数据仍存储在 HBase 表中。


    1.这张表的HDFS路径是什么?


    你需要去 hbase-site.xml 找到 hbase 表的位置。

     <property>
          <name>hbase.rootdir</name>
          <value>hdfs://nn:8020/apps/hbase</value>
     </property>
    

    HBase 表的默认位置是 /apps/hbase,如果您的 hbase 表是在默认命名空间中创建的,那么

    bash$ hadoop fs -ls /apps/hbase/data/data/default/<table_name>/
    

    (或)

    如果 HBase 表是在特定的命名空间中创建的,那么

    bash$ hadoop fs -ls /apps/hbase/data/data/<name_space_name>/<table_name>/
    

    列出目录中的文件后,您就可以看到目录中的 Hfiles,其中将包含所有 hbase 表数据。

    1. 如果我们使用 create external table 语句,则该表由 在我们创建一个 HBase 和 HBase 表之前需要存在 蜂巢表。

    2. 如果我们使用 create table 语句,则该表由 Hive 管理 并且 hive 在 HBase 中创建表并且表应该在之前存在 HBase。

    存储处理程序构建为独立模块 hive-hbase-handler-x.y.z.jar,您将在 hive-client lib 目录中找到此 jar。

    2.> HBase 怎么知道这个表链接到 Hive(它的 HBase 创建句子不包含此类信息)并且在哪里 地点?

    由于 hive 表使用 HbaseStoragehandler 指向 HBase 表并使用模式读取 HBase 数据。 在创建 hive 表时,我们正在定义 HBase 中指向哪个表/cf。

    有关 HBase-Hive 集成的更多详细信息,请参阅 this 链接。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-02-15
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多