Trex-Group / trex-bigdata

11 stars 6 forks source link

[hadoop] 能不能在手顺里面加入执行命令行的Node名称 #4

Open chinndou opened 7 years ago

chinndou commented 7 years ago

homework的内容,参照手顺执行。 有的命令行不知道是该在master上还是slave上执行。 如果可以的话,是不是可以在手顺上加入一下。谢谢

xenron commented 7 years ago

这个问题,问的好。

对于本地实验环境来说,除了前面系统准备(ip地址,hostname,hosts)以外 全部的命令,都可以在namenode上面执行,我稍后会往手顺里加一下说明。

你可以思考一下,为什么都可以在namenode上面执行? 可以的话,把自己思考的结果,回复在下面。

chinndou commented 7 years ago

我试验了一下。在启动dfs,yarn之前。启动namenode和datanode1. 用netstat确认了一下端口号是否被监听。在确认都不在工作时, 启动依次启动dfs和yarn,然后发现namenode和DataNode1上的java程序都被启动 由于datanode2没有启动。namenode的log里面显示无法连接datanode2. 之后,启动datanode2.发现也不会自动被namenode再次启动dfs和yarn。 这时,手启datanode2上的dfs和yarn。可以看到nodemanage的UI画面。 然后在namenode上执行,dfs和yarn的停止shell。发现datanode2上的dfs,yarn也被 master给停了。 通过上的试验总结可以得出,通过操作master可以对slave进行反应。可是动态 追加上datanode后却没能被namenode给启动必要的服务。是不是master和slave 之间缺少一个动态的healthcheck机制? 我只是从启动dfs,yarn开始做的试验。之前的各种配置文件的修改和格式化hdfs系统 时,是否master和slave之间会同期。需要晚上回家继续做试验。

关于为什么可以在namenode上执行,我想了一下老师白天给的那张namenode和 datanode的关系图。是不是namenode即时和datanode之间保持同期的原因? (拷贝文件之类没有尝试,所以不是很确定)

xenron commented 7 years ago

首先,默认情况下,启动顺序如下 启动全部节点的操作系统(namenode,datanode1,datanode2) 在namenode上,测试和其他节点之间的网络连通性 启动dfs,yarn 确认各个节点的java进程,端口监听状态,及log日志中有无错误信息

关于动态追加datanode,可以参考下面这个链接 https://wiki.apache.org/hadoop/FAQ#I_have_a_new_node_I_want_to_add_to_a_running_Hadoop_cluster.3B_how_do_I_start_services_on_just_one_node.3F 通过检查集群的状态,即可查询datanode的数量及该节点上的各种信息 https://wiki.apache.org/hadoop/FAQ#Is_there_an_easy_way_to_see_the_status_and_health_of_a_cluster.3F

A More Beautiful Question: How do I correctly remove nodes in Hadoop? https://pravinchavan.wordpress.com/2013/06/03/removing-node-from-hadoop-cluster/ https://my.oschina.net/houxm/blog/551214 挑战一下?

可以的话,把之前的错误log,截图,并使用红色标记一下,然后贴图在comment里面,(甚至可以再把log文件上传),可以方便自己和大家学习。