CDH架构
主要由如下几部分组成:
- 服务端Server : Cloudera Manager的核心。主要用于管理web server和应用逻辑。它用于安装软件,配置,开始和停止服务,以及管理服务运行的集群。
- 代理Agent :安装在每台主机上。它负责启动和停止的进程,部署配置,触发安装和监控主机。
- 数据库Database :存储配置和监控信息。通常可以在一个或多个数据库服务器上运行的多个逻辑数据库。例如,所述的Cloudera管理器服务和监视后台程序使用不同的逻辑数据库。
- Cloudera Repository :用于软件分发由Cloudera软件仓库。
- 客户端Clients :提供了一个与Server交互的接口 : 管理平台Admin Console :提供一个管理员管理集群和 Cloudera Manage的基于网页的交互界面。 API :为开发者提供了创造自定义Cloudera Manager程序的API。
- Management Service:由一组执行各种监控,警报和报告功能角色的服务。
数据库需求
CDH组件TCP端口
Φ Hadoop
| 组件 | 服务 | 端口 | 访问要求 | 配置项 | Qualifier |
| —- | —- | —- | —- | —- | —- |
| HDFS | DataNode | 50010 | 外部 | dfs.datanode.address | |
| | | 1004 | 外部 | dfs.datanode.address | Secure |
| | | 50075 | 外部 | dfs.datanode.http.address | |
| | | 50475 | 外部 | dfs.datanode.https.address | |
| | | 1006 | 外部 | dfs.datanode.http.address | Secure |
| | | 50020 | 外部 | dfs.datanode.ipc.address | |
| | NameNode | 8020 | 外部 | fs.defaultFS | |
| | | 8022 | 外部 | dfs.namenode.servicerpc-address | |
| | | 50070 | 外部 | dfs.namenode.http-address | |
| | | 50470 | 外部 | dfs.namenode.https-address | Secure |
| | Secondary NameNode | 50090 | 内部 | dfs.namenode.secondary.http-address | |
| | | 50495 | 内部 | dfs.secondary.https.address | Secure |
| | JournalNode | 8485 | 内部 | dfs.namenode.shared.edits.dir | |
| | | 8480 | 内部 | dfs.journalnode.http-address | |
| | | 8481 | 内部 | dfs.journalnode.https-address | |
| | Failover Controller | 8019 | 内部 | | 用于NameNode HA |
| | NFS gateway | 2049 | 外部 | nfs3.server.port | nfs端口 |
| | | 4242 | 外部 | nfs3.mountd.port | NFS挂载端口 |
| | | 111 | 外部 | | rpcbind端口 |
| | | 50079 | 外部 | nfs.http.port | 提供度量 |
| | | 50579 | 外部 | nfs.https.port | 提供度量 |
| | HttpFS | 14000 | 外部 | | |
| | | 14001 | 外部 | | |
| YARN (MRv2) | ResourceManager | 8032 | 外部 | yarn.resourcemanager.address | |
| | | 8030 | 内部 | yarn.resourcemanager.scheduler.address | |
| | | 8031 | 内部 | yarn.resourcemanager.resource-tracker.address | |
| | | 8033 | 外部 | yarn.resourcemanager.admin.address | |
| | | 8088 | 外部 | yarn.resourcemanager.webapp.address | |
| | | 8090 | 外部 | yarn.resourcemanager.webapp.https.address | |
| | NodeManager | 8040 | 内部 | yarn.nodemanager.localizer.address | |
| | | 8041 | 内部 | yarn.nodemanager.address | |
| | | 8042 | 外部 | yarn.nodemanager.webapp.address | |
| | | 8044 | 外部 | yarn.nodemanager.webapp.https.address | |
| | JobHistory Server | 10020 | 内部 | mapreduce.jobhistory.address | |
| | | 10033 | 内部 | mapreduce.jobhistory.admin.address | |
| | | 19888 | 外部 | mapreduce.jobhistory.webapp.address | |
| | | 19890 | 外部 | mapreduce.jobhistory.webapp.https.address | |
| | Shuffle HTTP | 13562 | 内部 | mapreduce.shuffle.port | |
| | ApplicationMaster | 端口范围 | 外部 | | 到AM web服务的请求,使用RM路由 |
| KMS | Key Management Server | 16000 | 外部 | kms_http_port | KeyStore KMS和Key Trustee KMS |
| | Key Management Server | 16001 | Localhost | kms_admin_port | |
Φ Flume
组件 |
服务 |
端口 |
访问要求 |
配置项 |
Qualifier |
Flume |
Flume Agent |
41414 |
外部 |
|
Φ HBase
组件 |
服务 |
端口 |
访问要求 |
配置项 |
Qualifier |
HBase |
Master |
60000 |
外部 |
hbase.master. port |
IPC |
|
|
60010 |
外部 |
hbase.master.info.port |
HTTP |
|
RegionServer |
60020 |
外部 |
hbase.regionserver.port |
IPC |
|
|
60030 |
外部 |
hbase.regionserver.port |
HTTP |
|
HQuorumPeer |
2181 |
内部 |
hbase.zookeeper.property.clientPort |
HBase管理的ZK模式 |
|
|
2888 |
内部 |
hbase.zookeeper.property.clientPort |
HBase管理的ZK模式 |
|
|
3888 |
内部 |
hbase.zookeeper.leaderport |
HBase管理的ZK模式 |
|
REST |
8080 |
外部 |
hbase.rest.port |
默认为8080,CM会设置为20550 |
|
|
20550 |
外部 |
hbase.rest.port |
默认为8080,CM会设置为20550 |
|
REST UI |
8085 |
外部 |
|
|
|
Thrift Server |
9090 |
外部 |
命令行-p |
|
|
|
9095 |
外部 |
|
|
|
Avro server |
9090 |
外部 |
命令行—port |
|
|
hbase-solr-indexer |
11060 |
外部 |
|
Lily Indexer |
Φ Hive
组件 |
服务 |
端口 |
访问要求 |
配置项 |
Qualifier |
Hive |
Metastore |
9083 |
外部 |
|
|
|
HiveServer2 |
10000 |
外部 |
hive.server2.thrift.port |
Beeline需要定义这个端口 |
|
HiveServer2 Web User Interface (UI) |
10002 |
外部 |
hive.server2.webui.port |
|
|
WebHCat Server |
50111 |
外部 |
templeton.port |
Φ Hue
组件 |
服务 |
端口 |
访问要求 |
配置项 |
Qualifier |
|
Server |
8888 |
外部 |
|
|
|
Load Balancer |
8889 |
外部 |
|
Φ Kafka
组件 |
服务 |
端口 |
访问要求 |
配置项 |
Qualifier |
|
Broker |
9092 |
外/内部 |
port |
生产者/消费者和内部broker使用的通信端口 |
|
|
9093 |
外/内部 |
ssl_port |
安全通信端口 |
|
|
9393 |
内部 |
jmx_port |
JMX管理使用的内部端口 |
|
|
24042 |
内部 |
kafka.http.metrics.port |
通过HTTP上报度量,替代JMX |
|
MirrorMaker |
9394 |
内部 |
jmx_port |
MirrorMaker管理生产者/消费者用 |
Φ Kudu
组件 |
服务 |
端口 |
访问要求 |
配置项 |
Qualifier |
Kudu |
Master |
7051 |
外部 |
|
主RPC端口 |
|
|
8051 |
外部 |
|
主HTTP端口 |
|
TabletServer |
7050 |
外部 |
|
RPC端口 |
|
|
8050 |
外部 |
|
HTTP端口 |
Φ Oozie
组件 |
服务 |
端口 |
访问要求 |
配置项 |
Qualifier |
Oozie |
Oozie Server |
11000 |
外部 |
OOZIE_HTTP_PORT |
HTTP |
|
|
11443 |
外部 |
|
HTTPS |
Φ Sentry
组件 |
服务 |
端口 |
访问要求 |
配置项 |
Qualifier |
Sentry |
Sentry Server |
8038 |
外部 |
sentry.service.server.rpc-port |
|
|
|
51000 |
外部 |
sentry.service.web.port |
Φ Spark
组件 |
服务 |
端口 |
访问要求 |
配置项 |
Qualifier |
|
Default Master RPC port |
7077 |
外部 |
|
|
|
Default Worker RPC port |
7078 |
外部 |
|
|
|
Default Master web UI port |
18080 |
外部 |
|
|
|
Default Worker web UI port |
18081 |
外部 |
|
|
|
History Server |
18088 |
外部 |
history.port |
|
|
Shuffle service |
7337 |
内部 |
|
Φ ZooKeeper
组件 |
服务 |
端口 |
访问要求 |
配置项 |
Qualifier |
ZooKeeper |
Server |
2181 |
外部 |
clientPort |
客户端端口 |
|
|
2888 |
内部 |
X in server.N =host:X:Y |
|
|
|
3888 |
内部 |
X in server.N =host:X:Y |
|
|
|
3181 |
内部 |
X in server.N =host:X:Y |
|
|
|
4181 |
内部 |
X in server.N =host:X:Y |
|
|
ZooKeeper JMX port |
9010 |
内部 |
|
TODO
Zookeeper会为RMI使用随机端口来选举;
为了允许Cloudera Manager监控Zookeeper,你必需:
- 当Cloudera Manager服务连接时,打开所有端口
- 在防火墙打开非临时端口(如9011)
- 安装JDK7以上
- 在高级配置代码段添加-Dcom.sun.management.jmxremote.rmi.port=9011
- 重启Zookeeper