CDH集群服务器主机节点与角色分配相关思考

 

默认首先安装的是:

zookeeper -- 因为hadoop的ha高可用性需要用到zookeeper(zkfailovercontroller 与hdfs 的先后顺序影响不到) yarn的resource manager等资源管理用到  hbase的region reserver入口管理 响应客户端请求需要用到  kafka的topic等元数据保存用到了zookeeper  (Zookeeper Server 进程  奇数个  paxos算法核心--为了保证半数以上投票支持 且节约资源 需要是奇数个最好不过了 且最少是三个) Zookeeper Server 进程 -- 提供分布式协调管理服务

hadoop -- hdfs (namenode/ datanode/ failover controller/ journalnode/ balancer/nfs gateway/httpfs) --一般来说 fc和jn 都安装在nn进程所在的服务器上,一般为两个 一个是master  一个是bakmaster,balancer安装在master上。namenode -- 元数据管理 块信息处理 等作用进程  datanode与hdfs上block的数据进行交互  failover controller--监控namenode健康状态 心跳机制保持长连接 journalnode保存元数据更改记录 balancer负载均衡 nfs-网络文件系统。Namenode 管理者文件系统的Namespace。它维护着文件系统树(filesystemtree)以及文件树中所有的文件和文件夹的元数据(metadata)。管理这些信息的文件有两个,分别是Namespace镜像文件(Namespace image)和操作日志文件(editlog),这些信息被Cache在RAM中,当然,这两个文件也会被持久化存储在本地硬盘。Namenode记录着每个文件中各个块所在的数据节点的位置信息,但是他并不持久化存储这些信息,因为这些信息会在系统启动时从数据节点重建。Datanode是文件系统的工作节点,他们根据客户端或者是namenode的调度存储和检索数据,并且定期向namenode发送他们所存储的块(block)的列表。集群中的每个服务器都运行一个DataNode后台程序,这个后台程序负责把HDFS数据块读写到本地的文件系统。当需要通过客户端读/写某个 数据时,先由NameNode告诉客户端去哪个DataNode进行具体的读/写操作,然后,客户端直接与这个DataNode服务器上的后台程序进行通 信,并且对相关的数据块进行读/写操作。

 

CDH集群服务器主机节点与角色分配相关思考

yarn -- (mr2 included)(resource manager/node manager/job histroy server) resource manager管理和分配集群资源 node manager与数据交互执行task任务 job history server 记录作业提交历史  nodemanager一般部署在datanode节点上   resource manager部署在master节点上 (主备)job history server 安装在master上

hive -- (hive gateway/hiveserver2/hive metastore server)hive gateway -- 处理网络连接 hive请求 一般来说 每台主机都可以安装,hiveserver2 -- hive的核心进程 -- 解析 优化 计算等任务的完成;hive metastore server 与mysql(默认为derby -- 单点故障且不支持impala)继续hive 元数据的保存与维护

hbase -- (region server / hbase rest server/ hbase thrift server/hbase master/hbase gateway) hbase master -- 元数据管理 region分区管理等管理操作,负载不高,hbase rest server--提供restful api,hbase thrift server -- 为多种语言提供不同的api,region server--提供针对具体数据的操作。hbase master一般安装在master服务器上,一个备份安装在bakmaster,region server 一般部署在datanode节点上。

impala -- 在hive之后需要用到hive 的元数据  (impala daemon / impala catalog server / impala statestore)Impalad:与DataNode运行在同一节点上,由Impalad进程表示,它接收客户端的查询请求,读写数据,并行执行查询,并把结果返回给 客户端。同时Impalad也与State Store保持连接,用于确定哪个Impalad是健康和可以接受新的工作Impala State Store:跟踪集群中的Impalad的健康状态及位置信息,由statestored进程表示,它通过创建多个线程来处理Impalad的注册订阅和与各 Impalad保持心跳连接,各Impalad都会缓存一份State Store中的信息。Statestore daemon:服务名称statestored 1个实例,负责收集分布在集群中各个impalad进程的资源信息,各节点的健康状况/同步节点信息;负责query的调度;对于一个正常运转的集群,并不是一个关键进程。Catalog daemon:服务名称catalogd 1个实例;把impala表的metadata分发到各个impalad中;接收来自statestore的所有请求。impala daemon:服务名称impalad N个实例;接收client hue jdbc或odbc请求 query执行并返回给中心协调节点;子节点上的守护进程,负责向statestore保持通信,汇报工作。

spark:(spark gateway /spark history server)-- spark gateway每个节点服务器上都有  spark history server安装在master节点上

spark(standalone) -- (spark standalone worker /spark  standalone master/spark standalone history server) spark standalone worker 默认安装在datanode上  spark stanalone master 默认安装在master节点上

sqoop:sqoop  1 client gateway --任一节点  最好是每个datanode上都安装一个 因为是与数据交互

oozie:oozie server  -- 属于管理类工具 可以安装在master 或者 bakmaster

flume:flume agent -- 最好和kafka broker在同一节点上  进行数据传输 数据接入

Kafka -- zookeeper之后   kafka broker进程 安装在任一节点  需要硬盘够大存储日志数据的

hue:hue server 安装在任一节点 -- 属于管理类工具 可以安装在master 或者 bakmaster