hive无法加载数据-cloudera quickstart vm 5.8

iyfamqjs  于 2021-05-29  发布在  Hadoop
关注(0)|答案(2)|浏览(429)

我使用cloudera quickstart VM5.8作为hadoop环境。我试着做到以下几点。
使用hdfs绝对uri创建了一个配置单元表
如果不存在,则创建外部表\u tb(exch string,symbol string,ymd string,price\u open float,price\u high float,price\u low float,price\u close float,volume int,price\u adj\u close float)行格式分隔字段,以“,”location“结尾hdfs://quickstart.cloudera:8020/hadoop/hive/stocks';
{我尝试使用相对路径,但hive cli抱怨我使用的是相对路径,其中需要绝对路径}
将数据集存储从本地文件系统加载到hdfs中的输入/存储。
试图将数据集加载到表中
'在路径中加载数据'hdfs://quickstart.cloudera:8020/input/stocks'到表stocks\u 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/输入/库存
我看不到任何文件,但当我看到时
hadoop fs-ls输入/存储
我看到股票档案了
我不知道怎么解释这个。你能帮忙吗?
谢谢

vkc1a9a2

vkc1a9a21#

就像我怀疑的那样。
数据实际上在user/cloudera/input/stocks中,我指的是load命令中的/input/stocks。
正确的加载命令是
'在路径中加载数据'hdfs://quickstart.cloudera:8020/user/cloudera/input/stocks'到表stocks\u tb;

ecfsfe2w

ecfsfe2w2#

您的用户可能没有读/写hdfs中的/input/stocks的权限。
你以哪个用户的身份运行程序?您可以尝试使用hdfs超级用户帐户。
什么是所有权/投入/股票?
运行以下命令检查所有权

hadoop fs -ls /
hadoop fs -ls /input

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

hadoop fs -chown user:group /input

相关问题