【问题标题】:Can't create a Hive Table from an avro file无法从 avro 文件创建 Hive 表
【发布时间】:2014-10-08 18:29:09
【问题描述】:

我可以使用以下语法在 avro 文件顶部创建一个表,而不会出现任何错误。这是一张空桌子。

CREATE EXTERNAL TABLE  tableName 
PARTITIONED BY (ingestiondatetime BIGINT, recordtype STRING)
ROW FORMAT SERDE
'org.apache.hadoop.hive.serd2.avro.AvroSerDe'
STORED AS INPUTFORMAT
'org.apache.hadoop.hive.ql.io.avro.AvroContainerInputFormat'
OUTPUTFORMAT 'org.apache.hadoop.hive.ql.io.avro.AvroContainerOutputFormat'
TABLEPROPERTIES ('avro.schema.url'='hdfs:///user/file.avsc');

当我添加 LOCATION 行以指向实际的 avro 文件位置时,出现权限错误

CREATE EXTERNAL TABLE  tableName 
PARTITIONED BY (ingestiondatetime BIGINT, recordtype STRING)
ROW FORMAT SERDE
'org.apache.hadoop.hive.serd2.avro.AvroSerDe'
STORED AS INPUTFORMAT
'org.apache.hadoop.hive.ql.io.avro.AvroContainerInputFormat'
OUTPUTFORMAT 'org.apache.hadoop.hive.ql.io.avro.AvroContainerOutputFormat'
LOCATION '/local/avro_dir/'
TABLEPROPERTIES ('avro.schema.url'='hdfs:///user/file.avsc');

错误是

> FAILED:  Error in metadata.....  
> org.apache.hadoop.security.AccessControlException: Permission denied: 
> user=hive, access=WRITE, inode="/" hdfs:supergroup:drwxr-xr-x

我和我一样运行 hive。我对 hdfs:/ 的权限是完全开放的 (777)。 hive 在哪里尝试写入它认为它没有权限的内容?

【问题讨论】:

  • 你能显示完整的查询并添加位置吗?

标签: hive create-table avro


【解决方案1】:

它正在尝试以 hive 用户的身份执行此操作。

这是错误及其试图告诉你的内容

权限被拒绝:user=hive, access=WRITE, inode="/" hdfs:supergroup:drwxr-xr-x

异常告诉你: 它是谁做的:user=hive 用户想要做什么:access=WRITE 正在访问什么可怕的东西:inode="/" 位置的权限: hdfs:supergroup:drwxr-xr-x

运行 hadoop fs -ls -la /

您描述的权限 (777) 未反映在错误消息中。错误消息中的权限表明每个人都有读取和执行权限,但没有写入权限。

正如 Amar 所说,查看完整的命令会很有帮助!

如果是我,那是因为我的位置有错字,而 hive 正在尝试创建目录。

如果你跑 hadoop fs -ls [your LOCATION property ] ..该位置存在吗?

祝你好运!

布莱恩

【讨论】:

    【解决方案2】:

    TABLEPROPERTIES 应该是 TBLPROPERTIES

    对于那些使用 API 的人来说,“;”是不允许的,至少在我的 Spark 和 Hive 版本中是不允许的,但你知道这种变化有多快。

    【讨论】:

      【解决方案3】:

      您当前的用户是 hive,没有 inode="/" 的写入权限

      在从命令提示符启动 hive 之前 尝试通过编写将您当前的用户更改为 hdfs

      导出 HADOOP_USER_NAME=hdfs

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2017-10-28
        • 2016-03-16
        • 1970-01-01
        • 2016-12-26
        • 1970-01-01
        • 2020-02-21
        相关资源
        最近更新 更多