ポート
各部分は通常、デーモン、RPCアクセスの間で対話するための使用であるそのうちのいくつかは複数のポートへのHadoopクラスタを使用して、いくつかは、HTTPアクセスのために使用されています。完全アプリケーションは、クエリのように特別なコレクションのレコードを思い出すことができないためにどのポート対応のHadoopの周辺部品の増加、と。HDFS、YARN、HBaseの、ハイブ、ZooKeeperの:ここでは、コンポーネントを含むように使用します。
パッケージ | ノード | デフォルトのポート | コンフィギュレーション | 使用手順 |
HDFS | データノード | 50010 | dfs.datanode.address | データ伝送のためのデータノードのサービスポート |
HDFS | データノード | 50075 | dfs.datanode.http.address | HTTPポートサービス |
HDFS | データノード | 50475 | dfs.datanode.https.address | HTTPSポートサービス |
HDFS | データノード | 50020 | dfs.datanode.ipc.address | IPCポートサービス |
HDFS | 名前ノード | 50070 | dfs.namenode.httpアドレス | HTTPポートサービス |
HDFS | 名前ノード | 50470 | dfs.namenode.httpsアドレス | HTTPSポートサービス |
HDFS | 名前ノード | 8020 | fs.defaultFS | クライアントは、ファイルシステムのメタデータを取得するための情報、に接続されているRPCポートを受けます。 |
HDFS | journalnode | 8485 | dfs.journalnode.rpcアドレス | RPCサービス |
HDFS | journalnode | 8480 | dfs.journalnode.httpアドレス | HTTPサービス |
HDFS | ZKFC | 8019 | dfs.ha.zkfc.port | NN HAのためのZooKeeper FailoverController、 |
糸 | このResourceManager | 8032 | yarn.resourcemanager.address | RMのアプリケーションマネージャ(ASM)ポート |
糸 | このResourceManager | 8030 | yarn.resourcemanager.scheduler.address | IPCポートスケジューラ・コンポーネント |
糸 | このResourceManager | 8031 | yarn.resourcemanager.resource-tracker.address | IPC |
糸 | このResourceManager | 8033 | yarn.resourcemanager.admin.address | IPC |
糸 | このResourceManager | 8088 | yarn.resourcemanager.webapp.address | HTTPサービスポート |
糸 | ノードマネージャ | 8040 | yarn.nodemanager.localizer.address | ローカライザーIPC |
糸 | ノードマネージャ | 8042 | yarn.nodemanager.webapp.address | HTTPサービスポート |
糸 | ノードマネージャ | 8041 | yarn.nodemanager.address | コンテナ・マネージャでNMポート |
糸 | JobHistoryサーバー | 10020 | mapreduce.jobhistory.address | IPC |
糸 | JobHistoryサーバー | 19888 | mapreduce.jobhistory.webapp.address | HTTPサービスポート |
HBaseの | マスター | 60000 | hbase.master.port | IPC |
HBaseの | マスター | 60010 | hbase.master.info.port | HTTPサービスポート |
HBaseの | リージョンサーバー | 60020 | hbase.regionserver.port | IPC |
HBaseの | リージョンサーバー | 60030 | hbase.regionserver.info.port | HTTPサービスポート |
HBaseの | HQuorumPeer | 2181 | hbase.zookeeper.property.clientPort | HBaseの管理のZKモード、別々のZooKeeperクラスタを使用するポートを有効にしません。 |
HBaseの | HQuorumPeer | 2888 | hbase.zookeeper.peerport | HBaseの管理のZKモード、別々のZooKeeperクラスタを使用するポートを有効にしません。 |
HBaseの | HQuorumPeer | 3888 | hbase.zookeeper.leaderport | HBaseの管理のZKモード、別々のZooKeeperクラスタを使用するポートを有効にしません。 |
巣箱 | メタストア | 9083 | デフォルトのポートを更新するには、/ etc / default /ハイブ-メタストア輸出PORT = <ポート> | |
巣箱 | HiveServer | 10000 | デフォルトのポートを更新するには、輸出HIVE_SERVER2_THRIFT_PORT = <ポート> /etc/hive/conf/hive-env.sh | |
ZooKeeperの | サーバ | 2181 | /etc/zookeeper/conf/zoo.cfg中CLIENTPORT = <ポート> | ポートはクライアントにサービスを提供します |
ZooKeeperの | サーバ | 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。
URL
对于存在Web UI(HTTP服务)的所有hadoop daemon,有如下url:
/jmx?get=MXBeanName::AttributeName 查询指定bean指定属性的值,例如/jmx?get=Hadoop:service=NameNode,name=NameNodeInfo::ClusterId会返回ClusterId。 这个请求的处理类:org.apache.hadoop.jmx.JMXJsonServlet
/logs :日志文件列表,用于下载和查看
/logLevel :允许你设定log4j的日志记录级别,类似于hadoop daemonlog
/stacks :所有线程的stack trace,对于debug很有帮助
/jmx :服务端的Metrics,以JSON格式输出。
/jmx?qry=Hadoop:*会返回所有hadoop相关指标。
NameNode:http://:50070/
/dfshealth.jsp:HDFS信息页面,其中有链接可以查看文件系统
/dfsnodelist.jsp?whatNodes=(DEAD|LIVE):显示DEAD或LIVE状态的datanode
/fsck:运行fsck命令,不推荐在集群繁忙时使用!
DataNode:http://:50075/
/blockScannerReport:每个datanode都会指定间隔验证块信息
RPC
RPC(Remote Procedure Call Protocol)——远程过程调用协议,它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。RPC协议假定某些传输协议的存在,如TCP或UDP,为通信程序之间携带信息数据。在OSI网络通信模型中,RPC跨越了传输层和应用层。RPC使得开发包括网络分布式多程序在内的应用程序更加容易。
RPC采用客户机/服务器模式。请求程序就是一个客户机,而服务提供程序就是一个服务器。首先,客户机调用进程发送一个有进程参数的调用信息到服务进程,然后等待应答信息。在服务器端,进程保持睡眠状态直到调用信息到达为止。当一个调用信息到达,服务器获得进程参数,计算结果,发送答复信息,然后等待下一个调用信息,最后,客户端调用进程接收答复信息,获得进程结果,然后调用执行继续进行。
有多种 RPC模式和执行。最初由 Sun 公司提出。IETF ONC 宪章重新修订了 Sun 版本,使得 ONC RPC 协议成为 IETF 标准协议。现在使用最普遍的模式和执行是开放式软件基础的分布式计算环境(DCE)。
Hadoop IPC
IPC
- 实现RPC的一种方法,具有快速、简单的特点。 它不像Sun公司提供的标准RPC包,基于Java序列化。
- IPC无需创建网络stubs和skeletons。
- IPC中的方法调用要求参数和返回值的数据类型必须是Java的基本类型,String和Writable接口的实现类,以及元素为以上类型的数组。接口方法应该只抛出IOException异常。
使用模型
- 采用客户/服务器模型
- Server:它把Java接口暴露给客户端。指定好监听端口和接受远程调用的对象实例后,通过RPC.getServer()可以得到Server实例。
- Client:连接Server,调用它所暴露的方法。Client必须指定远程机器的地址,端口和Java接口类,通过RPC.getClient()可以得到Client实例。
- Server不可以向Client发出调用,但在Hadoop中,有双向调用的需求。 比如在DFS,NameNode和DataNode需要互相了解状态。
参考博客:
http://blog.csdn.net/jpc00939/article/details/79014613
http://blog.csdn.net/wulantian/article/details/46341043