hadoop fs-put命令

e1xvtsh3  于 2021-06-03  发布在  Hadoop
关注(0)|答案(4)|浏览(654)

我在centos上使用cloudera cdh存储库构建了一个单节点hadoop环境。当我想将本地文件复制到hdfs时,我使用了以下命令:

sudo -u hdfs hadoop fs -put /root/MyHadoop/file1.txt /

但是,结果让我很沮丧:

put: '/root/MyHadoop/file1.txt': No such file or directory

我肯定这个文件确实存在。
请帮帮我,谢谢!

wz3gfoph

wz3gfoph1#

下面是一个用python脚本将df直接写入hdfs文件系统的命令:

df.write.save('path', format='parquet', mode='append')

模式可以附加|覆盖
如果您想使用shell将文件放入hdfs,请使用以下命令:hdfs dfs-put/local\u file\u path\u location/hadoop\u file\u path\u location
你可以去看看localhost:50070 ui 供核实

3bygqnnd

3bygqnnd2#

尝试使用以下命令在hdfs中创建目录: $ hadoop fs -mkdir your_dir 然后把它放进去 $ hadoop fs -put /root/MyHadoop/file1.txt your_dir

axr492tv

axr492tv3#

作为用户 hdfs ,您有访问权限吗 /root/ (在本地硬盘中)?。通常你不会。你必须复制 file1.txt 去一个地方 hdfs 用户在尝试将其复制到hdfs之前具有读取权限。
尝试:

cp /root/MyHadoop/file1.txt /tmp
chown hdfs:hdfs /tmp/file1.txt

# older versions of Hadoop

sudo -u hdfs hadoop fs -put /tmp/file1.txt /

# newer versions of Hadoop

sudo -u hdfs hdfs dfs -put /tmp/file1.txt /

---编辑:
看看清洁工罗曼·尼基琴科的回答。

nimxete2

nimxete24#

我也遇到过同样的情况,下面是我的解决方案:

HADOOP_USER_NAME=hdfs hdfs fs -put /root/MyHadoop/file1.txt /

优势:
你不需要 sudo .
实际上,您根本不需要合适的本地用户“hdfs”。
您不需要复制任何内容,也不需要因为前面的几点而更改权限。

相关问题