hbase - 如何将 Hive 表与 HBase 表映射?

标签 hbase hiveql

我创建了一个 HBase 表,如下所示:

create 'nancy', 'cf'


并在 Hive 中创建了一个表,如下所示:

create external table nancy( id int, name string)

stored by 'org.apache.hadoop.hive.hbase.HBaseStorageHandler'

WITH SERDEPROPERTIES ("hbase.columns.mapping" = ":key, cf:name")

TBLPROPERTIES("hbase.table.name"="nancy");


我在映射它写吗? “hbase.columns.mapping”中的Key是什么意思?
谁能解释一下这个映射?

最佳答案

您是否面临任何特定问题?查询对我来说很好。

key 表示您正在使用此字段作为表键。记住 hive 表中的每个字段都可以映射到以下字段之一:

  • 表键(使用 :key 作为选择器)
  • 列族 (cf:)(Hive 中的 MAP 字段
  • 栏目

  • 回复您的意见:
    hive> CREATE EXTERNAL TABLE hbase_table_2(key int, name string)
    
        > STORED BY 'org.apache.hadoop.hive.hbase.HBaseStorageHandler'
        > WITH SERDEPROPERTIES ("hbase.columns.mapping" = ":key,cf:name")
        > TBLPROPERTIES("hbase.table.name" = "nancy");
    OK
    Time taken: 5.106 seconds
    
    hive> select * from hbase_table_2;
    OK
    Time taken: 0.077 seconds
    
    hive> INSERT OVERWRITE TABLE hbase_table_2 SELECT * FROM demo WHERE id=1;
    Total MapReduce jobs = 1
    Launching Job 1 out of 1
    Number of reduce tasks is set to 0 since there's no reduce operator
    Starting Job = job_201308011237_0003, Tracking URL = http://localhost:50030/jobdetails.jsp?jobid=job_201308011237_0003
    Kill Command = /Users/miqbal1/hadoop-eco/hadoop-1.1.2/libexec/../bin/hadoop job  -kill job_201308011237_0003
    Hadoop job information for Stage-0: number of mappers: 1; number of reducers: 0
    2013-08-01 16:29:21,832 Stage-0 map = 0%,  reduce = 0%
    2013-08-01 16:29:23,843 Stage-0 map = 100%,  reduce = 0%
    2013-08-01 16:29:24,849 Stage-0 map = 100%,  reduce = 100%
    Ended Job = job_201308011237_0003
    1 Rows loaded to hbase_table_2
    MapReduce Jobs Launched: 
    Job 0: Map: 1   HDFS Read: 256 HDFS Write: 0 SUCCESS
    Total MapReduce CPU Time Spent: 0 msec
    OK
    Time taken: 8.392 seconds
    hive> 
    

    这是我的 HBase 表:
    hbase(main):017:0> scan 'nancy'
    ROW                                      COLUMN+CELL                                                                                                          
     1                                       column=cf:name, timestamp=1375354762803, value=tariq                                                                 
    1 row(s) in 0.0300 seconds
    

    关于hbase - 如何将 Hive 表与 HBase 表映射?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17986435/

    相关文章:

    hadoop - 我应该在什么时候以及在哪个目录中设置 hbase-env.sh 中的 HBASE_CLASSPATH 属性?

    hadoop - 如何使用 Hbase 1.2.6 编译 Nutch 2.3.1

    hadoop - 从Hive查询HBase表

    hadoop - 通过命令行运行 HQL 查询时出错

    runtime - Hive 查找查询的预期运行时间

    scala - 将 Spark 数据帧写入现有的 Parquet Hive 表中

    apache - Hadoop、HBase 和 Apache Nutch 兼容版本

    security - 如何保护 Hadoop 中的特定数据

    hadoop - 在Hive中使用FROM_UNIXTIME(UNIX_TIMESTAMP()

    hadoop - Hive 的隐式连接总是内部连接吗?