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格式输出。
/jmxqry=Hadoop:*会返回所有hadoop相关指标。
/jmxget=MXBeanName::AttributeName 查询指定bean指定属性的值,例如/jmxget=Hadoop:service=NameNode,name=NameNodeInfo::ClusterId会返回ClusterId。
这个请求的处理类:org.apache.hadoop.jmx.JMXJsonServlet
而特定的Daemon又有特定的URL路径特定相应信息。
NameNode:http://:50070/
/dfshealth.jsp
HDFS信息页面,其中有链接可以查看文件系统
/dfsnodelist.jspwhatNodes=(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资源的数量
|