CDH各角色功能简介

Cloudera Management

Cloudera Manager是一个用于管理CDH群集的应用程序。
该应用程序使安装过程自动化,将部署时间从几周缩短到几分钟;
提供运行主机和服务的集群范围的实时视图;
提供单个中央控制台,以在整个群集中实施配置更改;
整合了各种报告和诊断工具,以帮助优化性能和利用率。

Event Server

事件服务,收集hadoop相关事件并据此生成警告信息。

Host Monitor

主机检测,收集主机运行健康指标信息。

Activity Monitor

活动检测,收集MapReduce运行活动信息,默认情况下没有添加这个角色。

Service Monitor

服务检测,收集有关服务的运行状况和指标信息以及YARN和Impala服务中的活动信息。

Alert Publisher

警告通知,生成相关类型警告通知事件并提供SNMP服务供第三方收集信息。

Reports Manager

报告管理,生成用户组历史磁盘使用率、yarn资源池、HBase表的使用情况。

HDFS

HDFS中的文件在物理上是分块存储(Block),块的大小可以通过配置参数(dfs.blocksize)来规定 默认大小在hadoop2.x版本中是128M,老版本中的64M
HDFS文件系统会给客户端提供一个统一的抽象目录树,客户端通过路径来访问文件,形如:hdfs://namenode:port/dir-a/dir-b/dir-c/file.data
目录结构及文件分块信息(元数据)的管理由namenode节点承担 namenode是HDFS集群主节点,负责维护整个HDFS文件系统的目录树以及每一个路径(文件)对应的block块信息(block的id,以及所在的datanode服务器)
文件的各个block的存储管理由datanode节点承担 datanode是HDFS集群从节点,每一个block都可以在多个datanode上存储多个副本(副本参数也可以通过参数设置dfs.replication)
HDFS适应一次写入,多次读出的场景,且不支持文件的修改。

NameNode

主节点,负责管理从节点DN。NN维护着整个文件系统的文件目录树,文件目录的元信息和文件的数据块索引,这些信息以两种信息保存在本文文件系统中,一种是文件系统镜像(文件名字fsimage),另一种是fsimage的编辑日志(文件名字edits)。

DataNode

从节点,DN是HDFS中硬盘IO最忙碌的部分:将HDFS的数据块写到Linux本地文件系统中,或者从这些数据块中读取数据。DN作为从节点,会不断的向NN发送心跳。初始化时,每个DN将当前节点的数据块上报给NN。NN也会接收来自NN的指令,比如创建、移动或者删除本地的数据块,并且将本地的更新上报给NN。

SecondaryNameNode

定期合并edits和fsImage(如果没有配置SecondaryNameNode由NameNode自己完成),防止edits日志文件过大,提供NameNode的fsImage文件的检查点,以实现NameNode故障恢复。

Standby Namenode

