gpt4 book ai didi

hadoop - 如何在 hive create table "TBLPROPERTIES"中引用 HBase 命名空间

转载 作者:可可西里 更新时间:2023-11-01 16:44:23 25 4
gpt4 key购买 nike

我正在尝试使用 HBase 表 ('test_table) 作为源创建 Hive 外部表。HBase 表是在 HBase 命名空间“test_namespace”下创建的。在应用程序的其他部分,我使用以下语法访问表

test_namespace:test_table 或 hbase://test_namespace:test_table

按照同样的方法我创建了一个配置单元脚本

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");

但是当我执行配置单元脚本时,我得到错误表未找到。如果我尝试

hbase://test_namespace:test_table

它抛出无效的表名错误。

我试图通过谷歌搜索如何在配置单元脚本中引用 HBase 命名空间。但运气不好。

在此先感谢您的帮助!

最佳答案

我试过同样的问题,效果很好,

以下是步骤顺序,

一个。在 HBase Shell 中执行操作

  1. 创建命名空间(即 HBase 中的数据库/模式)

    create_namespace 'krishna'

  2. 检查命名空间是否存在

    列表命名空间

  3. 在命名空间内创建表

    创建 'krishna:hivehbase', 'ratings'

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

    list_namespace_tables '克里希纳'

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

    put 'krishna:hivehbase', 'row1', 'ratings:userid', 'user1'放 'krishna:hivehbase', 'row1', 'ratings:bookid', 'book1'放 'krishna:hivehbase', 'row1', 'ratings:rating', '1'

    put 'krishna:hivehbase', 'row2', 'ratings:userid', 'user2'放 'krishna:hivehbase', 'row2', 'ratings:bookid', 'book1'放 'krishna:hivehbase', 'row2', 'ratings:rating', '3'

    put 'krishna:hivehbase', 'row3', 'ratings:userid', 'user2'放 'krishna:hivehbase', 'row3', 'ratings:bookid', 'book2'放 'krishna:hivehbase', 'row3', 'ratings:rating', '3'

    put 'krishna:hivehbase', 'row4', 'ratings:userid', 'user2'放 'krishna:hivehbase', 'row4', 'ratings:bookid', 'book4'放 'krishna:hivehbase', 'row4', 'ratings:rating', '1'

  6. 验证表数据

    扫描'krishna:hivehbase'

B.在 Hive Shell 中执行操作

  1. 创建外部表

    创建外部表 hbasehive_table (key string, userid string,bookid string,rating int) STORED BY 'org.apache.hadoop.hive.hbase.HBaseStorageHandler' WITH SERDEPROPERTIES ("hbase.columns.mapping"= ":key, ratings:userid,ratings:bookid,ratings:rating") TBLPROPERTIES ("hbase.table.name"= "krishna:hivehbase");

  2. 验证外部表

    从 hbasehive_table 中选择 *;

关于hadoop - 如何在 hive create table "TBLPROPERTIES"中引用 HBase 命名空间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37853255/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com