1

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

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

如果不存在,则创建外部表quickstart.cloudera:8020/hadoop/hive/stocks';

{我尝试使用相对路径,但配置单元 CLI 抱怨我正在使用需要绝对路径的相对路径}

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

  2. 试图将数据集加载到表中

将数据输入路径'hdfs://quickstart.cloudera:8020/input/stocks' INTO TABLE stock_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 输入/库存

我看到股票文件

我不知道如何解释这个。你能帮忙吗?

谢谢

4

2 回答 2

1

正如我所怀疑的那样。

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

正确的加载命令是

加载数据输入路径'hdfs://quickstart.cloudera:8020/user/cloudera/input/stocks'进入表stocks_tb;

于 2016-11-29T21:04:38.423 回答
0

您的用户可能没有权限读取/写入 HDFS 中的 /input/stocks。

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

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

运行以下命令检查所有权

hadoop fs -ls /
hadoop fs -ls /input

您可以运行以下命令来设置所有权/权限;

hadoop fs -chown user:group /input
于 2016-11-28T00:44:55.627 回答