1、大数据技术基础组件介绍1大数据背景facebook社交网络社交网络电子商务电子商务 淘宝、ebay微博、Apps移动互联移动互联21世纪是数据信息大发展的时代,移动世纪是数据信息大发展的时代,移动 互联、社交网络、电子商务等极大拓展了互互联、社交网络、电子商务等极大拓展了互联联 网的边界和应用范围,各种数据正在迅速网的边界和应用范围,各种数据正在迅速膨胀膨胀 并变大。并变大。互联网(社交、搜索、电商)、移动互联网(微博)、物联网(传感器,智慧地球)、车 联网、GPS、医学影像、安全监控、金融(银 行、股市、保险)、电信(通话、短信)都在 疯狂产生着数据。信息爆炸已经开始引发变革。信息爆炸的学科
2、如天文学和基因学,创造出了“大数据” 这个概念。如今,这个概念几乎应用到了所有人类发展的领域中。反映到数据量 上是什么情况?“网上一分钟,人间一万年!”大数据的概念与定义大数据的概念与定义1“大数据:或称巨量数据、海量数据、大资料,指 的是所涉及的数据量规模巨大到无法通过人工,在 合理时间内达到撷取、管理、处理、并整理成为人 类所能解读的信息。” 维基百科大数据的概念与定义大数据的概念与定义2“大数据指的是大小超出常规的数据库工具 获取、存储、管理和分析能力的数据集。尺 寸并无主观度量。” 麦肯锡到底何为大数据到底何为大数据?仅仅是 “大”?大数据的大数据的“4V”表表征征体量Volume多样
3、性Variety价值密度Value速度Velocity非结构化数据的超大规模和增长 总数据量的8090%比结构化数据增长快10倍到50倍是传统数据仓库的10倍到50倍机器数据)大数据的异构和多样性很多不同形式(文本、图像、视频、 无模式或者模式不明显不连贯的语法或句义s传统商务智大量的不相关信息对未来趋势与模式的可预测分析深度复杂分析(机器学习、人工智能V 能(咨询、报告等)实时分析而非批量式分析 数据输入、处理与丢弃 立竿见影而非事后见效Hadoop优优点点扩展无限可以不断的横向扩展,满足可以不断的横向扩展,满足PB级需求级需求高效充分利用集群的威力进行分布式充分利用集群的威力进行分布式高高
4、 速运速运算算0102容错自动保存数据的多个副本,并且自动保存数据的多个副本,并且能能 够自动将失败的任务重新分够自动将失败的任务重新分配配低成本利用中低端机架式服务器部利用中低端机架式服务器部署署03041Google的数据中心使用廉价的Linux PC机组成集群,在上面运行各种应用。核心组件是3个:1、GFS(Google File System)。一个分布式文件系统,隐藏下层负载均衡,冗余复制等细节。2、MapReduce。Google发现大多数分布式运算可以抽象为MapReduce操作。Map是把输入Input 分解成中间的Key/Value对,Reduce把Key/Value合成最终
5、输出Output。3、BigTable。一个大型的分布式数据库,这个数据库不是关系式的数据库。像它的名字一样,就是 一个巨大的表格,用来存储结构化的数据。GOOGLE的集群系统Hadoop的由的由来来Hadoop概概述述Hadoop是一个开源的、可靠的、可扩展的分布式并行计算框架主要组成:分布式文件系统HDFS和MapReduce算法执行 语言:Java,支持多种编程语言,如:Python、C+作者:Doug Cutting生活中,可能所有人都间接用过他的作品,他是Lucene、Nutch 、Hadoop等项目 的发起人。是他,把高深莫测的搜索技术形成产品,贡献给普罗大众;还是他,打造 了目前
6、在云计算和大数据领域里如日中天的Hadoop。他是某种意义上的盗火者,他 就是Doug Cutting。Doug Cutting儿子的黄色大象玩具的名字HDFS分布式文件系统Redis基于内存/持久化的日志 型的Key-Value数据库Spark streaming 大规模流式 数据处理Storm 分布式实 时处理Samza 流式数据 处理工具Hive 类SQL数 据操作工PigR数据操统计分析、 作工具绘图的语言Mahou t算法库Impala 类SQL数据 操作工具Zookeeper分布式应用程序协调服务yarn资源管理器Oozie工作流引擎MapReduce 离线分布 式计算模 型数据集
7、成 工具Kafka消息队列Sqoop结构数据集 成Flume日志文件采 集具Sparkcloudera和MapRCloudera和MapR的发行版是收费的,也有功 能阉割的免费版没有对产品收费通过提供支持服务和后期维护盈利Hortonworks主要的不同点主要的不同点apache AmbariClouderaMan ager Express(免费免费 版版)配置版本控制 和历史记录支持不支持二次开发支持不支持集成支持no (不支持redis kylin、es)维护依靠社区力量cloudera做了 一些定制开发, 自行维护或打 patch会离社区 越来越远权限控制ranger(相对简 单)sen
8、try(复杂)视图定制支 持 创 建 自 己 的 视 图 , 添 加 自定义服务不支持集群使用管理工具大数据相关技术大数据相关技术-Hadoop生态生态圈圈大数据事实标准大数据事实标准Hadoop批处理 MapReduce数据库 HBasePig内存计算 SparkShark内存计内存计算算Streaming实时计实时计算算流处理 Storm消息队列 Kafka离线计离线计算算Hive资源管理 YARN分布式文件系统 HDFSHadoop基于X86服务器本地的计算与存储资源提供了分布式并行计算和低成本存储,提供低时延、高并发的查询功能,集群可以扩展到上千台服务器。资源管理资源管理YARN:改进
9、的YARN统一资源管理,在同一物理主机/虚拟主机和数据集上运行多种计算框架,包括离线计算、内存计算和实时计算。分布式文件系统分布式文件系统HDFS:分布式文件系统,有较强的容错性,可在x86平台上运行,减少总体成本,可扩展,能构建大规模的应用离线计算离线计算:MapReduce是一种离线计算框架,将一个算法抽象成Map和Reduce两个阶段进行处理,适合数据密集型计算场景。内存计算内存计算:MapReduce计算框架不适合迭代计算和交互式计算,MapReduce是一种磁盘计算框架,而Spark则是一种内存计算框架,它将数据尽可 能放到内存中以提高迭代应用和交互式应用的计算效率。实时计算实时计算
10、:MapReduce也不适合进行流式计算、实时分析,比如广告点击计算等,而Storm则更擅长这种计算、它在实时性要远远好于MapReduce 计算框架。1组件介绍组件介绍- HDFSHadoop本身不是数据库, 而他的基础是一个分布式的系统, 即HDFS.分布式文件系统分布式数据库。分 布 式 系 统分 布 式 系 统 :分布式系统是指利用多台计算机协同解决单台计算机所不 能解决的计算、存储等问题。分 布 式 系 统分 布 式 系 统 :分布式存储分布式计算。分 布 式 存 储分 布 式 存 储 :什么是分布式系什么是分布式系 统统组件介绍组件介绍- HDFS组件介绍组件介绍-分布式文件系统分
11、布式文件系统HDFSHDFS (Hadoop Distributed File System)是Google GFS 的开源版本, 一个高度容错 的分布式文件系统, 适合部 署在普通的机器上。HDFS能 够提供高吞吐量的数据访问, 支持大文件存储, 非常适合 大规模数据集上的应用。组件介绍组件介绍- HDFS提供分布式存储机制提供分布式存储机制, 提供可线性增长的海量存储能提供可线性增长的海量存储能力力自动数据冗余自动数据冗余, 无须使用无须使用Rai d , 无须另行备份副本无须另行备份副本( rep l i ca) : 为数据提供冗余为数据提供冗余, 在不同的在不同的机机 器器上上, 持久
12、化存储同持久化存储同一一份数据份数据, 当当一一个机器上的数据丢失时个机器上的数据丢失时, 可以从其他副本上读到数据。可以从其他副本上读到数据。副副 本是本是解决数据丢失的唯解决数据丢失的唯一一手段。副本手段。副本一一致性致性: 简单的说简单的说, 一一份数据有份数据有N个副本个副本, 要求这要求这N个个副副 本是本是一一样样的的, 用户无论读到哪用户无论读到哪一一个副本个副本, 都是正确的数据都是正确的数据。为进为进一一步分析计算提供数据基步分析计算提供数据基础础组件介绍组件介绍- HDFS什么是分布式文件系统什么是分布式文件系统 H D F S将固定于某个地点的某个文件系统, 扩展到任意多
13、个地点/ 多个文件系统, 众多的节点组成一个文件系统网 络。每个节点可以分布在不同的地点, 通过网络进行节点间的通信和数据传输。人们在使用分布式文件系 统时, 无需关心数据是存储在哪个节点上、或者是从哪个节点从获取的, 只需要像使用本地文件系统一样 管理和存储文件系统中的数据。硬件错误是常态。因此需要冗硬件错误是常态。因此需要冗余余流式数据访问。即数据批量读取而非随机读写流式数据访问。即数据批量读取而非随机读写, H a do o p 擅长做的是数据分析而不是事务处擅长做的是数据分析而不是事务处理理简单简单一一致性模型。为了降低系统复杂度致性模型。为了降低系统复杂度, 对文件采用对文件采用一一
14、次性写多次读的逻辑设计次性写多次读的逻辑设计, 即是文件即是文件一一经写入经写入, 关闭关闭, 就再也不能修就再也不能修改改程序采用程序采用“ 数据就近数据就近” 原则分配节点执原则分配节点执行行 能够处理超大的文件能够处理超大的文件;流式访问数据。流式访问数据。H D F S能够很好的处理能够很好的处理“ 一一次写入次写入, 多次读写多次读写” 的任务。也就是说的任务。也就是说, 一一个数据集个数据集一一旦旦 生生成了成了, 就会被复制到不同的存储节点中就会被复制到不同的存储节点中, 然后响应各种各样的数据分析任务请求。在多数情况下然后响应各种各样的数据分析任务请求。在多数情况下, 分分析任
15、务都会涉及到数据集中的大部分数据。所以析任务都会涉及到数据集中的大部分数据。所以, H D F S请求读取整个数据集要比读取请求读取整个数据集要比读取一一条记录条记录更更 加加高效高效。可以运行在比较廉价的商用机器集群上可以运行在比较廉价的商用机器集群上。H D F S 设计基础与目设计基础与目标标 组件介绍组件介绍- HDFSHDFS设计基础与主要特点设计基础与主要特点设计目设计目标标错误检测和快速自动恢复硬件故障是常态而非异常 为流式数据访问优化,批处理针对支持大数据集单个文件大小有数GB或者TB 可提供高聚合带宽访问可能够扩展至数千个节点 简化“一致性”模型一次写入、多次读,写入过程可能
16、并发 移动“计算”比移动“数据”更便宜主要特主要特点点使用低成本存储和服务器构建 存放PB级别的海量数据高可扩展性,实际生产环境扩展至4000个节点高可靠性和容错性,数据自动复制,可自我修复 高带宽,高并发访问,对于延迟不敏感面向批处理数据分布与复制数据分布与复制组件介绍组件介绍- HDFSHadoopGoogle中文相关解释NameNodeMaster主控服务器整个文件系统的大脑,它提供整个文件系统的目录信息,并且管理各个数据 服务器Secondary NameNode无备份主控服务 器备用的主控服务器,在身后默默的拉取着主控服务器的日志,等待主控服务 器牺牲后转正。DataNodeChun
17、k Server数据服务器分布式文件系统中的每一个文件,都被切分陈若干数据块,每一个数据块都 被存储在不同的服务器上,这些服务器称之为数据服务器。BlockChunk数据块每个文件都会被切分陈若干块,每一块都有连续的一段文件内容,是存储的 基本单位,在这里统一称作数据块。Packet无数据包客户端写文件的时候,不是一个字节一个字节写入文件系统的,而是累计到 一定数量后,往文件系统中写入,每发送一次的数据,都称为一个数据包。Chunk无传输块将数据切成更小的块,每一个块配上一个奇偶校检码,这样的块,就是传输 块。组件介绍组件介绍- HDFS Name Node Data Node Seconda
18、ry Name Nod e组件介绍组件介绍- HDFS记录N a m e N o d e管理文件系统的命名空间每个文件数据块在各个D a t a n o d e 上 的位置和副本信息协调客户端对文件的访问记录命名空间内 的改动或空间本身属性的改动N a m e n o d e 使用事务日志记录H D F S 元数 据的变化。使用映像文件存储文件系统的 命名空间, 包括文件映射, 文件属性等组件介绍组件介绍- HDFSD a t a N o d e负责所在物理节点的存储管理一次写入, 多次读取( 不修改)文件由数据块组成, 典型的块大小是64 M B数据块尽量散布道各个节点Dat anode启动
19、时, 遍历本地文件系统, 产生一 份hdf s 数据块和本地文件的对应关系列表( b l oc k r epor t ) 汇报给nam enode组件介绍组件介绍- HDFSH D F S 数据数据块块数据块: 文件被划分为固定大小的数据块进行存 储数据块缺省为64M,远大于一般文件系统数据块大 小减少元数据的量有利于顺序读写(在磁盘上顺序存放)可靠性:数据通过副本的方式保存在多个数据节点 上默认3个副本副本选择会考虑机架信息以防止整个机架同时掉电系统设计优化: 用热备管理节点来保存文件系统 元数据和管理/ 协调组件介绍组件介绍- HDFSD a t a N o d e 备份策略举备份策略举例
20、例 对 于 H D F S 而 言 , 由 N a m e n o d e 负 责 这 个 集 群 的 数 据 备 份 和 分 配 , 在 分 配 过 程 中 , 主 要 考 虑 下 面 两 个 因 素 :二 数 据 安 全 : 在 某 个 节 点 发 生 故 障 时 , 不 会 丢 失 数 据 备 份 ;三 网 络 传 输 开 销 : 在 备 份 数 据 同 步 过 程 中 , 尽 量 减 少 网 络 传 输 中 的 带 宽 开 销 ;四 这 两 个 因 素 看 起 来 是 有 些 相 互 矛 盾 的 : 想 要 保 证 数 据 安 全 , 那 么 就 尽 量 把 数 据 备 份 到 多 台
21、 节 点 上 , 但 是 就 需 要 向 多 个 节 点 传 输 数 据 ; 想 要 减 少 网 络 传 输 开 销 , 那 么 就 尽 可 能 把 数 据 备 份 到 一个 节 点 内 部 或 者 一个 机 架 内 部 , 因 为 系 统 内 部 的 数 据 传 输 速 度 会 远 大 于 网 络 传 输 的 速 度 。右 图 展 示 了 H D F S 中 的 r a c k ( 机 架 ) 概 念 , 一个 r a c k 内 部 数 据 传 输 速 度 远 大 于 r a c k 之 间 的 传 输 。 对 于 每 个 数 据 备 份 , 比 如 A 要 放 在 R a c k 1 中
22、 , 在 写 入 H D F S 时 首 先 会 在 R a c k 1 中 创 建 一个 备 份 , 同 时 在 另 一个 R a c k 2 中 也 创 建 一个 备 份 。 这 样 做 在 一定 程 度 上 兼 顾 了 数 据 安 全 和 网 络传 输 的 开 销 。N a m e N o d e 具 有 R a c k A w a r e 机 架 感 知 功 能 , 这 个 可 以 配 置 。组件介绍组件介绍- HDFS有一个文件FileA,100M大小。 Client将FileA写入到HDFS上。 HDFS按默认配置。HDFS分布在三个机架上Rack1, Rack2,Rack3。 C
23、lient将FileA按64M分块。分 成两块,block1和Block2; Client向nameNode发送写数据 请求,如图蓝色虚线。 NameNode节点,记录block信 息。并返回可用的DataNode, 如粉色虚线 NameNode选择的文件存放节 点Block1: host2,host1,host3 Block2: host7,host8,host4HDFS写入策略举写入策略举例例组件介绍组件介绍- HDFS原理:NameNode对RackAware机架 另一种备份策略。若client为DataNode节点,那 存储block时,规则为: 副本1,同client的节点上; 副本
24、2,不同机架节点上; 副本3,同第二个副本机架 的另一个节点上;其他副本 随机挑选。若client不为DataNode节点, 那存储block时,规则为: 副本1,随机选择一个节点 上; 副本2,不同副本1,机架上; 副本3,同副本2相同的另一 个节点上;其他副本随机挑 选。组件介绍组件介绍- HDFSHDFS写入策略举写入策略举例例 2019 流式写入过程:NameNode选择的文件存放节点 Block1: host2,host1,host3 Block2: host7,host8,host4将64M的block1按64k的package划分; 然后将第一个package发送给host2;h
25、ost2接收完后,将第一个package发送给host1,同时client想 host2发送第二个package;host1接收完第一个package后,发送给host3,同时接收host2发 来的第二个package。以此类推,如图红线实线所示,直到将block1发送完毕。 host2,host1,host3向NameNode,host2向Client发送通知,说 “消息发送完了”。如图粉红颜色实线所示。client收到host2发来的消息后,向namenode发送消息,说我写完 了。这样就真完成了。如图黄色粗实线发送完block1后,再向host7,host8,host4发送block2,
26、如图蓝 色实线所示。发送完block2后,host7,host8,host4向NameNode,host7向Client发送通知,如图浅绿色实线所示。client向NameNode发送消息,说我写完了,如图黄色粗实线。 这样就完毕了。组件介绍组件介绍- HDFSHDFS写入策略举写入策略举例例 2019 通过写过程,我们可以了解到:1. 写1T文件,我们需要3T的存储,3T的网络流量 带宽。2. 在执行读或写的过程中,NameNode和 DataNode通过HeartBeat进行保存通信,确定 DataNode活着。如果发现DataNode死掉了,就 将死掉的DataNode上的数据,放到其他
27、节点去。 读取时,要读其他节点去。3. 挂掉一个节点,没关系,还有其他节点可以备份; 甚至,挂掉某一个机架,也没关系;其他机架上, 也有备份。组件介绍组件介绍- HDFSHDFS写入策略举写入策略举例例HDFS读策略举读策略举例例组件介绍组件介绍- HDFS心跳机制心跳机制Namenode周期性从datanode接收心跳信号和 块报告Namenode根据块报告验证元数据没有按时发送心跳的datanode会被标记为宕机, 不会再给它任何I/O请求如果datanode失效造成副本数量下降,并且低 于预先设置的阈值,namenode会检测出返些 数据块,并在合适的时机迕行重新复制引发重新复制的原因迓
28、包括数据副本本身损坏、 磁盘错误,复制因子被增大等组件介绍组件介绍- HDFSHDFS心跳机制Namenode周期性从datanode接收心 跳信号和块报告Namenode根据块报告验证元数据没有按时发送心跳的datanode会被标 记为宕机,不会再给它任何I/O请求如果datanode失效造成副本数量下降, 并且低于预先设置的阈值,namenode 会检测出返些数据块,并在合适的时 机迕行重新复制引发重新复制的原因迓包括数据副本 本身损坏、磁盘错误,复制因子被增 大等组件介绍组件介绍- HDFS回收回收站站 回收站二 删除文件时, 其实是放入回收站/ t r a s h 三 回收站里的文件可
29、以快速恢复四 可以设置一个时间阈值, 当回收站里文件的存放时间超过返个阈值, 就被彻底删除, 并且释放占用的数 据块在c o n f / c o r e - s i t e . x m l 添 加 配 置 : f s . t r a s h . i n t e r v a l 1 0 0 8 0 N u m b e r o f m i n u t e s b e t w e e n t r a s h c h e c k p o i n t s . I f z e r o , t h e t r a s h f e a t u r e i sd i s a b l e d重启集群组件介绍组件介
30、绍- HDFS负载均负载均衡衡作用:当节点出现故障,戒新增加节点时,数据块分布可能丌均匀,负载 均衡可以重新平衡各个datanode上数据块的分布Unified fonts组件介绍组件介绍- HDFS 因为N a m e n o d e 把文件系统的元数据放置在内存中, 所以文件系统所能容纳的文件数目是由N a m e n o d e 的内存大小来决 定。一般来说, 每一个文件、文件夹和B l o c k 需要占据1 5 0 字节左右的空间, 所以, 如果你有1 0 0 万个文件, 每一个占据一 个B l o c k , 你就至少需要3 0 0 M B 内存。当前来说, 数百万的文件还是可行的
31、, 当扩展到数十亿时, 对于当前的硬件水平来 说就没法实现了。还有一个问题就是, 因为M a p t a s k 的数量是由s p l i t s 来决定的, 所以用M R 处理大量的小文件时, 就会 产生过多的M a p t a s k , 线程管理开销将会增加作业时间。举个例子, 处理1 0 0 0 0 M 的文件, 若每个s p l i t 为1 M , 那就会有 1 0 0 0 0 个M a p t a s k s , 会有很大的线程开销; 若每个s p l i t 为1 0 0 M , 则只有1 0 0 个M a p t a s k s , 每个M a p t a s k 将会有更多
32、的事情做, 而线程的管理开销也将减小很多。改进策略: 要想让H D F S 能处理好小文件, 有不少方法。利用S e q u e n c e F i l e 、 M a p F i l e 、H a r 等方式归档小文件, 这个方法的原理就是把小文件归档起来管理, H B a s e 就是基于此的.二 不支持多用户写入以及任意修改文件: 在H D F S 的一个文件中只有一个写入者, 而且写操作只能在文件末尾完成, 即只能执 行追加操作。目前H D F S 还不支持多个用户对同一文件的写操作, 以及在文件任意位置进行修改。三 不适合低延迟数据访问: H D F S 是为了处理大型数据集分析任务
33、的, 主要是为达到大数据分析, 所以延迟时间可能会较高。 改进策略: 对于那些有低延时要求的应用程序, H B a s e 是一个更好的选择。通过上层数据管理项目来尽可能地弥补这个不 足。在性能上有了很大的提升, 它的口号就是g o e s r e a l t i m e 。使用缓存或多m a s t e r 设计可以降低c l i e n t 的数据请求压 力, 以减少延时。还有就是对H D F S 系统内部的修改, 这就得权衡大吞吐量与低延时了。组件介绍组件介绍- HDFSHDFS文件操作常用命文件操作常用命令令组件介绍组件介绍- HDFS面向行面向行: 同同一一行的数据存储在行的数据存储
34、在一一起起, 即连续存储。即连续存储。S eq u en ce F i l e, M ap F i l e, Avro Dat af i l e。采采 用用这种方式这种方式, 如果只需要访问行的如果只需要访问行的一一小部分数据小部分数据, 亦需要将整行读入内存亦需要将整行读入内存, 推迟序列化推迟序列化一一定程度定程度上上 可可以缓解这个问题以缓解这个问题, 但是从磁盘读取整行数据的开销却无法避免。面向行的存储适合于整行数据但是从磁盘读取整行数据的开销却无法避免。面向行的存储适合于整行数据需需 要要同时处理的情况同时处理的情况。面向列面向列: 整个文件被切割为若干列数据整个文件被切割为若干列数
35、据, 每每一一列数据列数据一一起存储。起存储。P arq u et , RCF i l e, O RCF i l e。面面 向列的格式使得读取数据时向列的格式使得读取数据时, 可以跳过不需要的列可以跳过不需要的列, 适合于只处于行的适合于只处于行的一一小部分字段的情况。但小部分字段的情况。但是是 这种格式的读写需要更多的内存空间这种格式的读写需要更多的内存空间, 因为需要缓存行在内存因为需要缓存行在内存中中组件介绍组件介绍- HDFSHive的Record Columnar File,这种类型的文件先将数据按行划分成Row Group,在Row Group内部,再将数据按列划分存储。其结构如下
36、:列存储实列存储实例例组件介绍组件介绍- HDFS组件介绍组件介绍- HDFS组件介绍组件介绍- HDFS1. 单纯的Hadoop指HDFS和MapReduce以及一些原生组件.2. Hadoop生态圈指整个衍生出来的的技术生态系统.Cloudera Manager 5介介绍绍Cloudera manager的核心是管理服务器,该服务器承载管理控制台的Web服务器和应用 程序逻辑,并负责安装软件,配置,启动和停止服务,以及管理上的服务运行群集.Cloudera manager有四大功能:1管理:对集群进行管理,如添加、删除节点等操作。2监控:监控集群的健康情况,对设置的各种指标和系统运行情况进
37、行全面监控。3诊断:对集群出现的问题进行诊断,对出现的问题给出建议解决方案。4集成:对hadoop的多组件进行整合Cloudera Manager is an end-to-end application for managing CDH clusters. Cloudera Manager sets the standard for enterprise deployment by delivering granular visibility into and control over every part of the CDH cluster empowering operators to
38、 improve performance, enhance quality of service, increase compliance and reduce administrative costs. With Cloudera Manager, you can easily deploy and centrally operate the complete CDH stack and other managed services. The application automates the installation process, reducing deployment time fr
39、om weeks to minutes; gives you a cluster-wide, real-time view of hosts and services running; provides a single, central console to enact configuration changes across your cluster; and incorporates a full range of reporting and diagnostic tools to help you optimize performance and utilization. This p
40、rimer introduces the basic concepts, structure, and functions of Cloudera Manager. 需要一台机器作为C l o u d e r a M a n a g e r S e r v e r二 A g e n t : 安装在每台主机上。该代理负责启动和停止的过程, 拆包配置, 触发装置和监控主机。三 M a n a g e m e n t S e r v i c e : 由一组执行各种监控, 警报和报告功能角色的 服务。四 D a t a b a s e : 存储配置和监视信息。通常情况下, 多个逻辑数据库在一个或 多个
41、数据库服务器上运行。例如, C l o u d e r a 的管理服务器和监控角色使用 不同的逻辑数据库。五 C l o u d e r a R e p o s i t o r y : 软件由C l o u d e r a 管理分布存储库。 六 C l i e n t s : 是用于与服务器进行交互的接口:具有网页版的可视化界面, A d m i n C o n s o l e - 基于W e b 的用户界面 与管理员管理集群和C l o u d e r a 管理。A P I - 与开发人员创建自定义的C l o u d e r a M a n a g e r 应用程序的A P ICloude
42、ra Manager 5介介绍绍Cloudera Manager 5示示例例Cloudera Manager 5示示例例Cloudera Manager 5示示例例大数据相关技术大数据相关技术NoSQL数据库技术的演进数据库技术的演进SMP与与MPP组件介绍组件介绍- M a p R e d u c e 介介绍绍M a p R e d u c e 你想数出一百张好几副扑克混在一起的牌堆里面中有多少张黑桃。直观方式是一张一张检查并且数出有多少张是黑桃?M a p R e d u c e 方法则是:M a p : 给在座的所有玩家中分配这摞牌M a p : 让每个玩家数自己手中的牌有几张是黑桃,
43、然后把这个数目汇报给你 R e d u c e : 你把所有玩家告诉你的数字加起来, 得到最后的结论人代表计算机, 因为他们同时工作, 所以他们是个集群。我们假设数据已经在每台计算机上了 也就是说把牌分发出去并不是 M a p R e d u c e 的一步。( 事实上, 在计算机集群中如何存储文件是H a d o o p 的真正核心。) 通过把牌分给多个玩家并且让他们各自数数, 你就在并行执行运算, 因为每个玩家都在同时计数。这同时把这项工作变成了分布式的, 因为多个不同的人在解决同一个问题的过程中并不需要知道他们的邻居在干什么。二 通过告诉每个人去数数, 你对一项检查每张牌的任务进行了映射
44、。 你不会让他们把黑桃牌递给你, 而是让他们把你想要的东西化简 为一个数字。三 另外一个有意思的情况是牌分配得有多均匀。M a p R e d u c e 假设数据是洗过的( s h u f f l e d ) - 如果所有黑桃都分到了一个人手上, 那他数牌的过程可能比其他人要慢很多。M a p R e d u c e 是是 G o o g l e 公公 司的核心计算模型司的核心计算模型, 它将复它将复杂杂 的运行于大规模集群上的并的运行于大规模集群上的并行行 计算过程高度的抽象到了计算过程高度的抽象到了两两个个 函数函数, M a p 和和 R e d u c e , 这这 是是一一个令人惊
45、讶的简单却个令人惊讶的简单却又又威威 力巨大的模型。适合力巨大的模型。适合用用 M a p R e d u c e 来处理的数来处理的数据据 集集( 或任务或任务) 有有一一个基本要求个基本要求: 待处理的数据集可以分解成待处理的数据集可以分解成许许 多小的数据集多小的数据集, 而且每而且每一一个个小小 数据集都可以完全并行数据集都可以完全并行地进地进行行 处理处理。Map(映射):对一些独立元素组成的 列表的每一个元素进行指定的操作,可 以高度并行。Reduce(化简):对一个列表的元素进 行合并。一个简单的MapReduce程序只需 要指定map()、reduce()、输入和 输出,剩下的
46、事由框架帮你搞定。组件介绍组件介绍- M a p R e d u c e 介介绍绍组件介绍组件介绍- M a p R e d u c e 介介绍绍为离线数据分析而设计为离线数据分析而设计, 基本上是个利用数据并行性进行分布运算而后汇总结果的基本上是个利用数据并行性进行分布运算而后汇总结果的计计 算框算框架架分析问题能够被并行化, 且输入数据集可以被切分一个M ap函数, 在第一阶段计算 对一个Reduc e函数, 在第二阶段用于汇总M ap函数的结果M a p( k 1 , v 1 ) - l i s t( k 2 , v 2 )R e d u c e( k 2 , l i s t ( v 2
47、 ) ) - l i s t ( k 3 , v 3 )The weather is goodThis guyis a good manToday is goodGood man is goodthe 1weather 1is 1good 1today 1is 1good 1this 1guy 1is 1a 1good 1man 1good 1man 1is 1good 1a 1good 1good 1good 1good 1good 1guy 1is 1is 1is 1is 1man 1man 1the 1this 1today 1weather 1a 1good 5guy 1is 4man
48、 2the 1this 1today 1weather 1组件介绍组件介绍- M a p R e d u c e 介介绍绍这是这是一一个通过个通过M R 计计算算 单词出现次数的例单词出现次数的例子子组件介绍组件介绍- M a p R e d u c e 介介绍绍组件介绍组件介绍- M a p R e d u c e 介介绍绍M R 计算的计算的任任 务划分流务划分流程程组件介绍组件介绍- H a d o o p 工作流调度系工作流调度系统统为什么需要工作流调度系统为什么需要工作流调度系统1、一个完整的数据分析系统通常都是由大量任务单元组成: shell脚本程序,java程序,mapreduc
49、e程序、hive脚本等2、各任务单元之间存在时间先后及前后依赖关系3、为了很好地组织起这样的复杂执行计划,需要一个工作流调度系统来调度执行;例如,我们可能有这样一个需求,某个业务系统每天产生20G原始数据,我们每天都要对其进行处理,处理步骤如下所示:1、 通过Hadoop先将原始数据同步到HDFS上;2、 借助MapReduce计算框架对原始数据进行转换,生成的数据以分区表的形式存储到多张Hive表中;3、 需要对Hive中多个表的数据进行JOIN处理,得到一个明细数据Hive大表;4、 将明细数据进行复杂的统计分析,得到结果报表信息;5、 需要将统计分析得到的结果数据同步到业务系统中,供业务
50、调用使用。组件介绍组件介绍- H a d o o p 工作流调度系工作流调度系统统工作流调度实现方式工作流调度实现方式简单的任务调度:直接使用linux的crontab来定义;复杂的任务调度:开发调度平台或使用现成的开源调度系统,比如ooize、azkaban等常见工作流调度系统常见工作流调度系统市面上目前有许多工作流调度器在hadoop领域,常见的工作流调度器有Oozie, Azkaban,Cascading,Hamake等组件介绍组件介绍- H a d o o p 工作流调度系工作流调度系统统组件介绍组件介绍- H a d o o p 工作流调度工作流调度AzkabanAzkaban是由是