sudo -u hdfs hadoop fs -copyFromLocal input.csv input.csv
copyFromLocal: `input.csv': No such file or directory
有人能告诉我出现这种错误的确切原因吗?我给了input.csv
文件的所有权限,我甚至将所有者更改为hdfs。我是Hadoop和Hbase的新手。
答案 0 :(得分:4)
在这种情况下,您尝试将文件读取为hdfs用户,该用户可能无权查看此文件。要进行测试,请执行以下操作:
sudo -u hdfs cat input.csv
如果您获得权限被拒绝,您需要更改此文件的权限,以便hdfs用户可以读取它(或者如果它已经具有读取权限,则将文件移动到hdfs用户可以读取的目录),或者使用有权访问本地和远程目录/文件的其他用户。
答案 1 :(得分:1)
您需要确保用户hdfs
对路径中input.csv
的所有父目录具有读取权限。
答案 2 :(得分:0)
语法:hadoop dfs -copyFromLocal completelocalfilesystempath hdfspath
示例:让input.csv在localpath / usr / examples中,我需要复制的hdfs路径是/ usr / input,所以命令将是
hadoop dfs -copyFromLocal /usr/examples/input.csv / usr / input /
答案 3 :(得分:0)
要复制文件,您可以像这样运行:
cat input.csv | sudo -u hdfs hadoop fs -put - input.csv