我正在使用cloudera quickstart VM 5.8作为hadoop环境 . 我试着做以下事情 .
- 使用hdfs absolute uri创建了一个配置单元表
创建外部表如果不存在stocks_tb(exch STRING,符号STRING,ymd STRING,price_open FLOAT,price_high FLOAT,price_low FLOAT,price_close FLOAT,交易量INT,price_adj_close FLOAT)行格式删除字段终止于','LOCATION'hdfs:/ /quickstart.cloudera:8020/hadoop/hive/stocks';
{我尝试使用相对路径,但是hive CLI抱怨我使用相对路径,其中需要绝对路径}
-
将数据集库从本地文件系统加载到HDFS中的输入/库存 .
-
试图将数据集加载到表中
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
我不知道为什么我会收到这个错误 . 数据存在于输入/股票/股票中,但发生错误 .
你能发现错误/关于错误的任何想法吗?
当我这样做的时候
hadoop fs -ls hdfs://quickstart.cloudera:8020 /输入/股票
我无法看到任何文件,但是当我这样做时
hadoop fs -ls输入/股票
我看到了股票档案
我不知道如何解释这个 . 你能帮忙吗?
谢谢
2 回答
您的用户可能无权在HDFS中读/写/输入/库存 .
您正在运行该程序的用户是哪个?您可以尝试使用hdfs超级用户帐户 .
什么是/输入/股票的所有权?
运行以下命令以检查所有权
您可以运行以下命令来设置所有权/权限;
正如我所怀疑的那样 .
数据实际上在user / cloudera / input / stocks中,我在load命令中指的是/ input / stocks .
正确的加载命令是