您的位置:首页 > Web前端 > Node.js

hadoop 运行 datanode , mac 系统

2016-04-10 15:19 721 查看

问题描述

今天使用 hadoop 时,发现无法通过下面命令上传文件到 hadoop 文件系统,会报错。

bin/hadoop fs -put input .


运行 jps 后,输出如下:

2979 ResourceManager
2644 NameNode
3078 NodeManager
3113 Jps
2858 SecondaryNameNode


可见 datanode 挂掉了。

用下面的命令重启 hadoop ,重启后仍然没有 datanode 的进程。

sbin/stop-all.sh
sbin/start-all.sh


原因思考

近期同时安装了多个版本的 hadoop ,并且安装后重新格式化过 hdfs ,这个可能是引起问题的原因。

解决方法

本人使用的是 hadoop 2.7.2 版本。

1. 关闭集群

sbin/stop-all.sh


2. 在配置文件 etc/hadoop/hdfs-site.xml 中找到 dfs.name.dir / dfs.data.dir 的路径。我的配置如下

<configuration>
<property>
<name>dfs.name.dir</name>
<value>file:///Users/grs/hadoopinfra/hdfs/namenode </value>
</property>

<property>
<name>dfs.data.dir</name>
<value>file:///Users/grs/hadoopinfra/hdfs/datanode </value>
</property>
</configuration>


3. 将上述路径的的目录重命名,如将 Users/grs/hadoopinfra 重命名为 Users/grs/hadoopinfra.bak_20160410 ,或者全部删掉(rm -R)

4. 格式化 namenode

bin/hadoop namenode -format


5. 最后,重启

sbin/start-all.sh


运行效果

运行 jps 能看到 datanode 的进程。

2738 DataNode
2979 ResourceManager
3203 Jps
2644 NameNode
3078 NodeManager
2858 SecondaryNameNode


也能成功上传文件

grs:hadoop grs$ hadoop dfs -put input ./
DEPRECATED: Use of this script to execute hdfs command is deprecated.
Instead use the hdfs command for it.

16/04/10 15:17:07 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
grs:hadoop grs$


参考资料 :

No data nodes are started, stackoverflow
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: