我使用以下hadoop命令创建目录
hdfs dfs -mkdir /tmp/testing/morehere1
我收到以下消息:
log4j:WARN No appenders could be found for logger (org.apache.hadoop.metrics2.lib.MutableMetricsFactory).
log4j:WARN请正确初始化log4j系统。
不理解错误,我再次运行命令,返回此消息:
log4j:WARN No appenders could be found for logger (org.apache.hadoop.metrics2.lib.MutableMetricsFactory).
log4j:WARN Please initialize the log4j system properly.
mkdir: `/tmp/testing/morehere2': File exists
然后当我尝试转到刚刚创建的目录时,它就不存在了。
cd /tmp/testing/morehere2
-bash: cd: /tmp/testing/morehere2: No such file or directory
任何想法我做错了什么?
答案 0 :(得分:5)
hdfs dfs -mkdir /tmp/testing/morehere1
此命令在hdfs中创建了一个目录。不要担心log4j警告。该命令成功创建了该目录。这就是你第二次尝试命令时得到错误mkdir:/tmp/testing/morehere2': File exists
的原因。
以下命令不起作用,因为目录不是在本地文件系统中创建的,而是在hdfs中创建的。
cd /tmp/testing/morehere2
使用以下命令检查hdfs:
中创建的目录hdfs dfs -ls /tmp/testing
您应该能够在那里看到新目录。
关于log4j警告:您可以忽略它,因为它不会导致您的hadoop命令失败。但是如果要更正它,可以将log appender添加到log4j.properties。
答案 1 :(得分:1)
请记住,HDFS和本地文件系统之间存在差异。您发布的第一行在HDFS中创建了一个目录,而不是在本地系统上。所以你不能直接cd或者它或任何东西;如果你想访问它,你必须通过hadoop。记录到HDFS也很少见,因为文件附加从未得到很好的支持。我怀疑你确实想在本地创建该目录,这可能是你问题的一部分。
答案 2 :(得分:0)
如果您的MR代码之前运行正常,现在它显示此log4j错误,然后重新启动所有hadoop守护进程。它可以解决你的问题,因为它解决了我的问题:)