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