为什么在Nodes of the cluster页面没有显示所有的node?

本文记录了一次Hadoop集群启动过程中遇到的问题及其解决办法。主要问题是部分NodeManager未注册到NameNode,导致在GUI界面上无法显示所有节点。通过排查发现启动脚本使用错误,并修正了该问题。

启动整个Hadoop集群:

[ root@sparkmaster ~]#  start-dfs.sh
[ root@sparkmaster ~]#  yarn-daemon.sh start resourcemanager
starting resourcemanager, logging to /opt/hadoop-2.6.0//logs/yarn-root-resourcemanager-sparkmaster.out
[ root@sparkmaster ~]#  yarn-daemon.sh --hosts allnodes start nodemanager
starting nodemanager, logging to /opt/hadoop-2.6.0//logs/yarn-root-nodemanager-sparkmaster.out


当执行完启动整个hdfs集群的操作之后,登录hdfs node界面sparkmaster:8088/cluster/nodes,却只看到部分node。


这说明不是所有的nodemanager都register到namenode来了。果然,登录集群另外2个节点jps一下,没有nodemanager这个进程。


仔细检查,原来启动nodemanager的时候脚步用错了,错用了yarn-daemon.sh,实际应该用yarn-daemons.sh

再运行一遍启动脚步,


再登录GUI查看,就可以看到所有的node了


以前也遇到过类似问题,具体也是因为有的nodemanager somehow退出了。只要保证nodemanager都正常运行,一般都能在GUI上显示了。


<think>好的,用户现在问的是关于Categraf的Elasticsearch配置中的`all_nodes`参数,设置为true的情况。之前我已经回答过`local = false`的问题,现在需要处理这个新的参数。首先,我需要确认`all_nodes`和之前提到的`local`参数之间的关系,避免混淆。 用户提供的配置项是`all_nodes = true`,而之前的讨论是关于`local = false`。我需要回忆Categraf的文档,或者Elasticsearch监控插件的具体实现,这两个参数是否同时存在,或者是否是不同版本的配置。有可能`all_nodes`是另一个插件或者较新版本的参数,需要确认。 假设`all_nodes`和`local`都是用来控制监控节点范围的参数,但可能属于不同的配置部分,或者有不同的行为。比如,`local`可能控制是否只监控本地节点,而`all_nodes`可能是在另一个上下文中,比如集群健康检查时是否收集所有节点的信息。 需要检查用户提供的上下文,用户给出的配置示例是`all_nodes = true`,并描述是“如果为true,查询集群中所有节点的统计信息,而不仅仅是我们连接的节点”。这可能意味着,当设置为true时,Categraf会从所有节点收集统计信息,而不仅仅是它连接的那个节点。 接下来,我需要比较`local`和`all_nodes`的区别。之前的`local = false`对应的是使用`/_nodes/stats`,而`all_nodes = true`可能也是类似的效果,但可能是不同的配置项,或者属于不同部分的配置,比如在集群健康检查与节点统计之间的区别。 需要明确这两个参数的作用域。例如,`local`可能属于节点级别的统计收集,而`all_nodes`可能属于集群健康检查是否包含所有节点的详细信息。或者,可能这两个参数是同一功能的不同命名,取决于Categraf的版本或配置结构的变化。 为了确保准确性,可能需要查阅Categraf的官方文档,确认`all_nodes`参数的具体作用。假设在当前的Categraf配置中,`all_nodes`和`local`是同一配置的不同名称,或者属于不同部分的配置,比如一个控制节点统计,另一个控制集群健康信息的收集范围。 假设用户的问题中的`all_nodes`是在集群健康检查部分,例如`cluster_health`相关的配置中,那么`all_nodes = true`可能意味着在收集集群健康信息时,是否包含所有节点的详细信息,而不仅仅是汇总的数据。 例如,当`cluster_health = true`时,可能有一个子选项`all_nodes`,设置为true会使得在获取集群健康状态时,同时获取所有节点的详细信息,而不仅仅是整体的状态。这可能影响API调用的路径,比如使用`/_cluster/health?level=indices`或者包含更多细节的参数。 或者,`all_nodes`可能是在节点统计中的一个选项,用于覆盖`local`参数的行为,强制收集所有节点的信息,不管`local`如何设置。但需要确认是否存在这样的配置逻辑。 另外,用户的问题可能涉及到在配置文件中同时存在`local`和`all_nodes`的情况,需要解释这两个参数如何相互作用。比如,如果`local`设置为false,而`all_nodes`设置为true,是否会有冲突,或者是否互补。 可能需要指出,`all_nodes`参数的作用是当设置为true时,无论连接到哪个节点,Categraf都会收集整个集群中所有节点的统计信息,而不仅仅是所连接的那个节点。这类似于`local = false`的行为,但可能在另一个上下文中,比如在集群健康检查之外的节点统计收集。 此外,用户可能想知道如何配置这两个参数以达到他们想要的监控范围,是否需要同时设置,或者是否互相排斥。需要明确每个参数的用途,并给出配置建议,比如在生产环境中推荐如何设置,调试时如何调整。 可能还需要指出,当`all_nodes = true`时,Categraf可能会调用不同的API端点,例如`/_nodes/stats`而不是`/_nodes/_local/stats`,类似于`local = false`的情况。但需要确认参数名称是否对应不同的配置部分,或者是否属于同一配置项的不同命名。 总结来说,需要明确`all_nodes`参数的具体作用,与之前提到的`local`参数的区别,适用的场景,以及对API请求路径的影响。然后给出配置建议,使用示例,并提醒用户注意网络权限和验证步骤。</think>--- ### 一、参数定义 在Categraf的Elasticsearch监控配置中,`all_nodes` 参数用于控制**节点统计信息的采集范围**,与早期的`local`参数(已逐步淘汰)功能类似但更直观。其核心逻辑如下: ```toml [[instances]] # 控制是否采集所有节点指标(true=全集群,false=仅当前连接节点) all_nodes = true ``` --- ### 二、参数行为对比 | 参数值 | 请求的API路径 | 监控范围 | 典型场景 | |----------|--------------------------|------------------------|--------------------------| | `true` | `/_nodes/stats` | **集群全部节点** | 生产环境全局监控 | | `false` | `/_nodes/_local/stats` | **当前连接的单个节点** | 单节点测试或链路诊断 | --- ### 三、参数作用详解 1. **`all_nodes = true`** - **行为**:向Elasticsearch请求`/_nodes/stats`接口,采集**集群中所有节点**的详细指标(如CPU、内存、索引性能等)。 - **网络要求**:Categraf必须能访问集群中**所有节点**的HTTP API(默认9200端口)。若存在节点间防火墙限制,可能导致部分节点数据缺失。 - **指标示例**: ```plaintext elasticsearch_node_stats_os_cpu_percent{node="node1"} 12.5 elasticsearch_node_stats_indices_indexing_total{node="node2"} 84521 ``` 2. **`all_nodes = false`** - **行为**:仅请求`/_nodes/_local/stats`,采集**Categraf当前连接的节点**的指标(通常为Elasticsearch协调节点)。 - **风险提示**:若集群存在负载均衡,连接可能被路由到不同节点,导致监控数据不稳定。 --- ### 四、配置建议 1. **生产环境必选`all_nodes = true`** 需全局掌握集群状态时(如节点资源均衡、热点分片定位),必须启用此参数。 2. **与`cluster_health`配合使用** 建议同时开启集群健康监控,形成完整视图: ```toml [[instances]] all_nodes = true cluster_health = true # 补充集群级健康指标(如status、分片数) ``` 3. **
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

飞鸿踏雪Ben归来

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值