Cloudera Hadoop生态概要总结

1 CDH

1.1 生态体系

CDH生态体系中,自底向上归纳为下面四大部分:

  • 数据迁移层:通过批量加载处理(Sqoop)、流式实时传输(Flume、Kafka)将数据移入移出Hadoop;
  • 数据存储层:主要包括具有高批处理性的HDFS,具有高随机读写性的HBase,以及批处理性和随机读写性介于两者之间的Kudu;
  • 资源管理与安全管制层:由Yarn提供资源管理,Sentry提供安全管制;
  • 数据处理分析层
    • 数据处理主要由适用于大型数据集离线批处理的MapReduce,以及基于内存快速处理的Spark完成;
    • 数据分析主要由适用对于大数据集的批处理作业Hive,以及提供实时交互查询的Impala;
    • 此外还包括直接使用简单自然语言访问数据的搜索服务Apache Solr;


      CDH.png

1.2 各层相关组件概念及原理

1.2.1 数据迁移层

Sqoop
  • 用于将关系型数据库与Hadoop生态(HDFS,HBase,Hive)中的数据进行相互转移;

  • 通过MapReduce任务(主要为Map),映射传输关系型数据库与Hadoop中的数据;

  • 基于JDBC和关系型数据库进行交互;


    Sqoop.png
Kafka
  • 一个用于构建实时数据管道和流应用程序的分布式消息系统;

  • 客户端和服务器之间的通信是通过TCP协议完成;

  • 作为一个集群运行在一个或多个可跨多个数据中心的服务器上;

  • Kafka集群以Topic的形式存储流记录信息;


    Kafka.png
Flume
  • 一个分布式日志采集系统,同时也采集网络流量数据、社交媒体生成的数据、电子邮件消息等多种信息;

  • Event为数据传输的基本单元,由载有数据的字节数组和可选的headers头部信息构成;

  • 使用事务的方式确保Event的可靠传输;

  • Agent 是一个 (JVM) 进程;


    Flume.png

1.2.2 数据存储层

HDFS
  • 分布式文件存储系统,主从式架构(Master/Slave);

  • 每个文件具有多个备份;

  • 包括NameNode、SecondaryNameNode、DataNode三大角色;

  • NameNode主要负责文件系统命名控件的管理,存储文件目录的Metadata元数据信息等;

  • SecondaryNameNode主要用于备份NameNode中的元数据信息,加快集群启动时间等;

  • DataNode主要负责存储客户端发送的Blok数据块,执行数据块的读写操作;

  • NameNode与DataNode通过心跳机制进行通信;


    HDFS.png
HBase
  • 分布式NoSQL数据库,列存储;

  • 客户端访问数据时采用三级寻址:ZooKeeper文件---> -ROOT-表---> .META.表--->用户数据表;

  • 查询时采用惰性缓存机制,当客户端通过已有的缓存去具体的region服务器中没有找到时,再通过三级寻址,将最新的地址进行缓存;

  • 数据先写入MemStore缓存,并在Hlog中记录,系统周期性的将MemStore中的内容写入StoreFile文件,当StoreFile过大时,会触发分裂操作;


    HBase.png

1.2.3 资源管理与安全管制层

YARN
  • 资源管理调度框架,将资源管理、作业调度/监控分成两个独立的守护进程,分别由ResourceManager、ApplicationMaster负责;
  • ResourceManager 包括Scheduler、ApplicationsManager;
  • Scheduler 负责为应用程序分配资源;
  • ApplicationsManager 负责处理提交的作业,与NodeManager通信 ,要求其为应用程序启动ApplicationMaster,并在任务失败时重新启动ApplicationMaster的服务;
  • NodeManager 为所在机器的代理,负责监视Container资源使用情况,并将其报告给Scheduler;
  • Container 包括CPU、内存、磁盘、网络等资源,是一个动态资源划分单位,具体资源量根据提交的应用程序的需求而变化;
  • ApplicationMaster 为运行应用程序向ResourceManager申请资源、与NodeManager通信以启动或者停止任务、监控所有任务的运行情况;
  • CDH动态资源池默认采用的DRF( Dominant Resource Fairness)计划策略。当内存不够时,空虚的 CPU 不会再被分配任务;当CPU 不够时,多余的内存也不会再启动任务


    Yarn.png
