带有位置的 Hive 外部表
Posted
技术标签:
【中文标题】带有位置的 Hive 外部表【英文标题】:Hive external table with location 【发布时间】:2018-02-21 18:56:50 【问题描述】:引用此网址:Hive - External table creation
使用位置关键字和值创建的 Hive 外部表指向我的本地磁盘。
create external table exemp(id int,name string,age int)
row format delimited
fields terminated by ','
lines terminated by '\n'
stored as textfile
location 'file:///home/user/data';
但是我收到了这个错误。
失败:执行错误,从 org.apache.hadoop.hive.ql.exec.DDLTask 返回代码 1。 MetaException(message:file:/home/user/data 不是目录或无法创建)
但是 /home/user/data 目录存在于我的本地并且有 emp 详细信息。 任何想法,为什么它会导致问题
【问题讨论】:
file:///home/user/data
是 HDFS 位置吗?
不。。这是我的本地目录。
位置应该是 HDFS 位置。
Vamshi 请参考这个网址:***.com/questions/48893078/…。我们从外部文件系统连接的东西
您运行 hive 的用户是否对本地目录具有写入权限?
【参考方案1】:
您在创建 hive 表时使用的位置似乎是本地文件位置。我们需要有 HDFS 路径(或其他兼容的数据源)才能创建配置单元表。如果您可以将数据文件 scp 到 HDFS,然后尝试使用 HDFS 位置,这将起作用。
【讨论】:
库马尔,。所以 Location 值总是应该指向 HDFS 目录。不是我们的本地文件系统。它是否正确?还阅读了一些文章提到我们可以提供我们的本地文件系统或amzon s3 ..有点困惑。你能提供更多关于这方面的信息吗 嘿..你可以通过这个链接。 可以发一下链接吗? 嘿,对不起...错误的链接没有早点发布。 cwiki.apache.org/confluence/display/Hive/… 另外,如果你想使用本地文件位置来创建表,你可以使用 LOAD DATA INPATH '/user/data_path' INTO TABLE -- 这个语法。有关这方面的更多详细信息,您可以参考:cwiki.apache.org/confluence/display/Hive/…以上是关于带有位置的 Hive 外部表的主要内容,如果未能解决你的问题,请参考以下文章