cloudera快速启动用终端加载csv表hdfs

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

我是新来的,因为我只是在我的第二学期,我只是需要帮助理解一个命令,我需要做。我正在尝试使用终端将本地csv文件加载到cloudera上的hdfs。我要用这些数据和Pig一起完成任务。我什么都试过了,但它仍然让我 'no such file or directory' . 我已经关闭了安全模式,检查了目录,甚至确保文件可以读取。以下是我尝试加载数据的命令:

hadoop fs -copyFromLocal 2008.csv
hdfs dfs -copyFromLocal 2008.csv
hdfs dfs -copyFromLocal 2008.csv /user/root
hdfs dfs -copyFromLocal 2008.csv /home/cloudera/Desktop

什么都不管用,一直给我
'2008.csv'没有这样的文件或目录
. 我能做些什么来解决这个问题?非常感谢你。

busg9geu

busg9geu1#

我必须用这些数据和Pig一起工作
你可以不用hdfs跑Pig。 pig -x local 我什么都试过了,但它仍然给我'没有这样的文件或目录'
好吧,这个错误不是来自hdfs,它似乎是来自您的本地shell。 ls 显示当前目录中可用于的文件 -copyFromLocal 或者 -put 没有绝对路径的工作。
要完全确定要复制的内容以及复制到的位置,请在两个参数中使用完整路径。如果使用这两个标志,则第二条路径始终是hdfs。
试试这个

hadoop fs -mkdir -p  /user/cloudera # just in case 
hadoop fs -copyFromLocal ./2008.csv /user/cloudera/

甚至

hadoop fs -copyFromLocal /home/cloudera/Desktop/2008.csv /user/cloudera/

我觉得你有什么问题,是吗 /user/root 是不正确的,除非您以 root 用户,两者都不是 /home/cloudera/Desktop 因为hdfs没有 Desktop .
没有第二条路径的默认行为是

hadoop fs -copyFromLocal <file> /user/$(whoami)/

(如果没有后面的斜杠,或者一个预先存在的目录,它将复制 <file> 字面上是一个文件,这在某些情况下可能是意外的,例如,当试图将一个文件复制到用户目录中时,但该目录还不存在)

ubby3x7f

ubby3x7f2#

我相信您已经检查并确认2008.csv存在。这就是为什么我认为这个文件的权限不允许你复制它。
尝试: sudo -u hdfs cat 2008.csv 如果您的权限被拒绝错误,这是您的问题。安排文件的权限或创建新的权限(如果是)。如果再次出现“无文件”错误,请尝试使用文件的整个路径,如:

hdfs dfs -copyFromLocal /user/home/csvFiles/2008.csv /user/home/cloudera/Desktop

相关问题