如何在配置单元中创建表"TBLPROPERTIES"中引用 HBase 命名空间



我正在尝试以HBase表('test_table)为源创建Hive外部表。HBase表是在HBase名称空间" Test_namespace"下创建的。在应用程序的其他部分中,我使用以下syntx

访问表

test_namespace:test_table或hbase://test_namespace:test_table

遵循相同的方法,我创建了一个Hive脚本

CREATE EXTERNAL TABLE IF NOT EXISTS TEST_INDIVIDUAL(
    key    string,
    test   string,
    photo  string,
    location string)
STORED BY 'org.apache.hadoop.hive.hbase.HBaseStorageHandler'
WITH SERDEPROPERTIES("hbase.columns.mapping"="key,default:test,default:photo,default:location")
TBLPROPERTIES("hbase.table.name" = "test_namespace:test_table");

但是当我执行Hive脚本时,我找不到错误表。如果我尝试

hbase://test_namespace:test_table

它抛出无效的表名称错误。

我尝试使用Google了解如何在Hive脚本中引用HBase名称空间。但是没有运气。

事先感谢您的帮助!

我尝试了相同的问题,并且效果很好,

以下是步骤序列

a。在HBase Shell

中执行操作
  1. 创建名称空间(即HBase中的数据库/模式)

    create_namespace'krishna'

  2. 检查名称空间的存在

    list_namespace

  3. 在命名空间内创建表格

    创建'krishna:hivehbase','评级'

  4. 验证命名空间内的表创建

    list_namespace_tables'krishna'

  5. 添加行和列Family(填充表)

    将'krishna:hivehbase','row1',"评分:userId','user1'将"奎师那:hivehbase"," row1","评分:bookid"," book1"将"奎师那:hivehbase"," row1","评分:评级"," 1"

    将'krishna:hivehbase','row2',"评分:userId','user2'将"克里希纳:hivehbase"," row2","评分:bookid','book1'将"奎师那:hivehbase"," row2","评分:等级"," 3"

    将'krishna:hivehbase','row3',"评分:userid','user2'将"奎师那:hivehbase"," row3","评分:bookid','book2'将"奎师那:hivehbase"," row3","评分:评级"," 3"

    将'krishna:hivehbase','row4',"评分:userId"," user2"将"奎师那:hivehbase"," row4","评分:bookid','book4'将"奎师那:hivehbase"," row4","评分:评级",'1'

  6. 验证表数据

    扫描'奎师那:hivehbase'

b。在蜂巢壳中执行操作

  1. 创建外部表

    创建外部表Hbasehive_table(键字符串,UserId字符串,bookId字符串,评分int)由'org.apache.hadoop.hadoop.hive.hbase.hbase.hbase.hbasestoragehandler'使用serdeproperties(" hbase.column.columns.mapping)评分:USERID,评分:BookId,评分:评分")TBlProperties(" Hbase.table.name" =" Krishna:hivehbase");

  2. 验证外部表

    SELECT *来自Hbasehive_table;

最新更新