我正在尝试在OS X Yosemite上运行hadoop。当我按照 http://hadoop.apache.org/docs/current/hadoop-project-dist/hadoop-common/SingleCluster.html 的说明进行操作时,我配置了hadoop,并启动了$ sbin/start-dfs.sh,然后用jps检查得到输出:
17237 DataNode
17324 SecondaryNameNode
17388 Jps
但是,当我尝试"bin/hdfs dfs -mkdir/user"时,Hadoop无法加载库(在我运行其他示例时也会发生同样的情况),并显示连接失败:
$ bin/hdfs dfs -mkdir /user
15/01/05 03:19:35 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
mkdir: Call From *.local/192.*.*.* to localhost:9000 failed on connection exception: java.net.ConnectException: Connection refused; For more details see: http://wiki.apache.org/hadoop/ConnectionRefused
看起来 namenode 没有运行。在HDFS中,namenode是充当主守护进程并处理来自HDFS客户端的所有请求的节点。当您执行脚本时,Namenode 应该已启动 start-dfs.sh。在启动 hdfs 服务之前检查是否已格式化 HDFS,如果未格式化 HDFS,请使用以下命令格式化 HDFS,并使用命令 stop-dfs.sh 和 start-dfs.sh 再次停止和启动 HDFS 服务
hadoop namenode -format