12

我尝试将文件从本地磁盘复制到hdfs. 起初它给了SafeModeException. 在寻找解决方案时,我读到如果再次执行相同的命令,问题不会出现。所以我再次尝试,它没有给出异常。

hduser@saket:/usr/local/hadoop$ bin/hadoop dfs -copyFromLocal /tmp/gutenberg/ /user/hduser/gutenberg
copyFromLocal: org.apache.hadoop.hdfs.server.namenode.SafeModeException: Cannot create directory /user/hduser/gutenberg. Name node is in safe mode.
hduser@saket:/usr/local/hadoop$ bin/hadoop dfs -copyFromLocal /tmp/gutenberg/ /user/hduser/gutenberg

为什么会这样?。我应该使用此代码关闭安全模式吗?

hadoop dfs -safemode leave
4

2 回答 2

18

NameNode处于安全模式,直到配置的数据节点报告为在线的块百分比。可以通过参数dfs.namenode.safemode.threshold-pct配置hdfs-site.xml

对于小型/开发集群,您的块很少 - 将此参数设置为低于其默认值是有意义的0.9999f。否则 1 个缺失块可能导致系统在安全模式下挂起。

于 2012-12-06T07:54:48.733 回答
15

进入(在我的系统中)的hadoop路径,bin/usr/local/hadoop/bin/

cd /usr/local/hadoop/bin/

检查是否有文件hadoop

hadoopuser@arul-PC:/usr/local/hadoop/bin$ ls

o/p 将是,

hadoop            hadoop-daemons.sh  start-all.sh       start-jobhistoryserver.sh  stop-balancer.sh          stop-mapred.sh
hadoop-config.sh  rcc                start-balancer.sh  start-mapred.sh            stop-dfs.sh               task-controller
hadoop-daemon.sh  slaves.sh          start-dfs.sh       stop-all.sh                stop-jobhistoryserver.sh

然后你必须使用命令关闭安全模式./hadoop dfsadmin -safemode leave

hadoopuser@arul-PC:/usr/local/hadoop/bin$ ./hadoop dfsadmin -safemode leave

你会得到回应,

Safe mode is OFF

注意:我创建的 Hadoop 用户名为hadoopuser.

于 2014-07-09T08:49:59.280 回答