Hadoop常用端标语?思维导图 代码示例(java 架构)

打印 上一主题 下一主题

主题 958|帖子 958|积分 2874

Hadoop集群中的各个组件通过差别的端标语举行通信,了解这些端口有助于正确配置防火墙规则、排查网络问题以及确保服务的正常运行。以下是关于Hadoop常用端标语的项目履历总结、思维导图描述以及Java代码示例。
Hadoop 常用端标语概述

NameNode (NN)



  • 默认HTTP Web UI:50070(Hadoop 2.x及之前版本),9870(Hadoop 3.x)
  • RPC接口:8020(Hadoop 2.x及之前版本),9820(Hadoop 3.x)
SecondaryNameNode (SNN)



  • 默认HTTP Web UI:50090(Hadoop 2.x及之前版本),9868(Hadoop 3.x)
DataNode (DN)



  • 默认HTTP Web UI:50075(Hadoop 2.x及之前版本),9864(Hadoop 3.x)
  • 数据传输端口:1004(Hadoop 2.x及之前版本),1004(Hadoop 3.x)
ResourceManager (RM)



  • 默认HTTP Web UI:8088
  • ResourceManager RPC接口:8032
NodeManager (NM)



  • 默认HTTP Web UI:8042
  • Container管理接口:8040(仅用于内部通信)
HistoryServer (HS)



  • 默认HTTP Web UI:19888
YARN Application Timeline Server



  • 默认HTTP Web UI:8188
  • RPC接口:10200
思维导图描述



  • Hadoop 常用端标语

    • NameNode (NN)

      • 默认HTTP Web UI

        • 50070(Hadoop 2.x及之前版本)
        • 9870(Hadoop 3.x)

      • RPC接口

        • 8020(Hadoop 2.x及之前版本)
        • 9820(Hadoop 3.x)


    • SecondaryNameNode (SNN)

      • 默认HTTP Web UI

        • 50090(Hadoop 2.x及之前版本)
        • 9868(Hadoop 3.x)


    • DataNode (DN)

      • 默认HTTP Web UI

        • 50075(Hadoop 2.x及之前版本)
        • 9864(Hadoop 3.x)

      • 数据传输端口

        • 1004(Hadoop 2.x及之前版本)
        • 1004(Hadoop 3.x)


    • ResourceManager (RM)

      • 默认HTTP Web UI

        • 8088

      • ResourceManager RPC接口

        • 8032


    • NodeManager (NM)

      • 默认HTTP Web UI

        • 8042

      • Container管理接口

        • 8040(仅用于内部通信)


    • HistoryServer (HS)

      • 默认HTTP Web UI

        • 19888


    • YARN Application Timeline Server

      • 默认HTTP Web UI

        • 8188

      • RPC接口

        • 10200



Java代码示例

下面是一个简朴的Java步伐,展示了如何使用Hadoop提供的API访问NameNode和DataNode的Web界面,并打印出它们的状态信息。此示例假设你已经有一个运行中的Hadoop集群,并且具备必要的权限访问其管理接口。
  1. import org.apache.hadoop.conf.Configuration;
  2. import org.apache.hadoop.hdfs.DFSClient;
  3. import org.apache.hadoop.hdfs.DistributedFileSystem;
  4. import org.apache.hadoop.hdfs.protocol.DatanodeInfo;
  5. import java.io.IOException;
  6. import java.net.URI;
  7. import java.util.List;
  8. public class HadoopPortStatusCheck {
  9.     public static void main(String[] args) {
  10.         String hdfsUri = "hdfs://namenode:8020"; // 替换为你的HDFS URI
  11.         Configuration conf = new Configuration();
  12.         try (DistributedFileSystem dfs = (DistributedFileSystem) FileSystem.get(new URI(hdfsUri), conf)) {
  13.             DFSClient client = dfs.getClient();
  14.             List<DatanodeInfo> dataNodes = client.datanodeReport(false); // false表示只获取存活节点
  15.             System.out.println("Healthy DataNodes:");
  16.             for (DatanodeInfo node : dataNodes) {
  17.                 System.out.printf("Host: %s, XceiverCount: %d, LastUpdate: %d\n",
  18.                         node.getHostName(), node.getXceiverCount(), node.getLastUpdate());
  19.             }
  20.             // 如果需要检查所有节点(包括死节点),可以使用true参数
  21.             List<DatanodeInfo> allNodes = client.datanodeReport(true);
  22.             System.out.println("\nAll DataNodes:");
  23.             for (DatanodeInfo node : allNodes) {
  24.                 if (!node.isLive()) {
  25.                     System.out.printf("DEAD Host: %s, XceiverCount: %d, LastUpdate: %d\n",
  26.                             node.getHostName(), node.getXceiverCount(), node.getLastUpdate());
  27.                 }
  28.             }
  29.             // 访问NameNode Web UI状态页面
  30.             String nnWebUIUrl = "http://namenode:9870/dfshealth.html";
  31.             System.out.println("\nNameNode Web UI URL: " + nnWebUIUrl);
  32.         } catch (IOException | InterruptedException | URISyntaxException e) {
  33.             System.err.println("Error checking Hadoop port status: " + e.getMessage());
  34.         }
  35.     }
  36. }
复制代码
现实应用建议


  • 配置防火墙规则

    • 确保全部必要的端口在防火墙上是开放的,以便各组件之间能够正常通信。

  • 监控与报警

    • 使用监控工具(如Ambari、Ganglia、Prometheus等)实时跟踪关键端口和服务的状态,设置警报机制以便实时响应潜伏风险。

  • 文档化端口映射

    • 记录每个组件所使用的端标语及其用途,形成知识库供团队成员参考学习。

  • 安全策略

    • 对外网暴露的服务(如Web UI)应实行严格的访问控制措施,比方限制IP地点范围或使用SSL加密连接。

  • 测试与验证

    • 在生产环境中实行任何改动前,先在一个小型测试集群上举行全面测试,确保改动不会引入新的问题。

  • 优化网络拓扑

    • 根据业务需求合理规划网络架构,淘汰不必要的跨子网通信,提高整体性能。

  • 更新与维护

    • 定期检查官方文档和技能社区,了解最新的端口配置建媾和最佳实践,保持系统的最新状态。

通过上述方法,你可以更有用地管理和维护Hadoop集群,确保各个组件之间的通信顺畅无阻。记住,随着版本升级和技能进步,某些端标语大概会发生变革,因此始终参考最新文档是非常紧张的。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

曹旭辉

金牌会员
这个人很懒什么都没写!
快速回复 返回顶部 返回列表