Standby模式的NameNode元数据(Namespcae information 和 Block 都是和Active NameNode中的元数据是同步的,一但切换成Active模式,马上就可以提供NameNode服务。

JournalNode

Standby NameName和 NameNode通过JournalNode通信,保持信息同步。

Failover Controller

故障控制器,对NameNode 的主备切换进行总体控制。FailoverController 能及时检测到NameNode 的健康状况,在主 NameNode 故障时借助 Zookeeper 实现自动的主备选举和切换。NameNode 目前也支持不依赖于 Zookeeper 的手动主备切换。

NFS Gateway

支持NFSv3,允许HDFS作为客户端本地文件系统的一部分挂载在本地文件系统,是一种可以将HDFS上面的空间映射到linux本地磁盘上的工具。

HttpFS

通过HttpFs,可以在浏览器里面管理HDFS上的文件,HttpFS还提供了一套REST 风格的API可以用来管理HDFS。

Balancer

集群平衡工具,通过运行这个程序,可以使得HDFS集群达到一个平衡的状态。

HBase

HBase是一个稀疏的,长期存储的,多维度的,排序的映射表,采用Key-Value方式存储数据。

Master

为Region Server(在hbase中称之为Region Server)分配region
负责整个集群的负载均衡
维护集群中的元数据
负责监控整个集群,发现失效的Region Server,并重新分配其上的Region

RegionServer

管理Master分配的Region,处理来自客户端对Region的读取工作
切分在运行过程中变的过大的Region
负责和底层的HDFS交互,存储数据

HBase REST Server

HBase Rest 是建立在HBase java 客户端基础之上的,提供的web 服务。它存在的目的是给开发者一个更多的选择。

HBase Thrift Server

Thrift是一个驱动层接口,它提供了用于客户端使用多种语言实现的API 。

Hive

建立在Hadoop基础上的开源的数据仓库,提供大数据平台批处理计算能力,能够对结构化/半结构化数据进行批量分析汇总完成数据计算。提供类似SQL的Hive Query Language语言操作结构化数据存储服务和基本的数据分析服务。其基本原理是将HQL语言自动转换成MapReduce任务,从而完成对Hadoop集群中存储的海量数据进行查询和分析。

WebHCat Server

HCatalog是Apache下面的一个元数据管理工具,后来被集成到Hive里面,是的一些第三方工具,比如Pig、MR、Spark等可以通过HCatalog直接访问HDFS上的数据。而WebHCat(以前称为Templeton)提供访问HCatalog的REST API。对于Hive而言,HCatalog和WebHCat是非必须的。

Hive Metastore Server

MetaStore是Hive必不可少的一个模块,提供了两个非常重要的功能: 数据抽象和数据发现。

HiveServer2

HiverServer2(以下简称HS2)是Hive里面非常重要的一个模块,基于Thrift开发,所以有时也被称为Thrift Server,主要功能是提供客户端操作Hive的接口,默认端口是10000。

Hue

Hue 是一个Web应用,用来简化用户和Hadoop集群的交互。Hue可以让用户浏览HDFS文件系统、查看集群的作业和运行Hive、Pig和Cloudera Impala查询, 能够管理Hive Metastore、HBase、Sqoop、Zookeeper和MapReduce作业, 还可以通过Hue使用Oozie创建和安排工作流。

Load Balancer

hue的负载均衡,一种监视和控制其他服务的服务,它可以被配置为在崩溃时自动重启服务,或者在某些事件发生时触发脚本。

Hue Server

Hue的服务端。

Kerberos Ticket Renewer

Impala

换句话说,Impala是用于处理存储在Hadoop集群中的大量数据的MPP(大规模并行处理)SQL查询引擎。 它是一个用C ++和Java编写的开源软件。 与其他Hadoop的SQL引擎相比,它提供了高性能和低延迟。

是性能最高的SQL引擎(提供类似RDBMS的体验),它提供了访问存储在Hadoop分布式文件系统中的数据的最快方法。

Impala Daemon

Impala daemon(也称为impalad)在安装Impala的每个节点上运行,与DataNode运行在同一节点上,由Impalad进程表示,一个datanode对应一个impalad。 这是ImpalaServer的核心组件,即运行在集群每个node上的impalad守护进程。它负责读写数据文件,接受impala-shell、Hue、JDBC、ODBC传来的query,对查询进行并行化处理,并分发work给集群的每个节点,传递中间结果给协调者节点。

Impala Catalog Server

Catalog service组件在所有节点中传递metadata的变化。它由catalogd进程代表,仅需要运行在一个节点上。由于请求是通过statestore进程传递的,故通常把statestored进程和catalogd进程运行在同一个节点上。

Impala StateStore

Statestore组件检查impalad的健康状况,并不断传递它的发现给每个impalad。它由一个statestored守护进程代表,仅仅需要运行在集群的一个节点上。如果一个impala节点掉线了,statestore通知所有其他节点以便未来的查询可以避免向该坏节点发送请求。

Kudu

Kudu是由Cloudera开源的存储引擎,可以同时提供低延迟的随机读写和高效的数据分析能力。Kudu支持水平扩展,使用Raft协议进行一致性保证,并且与Cloudera Impala和Apache Spark等当前流行的大数据查询和分析工具结合紧密。

master

负责管理元数据。这些元数据包括 talbet 的基本信息,位置信息。 Master 还作为负载均衡服务器,监听 Tablet Server 的健康状态。对于副本数过低的 Tablet , Master 会在起 replication 任务来提高其副本数。 Master 的所有信息都在内存中 cache ,因此速度非常快。每次查询都在百毫秒级别。 Kudu 支持多个 Master ,不过只有一个 active Master ,其余只是作为灾备,不提供服务。

tablet

Tablet上存了 10~100 个 Tablets ,每个 Tablet 有 3 (或 5 )个副本存放在不同的 Tablet Server 上,每个 Tablet 同时只有一个 leader 副本,这个副本对用户提供修改操作,然后将修改结果同步给 follower 。 Follower 只提供读服务,不提供修改服务。副本之间使用 raft 协议来实现 High Availability ,当 leader 所在的节点发生故障时, followers 会重新选举 leader 。根据官方的数据,其 MTTR 约为 5 秒,对 client 端几乎没有影响。 Raft 协议的另一个作用是实现 Consistency 。 Client 对 leader 的修改操作,需要同步到 N/2+1 个节点上,该操作才算成功。

Solr

一个高性能,基于Lucene的全文检索服务器。Solr对Lucene进行了扩展,提供了比Lucene更为丰富的查询语言,同时实现了可配置、可扩展,并对查询性能进行了优化,并且提供了一个完善的功能管理界面,是一款非常优秀的全文检索引擎。从Solr 4.0版本开始,支持SolrCloud模式,该模式下能够进行集中式的配置信息、近实时搜索、自动容错等功能。

Solr Server

Solr的服务端。

Key-Value Store Indexer
该组件是Hbase到Solr生成索引的中间工具,在CDH5.3.2中的Key-Value Indexer使用的是Lily HBase NRT Indexer服务。

Lily Hbase Indexer

Lily Hbase Indexer是一款灵活的、可扩展的、高容错的、事务性的,并且近实时的处理HBase列索引数据的分布式服务软件。

Oozie

提供了对开源Hadoop组件的任务编排、执行的功能。以Java Web应用程序的形式运行在Java servlet容器(如:Tomcat)中,并使用数据库来存储工作流定义、当前运行的工作流实例(含实例的状态和变量)。

Oozie Server

Oozie的服务端。

Spark

基于内存进行计算的分布式计算框架。在迭代计算的场景下,数据处理过程中的数据可以存储在内存中,提供了比MapReduce高10到100倍的计算能力。Spark可以使用HDFS作为底层存储,使用户能够快速地从MapReduce切换到Spark计算平台上去。Spark提供一站式数据分析能力,包括小批量流式处理、离线批处理、SQL查询、数据挖掘等,用户可以在同一个应用中无缝结合使用这些能力。

History Server

在运行Spark应用程序的时候,driver会提供一个webUI用于展现应用程序的运行信息,但是该webUI随着应用程序的完成而关闭端口。

通过配置History Server,Spark应用程序在运行完应用程序之后,将应用程序的运行信息写入指定目录,而Spark history server可以将这些运行信息装载并以web的方式供用户浏览。

YARN

资源管理系统,它是一个通用的资源模块,可以为各类应用程序进行资源管理和调度。 YARN采用了Maser/Slave结构,其中Master实现为ResourceManager,负责整个集群的资源管理与调度; Slave实现为NodeManager,负责单个节点的资源管理与任务启动。

ApplicationMaster

一个监督任务,请求执行程序任务所需的资源。ApplicationMaster在每个应用程序的不同NodeManager上运行。ApplicationMaster请求容器,容器的大小由任务运行所需的资源调整。

ResourceManager

ResourceManager是整个YARN集群中最重要的组件之一,它的设计直接决定了系统的可扩展性、可用性和容错性等特点,它的功能较多,包括ApplicationMaster管理(启动、停止等)、NodeManager管理、Application管理、状态机管理等。

在YARN中,ResourceManager负责集群中所有资源的统一管理和分配,它接受来自各个节点(NodeManager)的资源汇报信息,并把这些信息按照一定的策略分配给各个应用程序(即ApplicationMaster)。

NodeManager

NodeManager是每个节点上的资源和任务管理器,一方面,它会定时地向ResourceManger汇报本节点上的资源使用情况和各个Container的运行状态;另一方面,它接收并处理来自ApplicationMaster的Container启动/停止等各种请求。

JobHistory Server

主要是向用户提供历史的mapred Job 查询。

ZooKeeper

Apache ZooKeeper 是用于维护和同步配置数据的集中服务。

Server

ZooKeeper服务端。

Flume

一个分布式、可靠和高可用的海量日志聚合系统,支持在系统中定制各类数据发送方,用于收集数据;同时,Flume提供对数据进行简单处理,并写入各种数据接受方(可定制)的能力。

Sqoop

连接传统关系型数据库和Hadoop的桥梁

可以把关系型数据库的数据导入到Hadoop与其相关的系统(HBase和Hive)

也可以把数据从Hadoop系统里抽取并导出到关系型数据库里

利用MapReduce加快数据传输速度,批处理方式进行数据传输

  • 7
    点赞
  • 37
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
TDH(大数据技术栈)和CDH(克鲁德霍尔兹数据平台)是两个常用的大数据解决方案的组件集合,下面对它们的各个组件进行比较。 Hadoop环境中,TDH和CDH都包括HDFS(分布式文件系统)和MapReduce(计算框架)组件。TDH和CDH都支持这两个核心组件,因此在这方面它们之间没有太大差异。 在数据管理方面,TDH包括Hive、HBase和Phoenix,而CDH包括Impala和Kudu。Hive是一种基于Hadoop的数据仓库工具,HBase是一种非关系型数据库,Phoenix是HBase的SQL层。Impala和Kudu则是基于Hadoop的数据分析和存储工具。因此,TDH在数据管理方面的组件更丰富一些。 在数据处理和计算方面,TDH包括Spark和Flink,而CDH则包括Spark和Hue。Spark是一种高速通用的分布式计算引擎,Flink是一种高性能的流式处理框架,Hue是一个用于大数据查询和可视化的Web界面。因此,TDH在数据处理和计算方面的组件更多样化。 两者在安全性和监控方面都有相应的组件。TDH和CDH都包括Kerberos和Ranger用于安全认证和权限管理,同时都有Cloudera Manager和Ambari用于集群监控和管理。 总体而言,TDH和CDH作为大数据解决方案,都提供了完善的组件集合来支持大规模的数据存储、处理和分析。TDH在数据管理和处理方面有更多的组件选择,更适用于需要更细粒度控制和更高性能的场景。CDH则更注重易用性和可视化,更适用于快速构建和管理大数据平台的场景。选择适合自己需求的方案需要综合考虑这些因素。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值