我在本地机器和从属节点上安装了hadoop。我想把它用于多节点集群(目前主节点+1从节点)。我还阅读了hadoop多节点教程,并尝试在master和slave上运行hadoop。我有我的系统的下一个配置。在我升级后 hdfs-site.xml
以及 core-site.xml
,我定义本地机器上的主设备和从设备。在 masters
我把 localhost
,在 slaves
我把从节点的名字。。。关于奴隶我只定义了 slaves
与 localhost
之后我执行
hduser@user:/usr/local/hadoop-2.7.2$ sbin/start-dfs.sh
在本地存储库中。终端中的hadoop答案似乎不错:
Starting namenodes on [localhost]
localhost: starting namenode, logging to /usr/local/hadoop-2.7.2/logs/hadoop-hduser-namenode-user.out
hduser@slavename: starting datanode, logging to /usr/local/hadoop-2.7.2/logs/hadoop-hduser-datanode-slavename.out
Starting secondary namenodes [0.0.0.0]
0.0.0.0: starting secondarynamenode, logging to /usr/local/hadoop-2.7.2/logs/hadoop-hduser-secondarynamenode-user.out
最后我进去了 localhost:50070
我没有看到任何从节点在下面 LiveNodes
我想,我没有连接到我的从属服务器,无论如何,在集群启动期间我没有收到任何错误消息。在我做了一站dfs之后,我真的得到了一个信息:
Stopping namenodes on [localhost]
localhost: stopping namenode
hduser@slavename: no datanode to stop
Stopping secondary namenodes [0.0.0.0]
0.0.0.0: stopping secondarynamenode
因此,我的从属节点没有连接到主节点。。。。
我在日志文件中也看到了日志。错误消息是:
java.io.IOException: Incorrect configuration: namenode address dfs.namenode.servicerpc-address or dfs.namenode.rpc-address is not configured.
我怎样才能把我的主人和奴隶联系起来?
ps我实际上可以使用hadoop作为主程序而不需要任何从属程序,我还可以在本地模式下用本地hadoop安装的输入运行spark代码。。。主要的问题只是一个奴隶。
4条答案
按热度按时间ijnw1ujt1#
@西蜀泰雅,谢谢你的消息。实际上,我已经更新了hadoop教程中的所有文件(以及您在这里如何告诉我)。也
core-site.xml
可以。我也负责订单bin/hdfs namenode -format
没有收到任何错误消息。在我被处决之后sbin/start-dfs.sh
我在日志文件中找到了错误hadoop-hduser-secondarynamenode-user.log
:在日志文件中
hadoop-hduser-datanode-user.log
```2016-04-26 09:10:37,087 FATAL org.apache.hadoop.hdfs.server.datanode.DataNode: Initialization failed for Block pool (Datanode Uuid unassigned) service to localhost/127.0.0.1:9000. Exiting.
java.io.IOException: All specified directories are failed to load.
at org.apache.hadoop.hdfs.server.datanode.DataStorage.recoverTransitionRead(DataStorage.java:478)
at org.apache.hadoop.hdfs.server.datanode.DataNode.initStorage(DataNode.java:1358)
at org.apache.hadoop.hdfs.server.datanode.DataNode.initBlockPool(DataNode.java:1323)
at org.apache.hadoop.hdfs.server.datanode.BPOfferService.verifyAndSetNamespaceInfo(BPOfferService.java:317)
at org.apache.hadoop.hdfs.server.datanode.BPServiceActor.connectToNNAndHandshake(BPServiceActor.java:223)
at org.apache.hadoop.hdfs.server.datanode.BPServiceActor.run(BPServiceActor.java:802)
at java.lang.Thread.run(Thread.java:745)
yk9xbfzb2#
首先,您需要在主节点和从节点之间设置无密码ssh登录。
然后定义所有必需的配置。检查core-site.xml文件
遵循以下步骤:
它应该能解决你的问题。
rkue9o1l3#
您的主文件名应该包含secondarynamenode的地址,以便namenode可以读取它。您需要在core-site.xml配置文件中配置fs.default.name,如下所示:
您还应该检查“hdfs namenode-format”在hadoop中的工作方式。
r3i60tvu4#
检查两个节点之间是否建立了ssh连接。
检查您是否在nn中的从属文件上定义了正确的ip地址。