Hive 无法加载数据-cloudera quickstart VM 5.8

Hive unable to load data- cloudera quickstart VM 5.8

我使用cloudera quickstart VM 5.8 作为hadoop 环境。我尝试执行以下操作。

  1. 使用 hdfs 绝对 uri
  2. 创建了一个配置单元 table

CREATE EXTERNAL TABLE IF NOT EXISTS stocks_tb ( exch STRING, symbol STRING, ymd STRING, price_open FLOAT, price_high FLOAT, price_low FLOAT, price_close FLOAT, volume INT, price_adj_close FLOAT) ROW FORMAT DELIMITED FIELDS TERMINATED BY ',' LOCATION 'hdfs://quickstart.cloudera:8020/hadoop/hive/stocks';

{我尝试使用相对路径,但 Hive CLI 抱怨我在需要绝对路径的地方使用相对路径}

  1. 已将数据集库存从本地文件系统加载到 HDFS 中的 input/stocks。

  2. 试图将数据集加载到 table

LOAD DATA INPATH 'hdfs://quickstart.cloudera:8020/input/stocks' INTO TABLE stocks_tb;

我收到错误

Invalid path ''hdfs://quickstart.cloudera:8020/input/stocks'': 
No files matching path hdfs://quickstart.cloudera:8020/input/stocks

我不知道为什么会出现此错误。数据存在于 input/stocks/stocks 但出现错误。

你能找出错误/对错误有什么想法吗?

我也是

hadoop fs -ls hdfs://quickstart.cloudera:8020/input/stocks

我看不到任何文件,但当我看到时

hadoop fs -ls input/stocks

我看到股票文件

我不知道该如何解读。你能帮忙吗?

谢谢

您的用户可能没有在 HDFS 中 read/write 到 /input/stocks 的权限。

您运行以哪个用户身份运行该程序?您可以尝试使用 hdfs 超级用户帐户。

/input/stocks 的所有权是什么?

运行下面要检查所有权

hadoop fs -ls /
hadoop fs -ls /input

您可以运行以下设置ownership/permissions;

hadoop fs -chown user:group /input

果然和我猜想的一样

数据实际上在user/cloudera/input/stocks中,我在加载命令中指的是/input/stocks。

正确的加载命令是

LOAD DATA INPATH 'hdfs://quickstart.cloudera:8020/user/cloudera/input/stocks' INTO TABLE stocks_tb;