问题导读:
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:
组件 |
节点 |
默认端口 |
配置 |
用途说明 |
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(默认)时需要。 |
所有端口协议均基于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都会指定间隔验证块信息
补充###
在Hadoop 2.2.0中,YARN框架有很多默认的参数值,如果你是在机器资源比较不足的情况下,需要修改这些默认值,来满足一些任务需要。
NodeManager和ResourceManager都是在yarn-site.xml文件中配置的,而运行MapReduce任务时,是在mapred-site.xml中进行配置的。
下面看一下相关的参数及其默认值情况:
参数名称
|
默认值
|
进程名称
|
配置文件
|
含义说明
|
yarn.nodemanager.resource.memory-mb |
8192 |
NodeManager |
yarn-site.xml |
从节点所在物理主机的可用物理内存总量 |
yarn.nodemanager.resource.cpu-vcores |
8 |
NodeManager |
yarn-site.xml |
节点所在物理主机的可用虚拟CPU资源总数(core) |
yarn.nodemanager.vmem-pmem-ratio |
2.1 |
NodeManager |
yarn-site.xml |
使用1M物理内存,最多可以使用的虚拟内存数量 |
yarn.scheduler.minimum-allocation-mb |
1024 |
ResourceManager |
yarn-site.xml |
一次申请分配内存资源的最小数量 |
yarn.scheduler.maximum-allocation-mb |
8192 |
ResourceManager |
yarn-site.xml |
一次申请分配内存资源的最大数量 |
yarn.scheduler.minimum-allocation-vcores |
1 |
ResourceManager |
yarn-site.xml |
一次申请分配虚拟CPU资源最小数量 |
yarn.scheduler.maximum-allocation-vcores |
8 |
ResourceManager |
yarn-site.xml |
一次申请分配虚拟CPU资源最大数量 |
mapreduce.framework.name |
local |
MapReduce |
mapred-site.xml |
取值local、classic或yarn其中之一,如果不是yarn,则不会使用YARN集群来实现资源的分配 |
mapreduce.map.memory.mb |
1024 |
MapReduce |
mapred-site.xml |
每个MapReduce作业的map任务可以申请的内存资源数量 |
mapreduce.map.cpu.vcores |
1 |
MapReduce |
mapred-site.xml |
每个MapReduce作业的map任务可以申请的虚拟CPU资源的数量 |
mapreduce.reduce.memory.mb |
1024 |
MapReduce |
mapred-site.xml |
每个MapReduce作业的reduce任务可以申请的内存资源数量 |
yarn.nodemanager.resource.cpu-vcores |
8 |
MapReduce |
mapred-site.xml |
每个MapReduce作业的reduce任务可以申请的虚拟CPU资源的数量
|
补充###
表 1. 新旧 Hadoop 脚本 / 变量 / 位置变化表
由于新的 Yarn 框架与原 Hadoop MapReduce 框架相比变化较大,核心的配置文件中很多项在新框架中已经废弃,而新框架中新增了很多其他配置项,看下表所示会更加清晰:
表 2. 新旧 Hadoop 框架配置项变化表
![]()