暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

【谈大数据】CDH6.x学习笔记(角色简介)

CTO老王 2020-03-09
429


作者:麦斯威尔

擅长:Hadoop平台、持续集成、Docker容器技术

简介:Hadoop大数据CDH平台运维人员,喜欢钻研Linux系统的“奇淫技巧”

—————— BEGIN ——————


Cloudera Management

Cloudera Manager是一个用于管理CDH群集的应用程序。

该应用程序使安装过程自动化,将部署时间从几周缩短到几分钟;

提供运行主机和服务的集群范围的实时视图;

提供单个中央控制台,以在整个群集中实施配置更改;

整合了各种报告和诊断工具,以帮助优化性能和利用率。

Event Server

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

 

Host Monitor

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

 

Activity Monitor

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

 

Service Monitor

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

 

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节点承担 namenodeHDFS集群主节点,负责维护整个HDFS文件系统的目录树以及每一个路径(文件)对应的block块信息(blockid,以及所在的datanode服务器)

文件的各个block的存储管理由datanode节点承担 datanodeHDFS集群从节点,每一个block都可以在多个datanode上存储多个副本(副本参数也可以通过参数设置dfs.replication)  

HDFS适应一次写入,多次读出的场景,且不支持文件的修改。

NameNode

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

 

DataNode

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

 

SecondaryNameNode

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

 

Standby Namenode

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

 

JournalNode

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

 

WebHCat Server

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

 

Hive Metastore Server

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

 

HiveServer2

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

Hue

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

 

Load Balancer

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

Hue Server

Hue的服务端。

Impala

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

 

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

 

Impala Daemon

Impala daemon(也称为impalad)在安装Impala的每个节点上运行,与DataNode运行在同一节点上,由Impalad进程表示,一个datanode对应一个impalad。这是ImpalaServer的核心组件,即运行在集群每个node上的impalad守护进程。它负责读写数据文件,接受impala-shellHueJDBCODBC传来的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 ImpalaApache 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的全文检索服务器。SolrLucene进行了扩展,提供了比Lucene更为丰富的查询语言,同时实现了可配置、可扩展,并对查询性能进行了优化,并且提供了一个完善的功能管理界面,是一款非常优秀的全文检索引擎。从Solr 4.0版本开始,支持SolrCloud模式,该模式下能够进行集中式的配置信息、近实时搜索、自动容错等功能。

 

Solr Server

Solr的服务端。

 

Key-Value Store Indexer

该组件是HbaseSolr生成索引的中间工具,在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

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

 

History Server

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

 

通过配置History ServerSpark应用程序在运行完应用程序之后,将应用程序的运行信息写入指定目录,而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的运行状态;另一方面,它接收并处理来自ApplicationMasterContainer启动/停止等各种请求。

 

JobHistory Server

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

Flume

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

 

Sqoop

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

 

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

 

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

 

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




推荐阅读  点击标题可跳转
【大厂】基于rabbitMQ消息中心技术方案
【干货】一篇文章讲透数据挖掘
【干货】微服务设计的基础知识


                             

关注公众号「对话程序员」
了解你关注的话题

 关注抖音号「对话程序员」
了解你关注的视频直播

您的每一次点击,我们都在看

文章转载自CTO老王,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论