Sentry
  • a pluggable authorization engine

  • 可自定义授权规则以验证用户或应用程序对Hadoop资源的访问请求

  • 高度模块化(pluggable ),可以支持Hadoop中各种数据模型的授权

  • Sentry Server 管理授权元数据,提供安全检索和操作元数据的接口

  • Sentry Plugin 提供操作存储在Sentry Server中的授权元数据的接口,以及 authorization policy engine


    Sentry.png

1.2.4 数据处理分析层

MapReduce
  • 离线分布式计算框架;

  • 分而治之,任务分解,结果汇总;

  • 自定义map、reduce函数,输入输出为<key, value>键值对;

  • 用户编写MR程序,通过Client提交到JobTracker,JobTracker将任务分发到TaskTrackers执行,JobTracker与TaskTracker间通过心跳机制通信;

MapReduce.png
Hive
  • 基于Hadoop的一个数据仓库工具,适用于离线批处理作业;
  • Hive 本身不存储数据,而是管理存储在HDFS上的数据,其主要是通过Hive Driver将用户的SQL语句解析成对应的MapReduce程序;
  • 不支持事务;
  • Metastore Database 独立的数据库,依赖于传统的RDBMS,如MySQL或PostgreSQL,保存有关Hive数据库、表、列、分区和Hadoop底层数据文件和HDFS块位置等的元数据;
  • Driver:包括编译器、优化器、执行器,根据用户编写的 Hive SQL 语句进行解析、编译优化、生成执行计划,然后调用Hadoop的MapReduce计算框架,形成对应的 MapReduce Job;
Hive.png
Impala
  • 对HDFS、HBase中的数据提供交互式SQL查询

  • Hive Metastore 存储Impala可访问数据的元数据信息 (Impala 中表的元数据存储借用的是 Hive中的Metastore)

  • Statestore 监控集群中各个Impala节点的健康状况,提供节点注册,错误检测等

  • Impala Daemon(Impalad) 运行在集群每个节点上的守护进程(与DataNode在同一主机上运行)。每个 Impalad 进程,都包含有Query Planner、Query Coordinator、Query Exec Engine三大模块

  • QueryPalnner 接收来自Clients的SQL语句,并解释成为执行计划

  • Query Coordinator 将执行计划进行优化和拆分,形成执行计划片段,并调度这些片段分发到各个节点上

  • Query Exec Engine 负责执行计划片段,最后返回中间结果,这些中间结果经过聚集之后最终返回给Clients

  • Hive 适合于长时间的批处理查询分析,而 Impala 适合于实时交互式 SQL 查询。 Hive本身并不执行任务的分析过程,而是依赖于MapReduce执行框架。而Impala没有使用 MapReduce 进行并行计算, Impala 把整个查询分析成一个执行计划树,而不是一连串的 MapReduce 任务, 它使用与商用并行关系数据库 MPP 中类似的查询机制

impala_arch.jpeg

2 Cloudera Manager

2.1 功能简述

  • 一个用于管理CDH群集的端到端的应用程序;
  • 自动化Hadoop安装过程, 缩短部署时间;
  • 提供实时的集群概况,例如节点、服务的运行状况;
  • 提供了集中的中央控制台对集群的配置进行更改;
  • 整合了各种报告和诊断工具,帮助优化性能和利用率;

2.2 整体架构

  • Server:Cloudera Manager的核心,管理Web服务器和应用程序逻辑,负责安装软件,配置,启动和停止服务,以及管理运行服务的集群;
  • Agent:安装在集群中的主机上, 负责启动和停止进程,解压缩配置,触发安装和监视主机;
  • Management Service: 执行各种监视,警报和报告等功能;
  • Database: 存储集群的配置、监控等信息;
  • Cloudera Repository: Cloudera Manager分发的软件仓库;
  • Clients:提供与Server交换的接口
    • Admin Console:管理员管理集群和Cloudera Manager的Web UI界面;
    • API:提供开发人员创建自定义的Cloudera Manager应用程序;


      cm_arch.png

参考资料

  • Cloudera Enterprise 6.2.x Document

  • 《Cloudera Hadoop 大数据平台实战指南》

  • 各组件官网(Sqoop,Kafka,Flume,Hadoop,Spark,Hive,Impala,Sentry,HBase)

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,053评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,527评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,779评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,685评论 1 276
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,699评论 5 366
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,609评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,989评论 3 396
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,654评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,890评论 1 298
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,634评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,716评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,394评论 4 319
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,976评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,950评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,191评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 44,849评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,458评论 2 342