无法将文件从本地文件系统复制到cloudera上的hadoop/hdfs

p4tfgftt  于 2021-05-29  发布在  Hadoop
关注(0)|答案(1)|浏览(612)

在fedora25上安装clouderahdc之后,我可以创建文件夹,但不能创建文件,也不能将数据从本地文件系统复制到hdfs。
这是我使用的命令:

sudo -u hdfs hadoop fs -copyFromLocal /home/mohammed/Documents/bbc.txt /kareem/corpora/

这是我从终点站得到的:

SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.
copyFromLocal: '/home/mohammed/Documents/bbc.txt': No such file or directory

如何克服这个问题?
非常感谢您的帮助!

mgdq6dx1

mgdq6dx11#

问题是你的本地路径 /home/mohammed 无法作为用户访问 hdfs 你要执行整个命令。因为本地linux用户 hdfs 无法进入 /home/mohammed ,命令抛出 No such file or directory 由于无法定位或读取提供的文件而导致错误和退出。
在大多数打包的hdfs安装中 hdfs 用户通常是分布式文件系统的超级用户,管理命令通常作为该用户运行。但是,在使用之后,可以也应该像普通用户一样对数据进行处理 hdfs 用户为普通用户提供权限和所有权。
对于您的情况,您可以按以下步骤操作: mohammed 用户,如果此帐户还具有sudo权限:


# Superuser-provisioning part (do once)

# Ensure the HDFS directory exists by creating it as a superuser

~> sudo -u hdfs hadoop fs -mkdir -p /kareem/corpora

# Ensure also the HDFS-home path exists by creating it as a superuser

~> sudo -u hdfs hadoop fs -mkdir -p /user/mohammed

# Grant ownership entirely to user mohammed for both paths

~> sudo -u hdfs hadoop fs -chown -R mohammed:mohammed /kareem /user/mohammed

# Final usage part (continue or repeat as many times) without superuser

# Upload the local file (note the absence of sudo)

~> hadoop fs -copyFromLocal -f /home/mohammed/Documents/bbc.txt /kareem/corpora/

# Now read it, etc., all done as the regular non-'hdfs' user

~> hadoop fs -text /home/mohammed/Documents/bbc.txt

相关问题