Hadoop各个端口详解的查看链接

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 查看namenode端口 查看hadoop所有端口_Hadoop



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_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 变量而造成日志位置混乱,而该位置没有访问权限的话启动过程中会报错



由于新的 Yarn 框架与原 Hadoop MapReduce 框架相比变化较大,核心的配置文件中很多项在新框架中已经废弃,而新框架中新增了很多其他配置项,看下表所示会更加清晰:



表 2. 新旧 Hadoop 框架配置项变化表



配置文件

配置项

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 接口地址