[英]Cannot copy files from local file system to hadoop/hdfs on cloudera
在fedora25上安装cloudera HDC之后,我可以创建文件夹,但不能创建文件,也不能将数据从本地文件系统复制到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
如何克服这个问题?
非常感谢您的帮助!
问题是您无法本地访问/home/mohammed
本地路径,因为您正在模拟要运行整个命令的用户hdfs
。 由于hdfs
的本地linux用户无法输入/home/mohammed
,因此该命令将引发No such file or directory
错误,并由于无法找到或读取提供的文件而退出。
在大多数打包的HDFS安装中, hdfs
用户通常是分布式文件系统的超级用户,管理命令通常以该用户身份运行。 但是,在使用hdfs
用户为常规用户提供权限和所有权之后,可以并且应该以常规用户的身份对数据进行处理。
对于您的情况,如果此帐户还具有sudo特权,则可以以您的mohammed
用户身份执行以下操作:
# 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
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.