转载 http://www.aboutyun.com/thread-7513-1-1.html
问题导读:
1.DataNode的http服务的端口、ipc服务的端口分别是哪个?
2.NameNode的http服务的端口、ipc服务的端口分别是哪个?
3.journalnode的http服务的端口、ipc服务的端口分别是哪个?
4.ResourceManager的http服务端口是哪个?
5.NodeManager的http服务端口是哪个?
6.Master的http服务的端口、ipc服务的端口分别是哪个?
7.3888是谁的端口,用来做什么?
扩展:
hadoop1.X对应端口是哪个?
9000、9001分别对应是hadoop2.X的那个端口?
Hadoop集群的各部分一般都会使用到多个端口,有些是daemon之间进行交互之用,有些是用于RPC访问以及HTTP访问。而随着Hadoop周边组件的增多,完全记不住哪个端口对应哪个应用,特收集记录如此,以便查询。
这里包含我们使用到的组件:HDFS, YARN, HBase, Hive, ZooKeeper:
[table]
|组件 | 节点 | 默认端口 | 配置 | 用途说明 |
|HDFS | DataNode | 50010 | dfs.datanode.address | datanode服务端口,用于数据传输 |
|HDFS | DataNode | 50075 | dfs.datanode.http.address | http服务的端口 |
|HDFS | DataNode | 50475 | dfs.datanode.https.address | https服务的端口 |
|HDFS | DataNode | 50020 | dfs.datanode.ipc.address | ipc服务的端口 |
|HDFS | NameNode | 50070 | dfs.namenode.http-address | http服务的端口 |
|HDFS | NameNode | 50470 | dfs.namenode.https-address | https服务的端口 |
|HDFS | NameNode | 8020 | fs.defaultFS | 接收Client连接的RPC端口,用于获取文件系统metadata信息。 |
|HDFS | journalnode | 8485 | dfs.journalnode.rpc-address | RPC服务 |
|HDFS | journalnode | 8480 | dfs.journalnode.http-address | HTTP服务 |
|HDFS | ZKFC | 8019 | dfs.ha.zkfc.port | ZooKeeper FailoverController,用于NN HA |
|YARN | ResourceManager | 8032 | yarn.resourcemanager.address | RM的applications manager(ASM)端口 |
|YARN | ResourceManager | 8030 | yarn.resourcemanager.scheduler.address | scheduler组件的IPC端口 |
|YARN | ResourceManager | 8031 | yarn.resourcemanager.resource-tracker.address | IPC |
|YARN | ResourceManager | 8033 | yarn.resourcemanager.admin.address | IPC |
|YARN | ResourceManager | 8088 | yarn.resourcemanager.webapp.address | http服务端口 |
|YARN | NodeManager | 8040 | yarn.nodemanager.localizer.address | localizer IPC |
|YARN | NodeManager | 8042 | yarn.nodemanager.webapp.address | http服务端口 |
|YARN | NodeManager | 8041 | yarn.nodemanager.address | NM中container manager的端口 |
|YARN | JobHistory Server | 10020 | mapreduce.jobhistory.address | IPC |
|YARN | JobHistory Server | 19888 | mapreduce.jobhistory.webapp.address | http服务端口 |
|HBase | Master | 60000 | hbase.master.port | IPC |
|HBase | Master | 60010 | hbase.master.info.port | http服务端口 |
|HBase | RegionServer | 60020 | hbase.regionserver.port | IPC |
|HBase | RegionServer | 60030 | hbase.regionserver.info.port | http服务端口 |
|HBase | HQuorumPeer | 2181 | hbase.zookeeper.property.clientPort | HBase-managed ZK mode,使用独立的ZooKeeper集群则不会启用该端口。 |
|HBase | HQuorumPeer | 2888 | hbase.zookeeper.peerport | HBase-managed ZK mode,使用独立的ZooKeeper集群则不会启用该端口。 |
|HBase | HQuorumPeer | 3888 | hbase.zookeeper.leaderport | HBase-managed ZK mode,使用独立的ZooKeeper集群则不会启用该端口。 |
|Hive | Metastore | 9083 | /etc/default/hive-metastore中export PORT=<port>来更新默认端口 | |
|Hive | HiveServer | 10000 | /etc/hive/conf/hive-env.sh中export HIVE_SERVER2_THRIFT_PORT=<port>来更新默认端口 |
|ZooKeeper | Server | 2181 | /etc/zookeeper/conf/zoo.cfg中clientPort=<port> | 对客户端提供服务的端口 | |
|ZooKeeper | Server | 2888 | /etc/zookeeper/conf/zoo.cfg中server.x=[hostname]:nnnnn[:nnnnn],标蓝部分 | follower用来连接到leader,只在leader上监听该端口。
|ZooKeeper | Server | 3888 | /etc/zookeeper/conf/zoo.cfg中server.x=[hostname]:nnnnn[:nnnnn],标蓝部分 | 用于leader选举的。只在electionAlg是1,2或3(默认)时需要。
[/table]
所有端口协议均基于TCP。
对于存在Web UI(HTTP服务)的所有hadoop daemon,有如下url:
/logs
日志文件列表,用于下载和查看
/logLevel
允许你设定log4j的日志记录级别,类似于hadoop daemonlog
/stacks
所有线程的stack trace,对于debug很有帮助
/jmx
服务端的Metrics,以JSON格式输出。
/jmx?qry=Hadoop:*会返回所有hadoop相关指标。
/jmx?get=MXBeanName::AttributeName 查询指定bean指定属性的值,例如/jmx?get=Hadoop:service=NameNode,name=NameNodeInfo::ClusterId会返回ClusterId。
这个请求的处理类:org.apache.hadoop.jmx.JMXJsonServlet
而特定的Daemon又有特定的URL路径特定相应信息。
NameNode:http://:50070/
/dfshealth.jsp
HDFS信息页面,其中有链接可以查看文件系统
/dfsnodelist.jsp?whatNodes=(DEAD|LIVE)
显示DEAD或LIVE状态的datanode
/fsck
运行fsck命令,不推荐在集群繁忙时使用!
DataNode:http://:50075/
/blockScannerReport
每个datanode都会指定间隔验证块信息
这里在补充一些:
表 1. 新旧 Hadoop 脚本 / 变量 / 位置变化表
[table]
|改变项| 原框架中|新框架中(Yarn)|备注 |
|配置文件位置| ${hadoop_home_dir}/conf | hadoop_home_dir}
/etc/hadoop/Yarn |框架也兼容老的
${hadoop_home_dir}/conf 位置配置,
启动时会检测是否存在老的 conf 目录,
如果存在将加载 conf 目录下的配置,
否则加载 etc 下配置|
|启停脚本 | ${hadoop_home_dir}
/bin/start(stop)-all.sh | ${hadoop_home_dir}
/sbin/start(stop)-dfs.sh ${hadoop_home_dir}
/bin/start(stop)-all.sh |新的 Yarn 框架中启动
分布式文件系统和启动Yarn 分离,
启动 / 停止分布式文件系统的命令
位于 ${hadoop_home_dir}/sbin 目录下,
启动/ 停止 Yarn 框架位于
${hadoop_home_dir}/bin/ 目录下|
|JAVA_HOME
全局变量| ${hadoop_home_dir}
/bin/start-all.sh 中 |${hadoop_home_dir}
/etc/hadoop/hadoop-env.sh
${hadoop_home_dir}/etc/hadoop/Yarn-env.sh | Yarn 框架中由于启动 hdfs 分布式文件系统和启动 MapReduce 框架分离
,JAVA_HOME 需要在hadoop-env.sh
和 Yarn-env.sh 中分别配置|
|HADOOP_LOG_DIR全局变量 | 不需要配置 | ${hadoop_home_dir}
/etc/hadoop/hadoop-env.sh |老框架在 LOG,conf,tmp 目录等均默认为脚本
启动的当前目录下的 log,conf,tmp
子目录Yarn 新框架中 Log 默认创建在
Hadoop 用户的 home 目录下的 log 子目录,
因此最好在${hadoop_home_dir}
/etc/hadoop/hadoop-env.sh配置
HADOOP_LOG_DIR,否则有可能会因为你启动hadoop
的用户的 .bashrc 或者 .bash_profile
中指定了其他的 PATH 变量而造成日志位置混乱,
而该位置没有访问权限的话启动过程中会报错|
[/table]
由于新的 Yarn 框架与原 Hadoop MapReduce 框架相比变化较大,核心的配置文件中很多项在新框架中已经废弃,而新框架中新增了很多其他配置项,看下表所示会更加清晰:
表 2. 新旧 Hadoop 框架配置项变化表
[table]
|配置文件 |配置项 |Hadoop 0.20.X 配置| Hadoop 0.23.X 配置| 说明|
|core-site.xml |系统默认分布式文件URI |fs.default.name | fs.defaultFS |
|hdfs-site.xml | DFS name node 存放 name table 的目录 | dfs.name.dir | dfs.namenode.name.dir |新框架中 name node 分成 dfs.namenode.name.dir( 存放 naname table 和 dfs.namenode.edits.dir(存放 edit 文件),默认是同一个目录|
| | DFS data node 存放数据 block 的目录 | dfs.data.dir | dfs.datanode.data.dir | 新框架中 DataNode 增加更多细节配置,位于 dfs.datanode. 配置项下,如dfs.datanode.data.dir.perm(datanode local 目录默认权限);dfs.datanode.address(datanode 节点监听端口);等|
| | 分布式文件系统数据块复制数 | dfs.replication | dfs.replication |新框架与老框架一致,值建议配置为与分布式 cluster 中实际的 DataNode 主机数一致|
|mapred-site.xml| Job 监控地址及端口 | mapred.job.tracker |无 |新框架中已改为 Yarn-site.xml 中的 resouceManager 及 nodeManager 具体配置项,新框架中历史 job 的查询已从 Job tracker 剥离,归入单独的mapreduce.jobtracker.jobhistory 相关配置,
| |第三方 MapReduce 框架 | 无 | mapreduce.framework.name | 新框架支持第三方 MapReduce 开发框架以支持如 SmartTalk/DGSG 等非 Yarn 架构,注意通常情况下这个配置的值都设置为 Yarn,如果没有配置这项,那么提交的 Yarn job 只会运行在 locale 模式,而不是分布式模式。|
|Yarn-site.xml |The address of the applications manager interface in the RM| 无 |Yarn.resourcemanager.address| 新框架中 NodeManager 与 RM 通信的接口地址|
| |The address of the scheduler interface | 无 | Yarn.resourcemanager.scheduler.address |同上,NodeManger 需要知道 RM 主机的 scheduler 调度服务接口地址|
| |The address of the RM web application | 无 |Yarn.resourcemanager.webapp.address |新框架中各个 task 的资源调度及运行状况通过通过该 web 界面访问|
| |The address of the resource tracker interface |无 |Yarn.resourcemanager.resource-tracker.address | 新框架中 NodeManager 需要向 RM 报告任务运行状态供 Resouce 跟踪,因此 NodeManager 节点主机需要知道 RM 主机的 tracker 接口地址|
[/table]
问题导读:
1.DataNode的http服务的端口、ipc服务的端口分别是哪个?
2.NameNode的http服务的端口、ipc服务的端口分别是哪个?
3.journalnode的http服务的端口、ipc服务的端口分别是哪个?
4.ResourceManager的http服务端口是哪个?
5.NodeManager的http服务端口是哪个?
6.Master的http服务的端口、ipc服务的端口分别是哪个?
7.3888是谁的端口,用来做什么?
扩展:
hadoop1.X对应端口是哪个?
9000、9001分别对应是hadoop2.X的那个端口?
Hadoop集群的各部分一般都会使用到多个端口,有些是daemon之间进行交互之用,有些是用于RPC访问以及HTTP访问。而随着Hadoop周边组件的增多,完全记不住哪个端口对应哪个应用,特收集记录如此,以便查询。
这里包含我们使用到的组件:HDFS, YARN, HBase, Hive, ZooKeeper:
[table]
|组件 | 节点 | 默认端口 | 配置 | 用途说明 |
|HDFS | DataNode | 50010 | dfs.datanode.address | datanode服务端口,用于数据传输 |
|HDFS | DataNode | 50075 | dfs.datanode.http.address | http服务的端口 |
|HDFS | DataNode | 50475 | dfs.datanode.https.address | https服务的端口 |
|HDFS | DataNode | 50020 | dfs.datanode.ipc.address | ipc服务的端口 |
|HDFS | NameNode | 50070 | dfs.namenode.http-address | http服务的端口 |
|HDFS | NameNode | 50470 | dfs.namenode.https-address | https服务的端口 |
|HDFS | NameNode | 8020 | fs.defaultFS | 接收Client连接的RPC端口,用于获取文件系统metadata信息。 |
|HDFS | journalnode | 8485 | dfs.journalnode.rpc-address | RPC服务 |
|HDFS | journalnode | 8480 | dfs.journalnode.http-address | HTTP服务 |
|HDFS | ZKFC | 8019 | dfs.ha.zkfc.port | ZooKeeper FailoverController,用于NN HA |
|YARN | ResourceManager | 8032 | yarn.resourcemanager.address | RM的applications manager(ASM)端口 |
|YARN | ResourceManager | 8030 | yarn.resourcemanager.scheduler.address | scheduler组件的IPC端口 |
|YARN | ResourceManager | 8031 | yarn.resourcemanager.resource-tracker.address | IPC |
|YARN | ResourceManager | 8033 | yarn.resourcemanager.admin.address | IPC |
|YARN | ResourceManager | 8088 | yarn.resourcemanager.webapp.address | http服务端口 |
|YARN | NodeManager | 8040 | yarn.nodemanager.localizer.address | localizer IPC |
|YARN | NodeManager | 8042 | yarn.nodemanager.webapp.address | http服务端口 |
|YARN | NodeManager | 8041 | yarn.nodemanager.address | NM中container manager的端口 |
|YARN | JobHistory Server | 10020 | mapreduce.jobhistory.address | IPC |
|YARN | JobHistory Server | 19888 | mapreduce.jobhistory.webapp.address | http服务端口 |
|HBase | Master | 60000 | hbase.master.port | IPC |
|HBase | Master | 60010 | hbase.master.info.port | http服务端口 |
|HBase | RegionServer | 60020 | hbase.regionserver.port | IPC |
|HBase | RegionServer | 60030 | hbase.regionserver.info.port | http服务端口 |
|HBase | HQuorumPeer | 2181 | hbase.zookeeper.property.clientPort | HBase-managed ZK mode,使用独立的ZooKeeper集群则不会启用该端口。 |
|HBase | HQuorumPeer | 2888 | hbase.zookeeper.peerport | HBase-managed ZK mode,使用独立的ZooKeeper集群则不会启用该端口。 |
|HBase | HQuorumPeer | 3888 | hbase.zookeeper.leaderport | HBase-managed ZK mode,使用独立的ZooKeeper集群则不会启用该端口。 |
|Hive | Metastore | 9083 | /etc/default/hive-metastore中export PORT=<port>来更新默认端口 | |
|Hive | HiveServer | 10000 | /etc/hive/conf/hive-env.sh中export HIVE_SERVER2_THRIFT_PORT=<port>来更新默认端口 |
|ZooKeeper | Server | 2181 | /etc/zookeeper/conf/zoo.cfg中clientPort=<port> | 对客户端提供服务的端口 | |
|ZooKeeper | Server | 2888 | /etc/zookeeper/conf/zoo.cfg中server.x=[hostname]:nnnnn[:nnnnn],标蓝部分 | follower用来连接到leader,只在leader上监听该端口。
|ZooKeeper | Server | 3888 | /etc/zookeeper/conf/zoo.cfg中server.x=[hostname]:nnnnn[:nnnnn],标蓝部分 | 用于leader选举的。只在electionAlg是1,2或3(默认)时需要。
[/table]
所有端口协议均基于TCP。
对于存在Web UI(HTTP服务)的所有hadoop daemon,有如下url:
/logs
日志文件列表,用于下载和查看
/logLevel
允许你设定log4j的日志记录级别,类似于hadoop daemonlog
/stacks
所有线程的stack trace,对于debug很有帮助
/jmx
服务端的Metrics,以JSON格式输出。
/jmx?qry=Hadoop:*会返回所有hadoop相关指标。
/jmx?get=MXBeanName::AttributeName 查询指定bean指定属性的值,例如/jmx?get=Hadoop:service=NameNode,name=NameNodeInfo::ClusterId会返回ClusterId。
这个请求的处理类:org.apache.hadoop.jmx.JMXJsonServlet
而特定的Daemon又有特定的URL路径特定相应信息。
NameNode:http://:50070/
/dfshealth.jsp
HDFS信息页面,其中有链接可以查看文件系统
/dfsnodelist.jsp?whatNodes=(DEAD|LIVE)
显示DEAD或LIVE状态的datanode
/fsck
运行fsck命令,不推荐在集群繁忙时使用!
DataNode:http://:50075/
/blockScannerReport
每个datanode都会指定间隔验证块信息
这里在补充一些:
表 1. 新旧 Hadoop 脚本 / 变量 / 位置变化表
[table]
|改变项| 原框架中|新框架中(Yarn)|备注 |
|配置文件位置| ${hadoop_home_dir}/conf | hadoop_home_dir}
/etc/hadoop/Yarn |框架也兼容老的
${hadoop_home_dir}/conf 位置配置,
启动时会检测是否存在老的 conf 目录,
如果存在将加载 conf 目录下的配置,
否则加载 etc 下配置|
|启停脚本 | ${hadoop_home_dir}
/bin/start(stop)-all.sh | ${hadoop_home_dir}
/sbin/start(stop)-dfs.sh ${hadoop_home_dir}
/bin/start(stop)-all.sh |新的 Yarn 框架中启动
分布式文件系统和启动Yarn 分离,
启动 / 停止分布式文件系统的命令
位于 ${hadoop_home_dir}/sbin 目录下,
启动/ 停止 Yarn 框架位于
${hadoop_home_dir}/bin/ 目录下|
|JAVA_HOME
全局变量| ${hadoop_home_dir}
/bin/start-all.sh 中 |${hadoop_home_dir}
/etc/hadoop/hadoop-env.sh
${hadoop_home_dir}/etc/hadoop/Yarn-env.sh | Yarn 框架中由于启动 hdfs 分布式文件系统和启动 MapReduce 框架分离
,JAVA_HOME 需要在hadoop-env.sh
和 Yarn-env.sh 中分别配置|
|HADOOP_LOG_DIR全局变量 | 不需要配置 | ${hadoop_home_dir}
/etc/hadoop/hadoop-env.sh |老框架在 LOG,conf,tmp 目录等均默认为脚本
启动的当前目录下的 log,conf,tmp
子目录Yarn 新框架中 Log 默认创建在
Hadoop 用户的 home 目录下的 log 子目录,
因此最好在${hadoop_home_dir}
/etc/hadoop/hadoop-env.sh配置
HADOOP_LOG_DIR,否则有可能会因为你启动hadoop
的用户的 .bashrc 或者 .bash_profile
中指定了其他的 PATH 变量而造成日志位置混乱,
而该位置没有访问权限的话启动过程中会报错|
[/table]
由于新的 Yarn 框架与原 Hadoop MapReduce 框架相比变化较大,核心的配置文件中很多项在新框架中已经废弃,而新框架中新增了很多其他配置项,看下表所示会更加清晰:
表 2. 新旧 Hadoop 框架配置项变化表
[table]
|配置文件 |配置项 |Hadoop 0.20.X 配置| Hadoop 0.23.X 配置| 说明|
|core-site.xml |系统默认分布式文件URI |fs.default.name | fs.defaultFS |
|hdfs-site.xml | DFS name node 存放 name table 的目录 | dfs.name.dir | dfs.namenode.name.dir |新框架中 name node 分成 dfs.namenode.name.dir( 存放 naname table 和 dfs.namenode.edits.dir(存放 edit 文件),默认是同一个目录|
| | DFS data node 存放数据 block 的目录 | dfs.data.dir | dfs.datanode.data.dir | 新框架中 DataNode 增加更多细节配置,位于 dfs.datanode. 配置项下,如dfs.datanode.data.dir.perm(datanode local 目录默认权限);dfs.datanode.address(datanode 节点监听端口);等|
| | 分布式文件系统数据块复制数 | dfs.replication | dfs.replication |新框架与老框架一致,值建议配置为与分布式 cluster 中实际的 DataNode 主机数一致|
|mapred-site.xml| Job 监控地址及端口 | mapred.job.tracker |无 |新框架中已改为 Yarn-site.xml 中的 resouceManager 及 nodeManager 具体配置项,新框架中历史 job 的查询已从 Job tracker 剥离,归入单独的mapreduce.jobtracker.jobhistory 相关配置,
| |第三方 MapReduce 框架 | 无 | mapreduce.framework.name | 新框架支持第三方 MapReduce 开发框架以支持如 SmartTalk/DGSG 等非 Yarn 架构,注意通常情况下这个配置的值都设置为 Yarn,如果没有配置这项,那么提交的 Yarn job 只会运行在 locale 模式,而不是分布式模式。|
|Yarn-site.xml |The address of the applications manager interface in the RM| 无 |Yarn.resourcemanager.address| 新框架中 NodeManager 与 RM 通信的接口地址|
| |The address of the scheduler interface | 无 | Yarn.resourcemanager.scheduler.address |同上,NodeManger 需要知道 RM 主机的 scheduler 调度服务接口地址|
| |The address of the RM web application | 无 |Yarn.resourcemanager.webapp.address |新框架中各个 task 的资源调度及运行状况通过通过该 web 界面访问|
| |The address of the resource tracker interface |无 |Yarn.resourcemanager.resource-tracker.address | 新框架中 NodeManager 需要向 RM 报告任务运行状态供 Resouce 跟踪,因此 NodeManager 节点主机需要知道 RM 主机的 tracker 接口地址|
[/table]