Impala 创建外部表,由 Hive 存储

Posted

技术标签:

【中文标题】Impala 创建外部表,由 Hive 存储【英文标题】:Impala create external table, stored by Hive 【发布时间】:2014-06-24 08:42:42 【问题描述】:

从昨天开始,我一直在试图弄清楚为什么我的表创建不起作用。由于我无法将我的 Impala 链接到我的 Hbase,我无法在我的 Twitter 流上进行查询:/

对于 SerDe 属性,我是否需要像 Hive 这样的特殊 JAR?

这是我的命令:

创建外部表 HB_IMPALA_TWEETS ( id int, id_str 字符串, 文本字符串, created_at 时间戳, 地理纬度双倍, geo_longitude 双倍, user_screen_name 字符串, user_location 字符串, user_followers_count 字符串, user_profile_image_url 字符串 ) 由“org.apache.hadoop.hive.hbase.HBaseStorageHandler”存储 具有SERDE属性( “hbase.columns.mapping”= ":key,tweet:id_str,tweet:text,tweet:created_at,tweet:geo_latitude,tweet:geo_longitude, user:screen_name,user:location,user:followers_count,user:profile_image_url" ) TBLPROPERTIES("hbase.table.name" = "tweets");

但我收到一个错误:stored by:

查询:create EXTERNAL TABLE HB_IMPALA_TWEETS (id int, id_str string, text string, created_at timestamp, geo_latitude double, geo_longitude double, user_screen_name string, user_location string, user_followers_count string, user_profile_image_url string) 由 'org.apache.hadoop.hive .hbase.HBaseStorageHandler' WITH SERDEPROPERTIES ("hbase.columns.mapping" = ":key,tweet:id_str,tweet:text,tweet:created_at,tweet:geo_latitude,tweet:geo_longitude, user:screen_name,user:location,user: Followers_count,user:profile_image_url") TBLPROPERTIES("hbase.table.name" = "tweets") 错误:AnalysisException:第 1 行中的语法错误: ...image_url string ) 存储 BY 'org.apache.hadoop.hive.h...

遇到:BY

预期:AS

原因:异常:语法错误

有关信息,我关注了此页面: https://github.com/AronMacDonald/Twitter_Hbase_Impala/blob/master/README.md

谢谢你帮助我:)

【问题讨论】:

【参考方案1】:

嗯,Impala 似乎仍然不支持 SerDe(序列化/反序列化)。

“您使用 Hive shell 在 Impala 端创建表, 因为 Impala CREATE TABLE 语句目前不支持 这些表所需的自定义 SerDes 和其他一些语法:您 使用 STORED BY 将其指定为 HBase 表 Hive 上的“org.apache.hadoop.hive.hbase.HBaseStorageHandler”子句 CREATE TABLE 语句。”

因此,只需在 hive shell 或 hue hive 上运行命令,然后在 impala 中键入“invalidate metadata”,然后您就可以看到带有“show tables”的表。

所以这部分的问题似乎解决了。

【讨论】:

以上是关于Impala 创建外部表,由 Hive 存储的主要内容,如果未能解决你的问题,请参考以下文章

hive外部表分区

hive 内部表和外部表的区别

在 hive 外部表中存储嵌套的 json,其字段由 \ 分隔

如何使用Sentry管理Hive外部表(补充)

0035-如何使用Sentry管理Hive外部表(补充)

hive 学习系列三(表格的创建create-table)