大数据技术基础组件介绍_第1页
大数据技术基础组件介绍_第2页
大数据技术基础组件介绍_第3页
大数据技术基础组件介绍_第4页
大数据技术基础组件介绍_第5页
已阅读5页,还剩155页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、大数据技术基础组件介绍1大数据背景facebook社交网络电子商务 淘宝、ebay微博、Apps移动互联21世纪是数据信息大发展的时代,移动 互联、社交网络、电子商务等极大拓展了互联 网的边界和应用范围,各种数据正在迅速膨胀 并变大。互联网(社交、搜索、电商)、移动互联网(微博)、物联网(传感器,智慧地球)、车 联网、GPS、医学影像、安全监控、金融(银 行、股市、保险)、电信(通话、短信)都在 疯狂产生着数据。信息爆炸已经开始引发变革。信息爆炸的学科如天文学和基因学,创造出了“大数据” 这个概念。如今,这个概念几乎应用到了所有人类发展的领域中。反映到数据量 上是什么情况?“网上一分钟,人间一

2、万年!”大数据的概念与定义1“大数据:或称巨量数据、海量数据、大资料,指 的是所涉及的数据量规模巨大到无法通过人工,在 合理时间内达到撷取、管理、处理、并整理成为人 类所能解读的信息。” 维基百科大数据的概念与定义2“大数据指的是大小超出常规的数据库工具 获取、存储、管理和分析能力的数据集。尺 寸并无主观度量。” 麦肯锡到底何为大数据?仅仅是 “大”?大数据的“4V”表征体量Volume多样性Variety价值密度Value速度Velocity非结构化数据的超大规模和增长 总数据量的8090%比结构化数据增长快10倍到50倍是传统数据仓库的10倍到50倍机器数据)大数据的异构和多样性很多不同形

3、式(文本、图像、视频、 无模式或者模式不明显不连贯的语法或句义s传统商务智大量的不相关信息对未来趋势与模式的可预测分析深度复杂分析(机器学习、人工智能V 能(咨询、报告等)实时分析而非批量式分析 数据输入、处理与丢弃 立竿见影而非事后见效Hadoop优点扩展无限可以不断的横向扩展,满足PB级需求高效充分利用集群的威力进行分布式高 速运算0102容错自动保存数据的多个副本,并且能 够自动将失败的任务重新分配低成本利用中低端机架式服务器部署03041Google的数据中心使用廉价的Linux PC机组成集群,在上面运行各种应用。核心组件是3个:1、GFS(Google File System)。一

4、个分布式文件系统,隐藏下层负载均衡,冗余复制等细节。2、MapReduce。Google发现大多数分布式运算可以抽象为MapReduce操作。Map是把输入Input 分解成中间的Key/Value对,Reduce把Key/Value合成最终输出Output。3、BigTable。一个大型的分布式数据库,这个数据库不是关系式的数据库。像它的名字一样,就是 一个巨大的表格,用来存储结构化的数据。GOOGLE的集群系统Hadoop的由来Hadoop概述Hadoop是一个开源的、可靠的、可扩展的分布式并行计算框架主要组成:分布式文件系统HDFS和MapReduce算法执行 语言:Java,支持多种编

5、程语言,如:Python、C+作者:Doug Cutting生活中,可能所有人都间接用过他的作品,他是Lucene、Nutch 、Hadoop等项目 的发起人。是他,把高深莫测的搜索技术形成产品,贡献给普罗大众;还是他,打造 了目前在云计算和大数据领域里如日中天的Hadoop。他是某种意义上的盗火者,他 就是Doug Cutting。Doug Cutting儿子的黄色大象玩具的名字HDFS分布式文件系统Redis基于内存/持久化的日志 型的Key-Value数据库Spark streaming 大规模流式 数据处理Storm 分布式实 时处理Samza 流式数据 处理工具Hive 类SQL数

6、据操作工PigR数据操统计分析、 作工具绘图的语言Mahou t算法库Impala 类SQL数据 操作工具Zookeeper分布式应用程序协调服务yarn资源管理器Oozie工作流引擎MapReduce 离线分布 式计算模 型数据集成 工具Kafka消息队列Sqoop结构数据集 成Flume日志文件采 集具Sparkcloudera和MapRCloudera和MapR的发行版是收费的,也有功 能阉割的免费版没有对产品收费通过提供支持服务和后期维护盈利Hortonworks主要的不同点apache AmbariClouderaMan ager Express(免费 版)配置版本控制 和历史记录支

7、持不支持二次开发支持不支持集成支持no (不支持redis kylin、es)维护依靠社区力量cloudera做了 一些定制开发, 自行维护或打 patch会离社区 越来越远权限控制ranger(相对简 单)sentry(复杂)视图定制支持创建自己 的视图,添加 自定义服务不支持集群使用管理工具大数据相关技术-Hadoop生态圈大数据事实标准Hadoop批处理 MapReduce数据库 HBasePig内存计算 SparkShark内存计算Streaming实时计算流处理 Storm消息队列 Kafka离线计算Hive资源管理 YARN分布式文件系统 HDFSHadoop基于X86服务器本地的

8、计算与存储资源提供了分布式并行计算和低成本存储,提供低时延、高并发的查询功能,集群可以扩展到上千台服务器。资源管理YARN:改进的YARN统一资源管理,在同一物理主机/虚拟主机和数据集上运行多种计算框架,包括离线计算、内存计算和实时计算。分布式文件系统HDFS:分布式文件系统,有较强的容错性,可在x86平台上运行,减少总体成本,可扩展,能构建大规模的应用离线计算:MapReduce是一种离线计算框架,将一个算法抽象成Map和Reduce两个阶段进行处理,适合数据密集型计算场景。内存计算:MapReduce计算框架不适合迭代计算和交互式计算,MapReduce是一种磁盘计算框架,而Spark则是

9、一种内存计算框架,它将数据尽可 能放到内存中以提高迭代应用和交互式应用的计算效率。实时计算:MapReduce也不适合进行流式计算、实时分析,比如广告点击计算等,而Storm则更擅长这种计算、它在实时性要远远好于MapReduce 计算框架。1组件介绍- HDFSHadoop本身不是数据库, 而他的基础是一个分布式的系统, 即HDFS.分布式文件系统分布式数据库。分布式系统:分布式系统是指利用多台计算机协同解决单台计算机所不 能解决的计算、存储等问题。分布式系统:分布式存储分布式计算。分布式存储:什么是分布式系 统组件介绍- HDFS组件介绍-分布式文件系统HDFSHDFS (Hadoop D

10、istributed File System)是Google GFS 的开源版本, 一个高度容错 的分布式文件系统, 适合部 署在普通的机器上。HDFS能 够提供高吞吐量的数据访问, 支持大文件存储, 非常适合 大规模数据集上的应用。组件介绍- HDFS提供分布式存储机制, 提供可线性增长的海量存储能力自动数据冗余, 无须使用Rai d , 无须另行备份副本( rep l i ca) : 为数据提供冗余, 在不同的机 器上, 持久化存储同一份数据, 当一个机器上的数据丢失时, 可以从其他副本上读到数据。副 本是解决数据丢失的唯一手段。副本一致性: 简单的说, 一份数据有N个副本, 要求这N个副

11、 本是一样的, 用户无论读到哪一个副本, 都是正确的数据。为进一步分析计算提供数据基础组件介绍- HDFS什么是分布式文件系统 H D F S将固定于某个地点的某个文件系统, 扩展到任意多个地点/ 多个文件系统, 众多的节点组成一个文件系统网 络。每个节点可以分布在不同的地点, 通过网络进行节点间的通信和数据传输。人们在使用分布式文件系 统时, 无需关心数据是存储在哪个节点上、或者是从哪个节点从获取的, 只需要像使用本地文件系统一样 管理和存储文件系统中的数据。硬件错误是常态。因此需要冗余流式数据访问。即数据批量读取而非随机读写, H a do o p 擅长做的是数据分析而不是事务处理简单一致

12、性模型。为了降低系统复杂度, 对文件采用一次性写多次读的逻辑设计, 即是文件一经写入, 关闭, 就再也不能修改程序采用“ 数据就近” 原则分配节点执行 能够处理超大的文件;流式访问数据。H D F S能够很好的处理“ 一次写入, 多次读写” 的任务。也就是说, 一个数据集一旦 生成了, 就会被复制到不同的存储节点中, 然后响应各种各样的数据分析任务请求。在多数情况下, 分析任务都会涉及到数据集中的大部分数据。所以, H D F S请求读取整个数据集要比读取一条记录更 加高效。可以运行在比较廉价的商用机器集群上。H D F S 设计基础与目标 组件介绍- HDFSHDFS设计基础与主要特点设计目

13、标错误检测和快速自动恢复硬件故障是常态而非异常 为流式数据访问优化,批处理针对支持大数据集单个文件大小有数GB或者TB 可提供高聚合带宽访问可能够扩展至数千个节点 简化“一致性”模型一次写入、多次读,写入过程可能并发 移动“计算”比移动“数据”更便宜主要特点使用低成本存储和服务器构建 存放PB级别的海量数据高可扩展性,实际生产环境扩展至4000个节点高可靠性和容错性,数据自动复制,可自我修复 高带宽,高并发访问,对于延迟不敏感面向批处理数据分布与复制组件介绍- HDFSHadoopGoogle中文相关解释NameNodeMaster主控服务器整个文件系统的大脑,它提供整个文件系统的目录信息,并

14、且管理各个数据 服务器Secondary NameNode无备份主控服务 器备用的主控服务器,在身后默默的拉取着主控服务器的日志,等待主控服务 器牺牲后转正。DataNodeChunk Server数据服务器分布式文件系统中的每一个文件,都被切分陈若干数据块,每一个数据块都 被存储在不同的服务器上,这些服务器称之为数据服务器。BlockChunk数据块每个文件都会被切分陈若干块,每一块都有连续的一段文件内容,是存储的 基本单位,在这里统一称作数据块。Packet无数据包客户端写文件的时候,不是一个字节一个字节写入文件系统的,而是累计到 一定数量后,往文件系统中写入,每发送一次的数据,都称为一个

15、数据包。Chunk无传输块将数据切成更小的块,每一个块配上一个奇偶校检码,这样的块,就是传输 块。组件介绍- HDFSName NodeData NodeSecondary 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

16、e负责所在物理节点的存储管理一次写入, 多次读取( 不修改)文件由数据块组成, 典型的块大小是64 M B数据块尽量散布道各个节点Dat anode启动时, 遍历本地文件系统, 产生一 份hdf s 数据块和本地文件的对应关系列表( b l oc k r epor t ) 汇报给nam enode组件介绍- HDFSH D F S 数据块数据块: 文件被划分为固定大小的数据块进行存 储数据块缺省为64M,远大于一般文件系统数据块大 小减少元数据的量有利于顺序读写(在磁盘上顺序存放)可靠性:数据通过副本的方式保存在多个数据节点 上默认3个副本副本选择会考虑机架信息以防止整个机架同时掉电系统设计优

17、化: 用热备管理节点来保存文件系统 元数据和管理/ 协调组件介绍- HDFSD a t a N o d e 备份策略举例 对于H D F S 而言, 由N a m e n o d e 负责这个集群的数据备份和分配, 在分配 过程中, 主要考虑下面两个因素:二 数据安全: 在某个节点发生故障时, 不会丢失数据备份;三 网络传输开销: 在备份数据同步过程中, 尽量减少网络传输中的带宽开销;四 这两个因素看起来是有些相互矛盾的: 想要保证数据安全, 那么就尽量把数 据备份到多台节点上, 但是就需要向多个节点传输数据; 想要减少网络传输 开销, 那么就尽可能把数据备份到一个节点内部或者一个机架内部,

18、因为系 统内部的数据传输速度会远大于网络传输的速度。右图展示了H D F S 中的r a c k ( 机架) 概念, 一个r a c k 内部数据传输速 度远大于r a c k 之间的传输。 对于每个数据备份, 比如A 要放在R a c k 1 中, 在写入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

19、将FileA写入到HDFS上。 HDFS按默认配置。HDFS分布在三个机架上Rack1, Rack2,Rack3。Client将FileA按64M分块。分 成两块,block1和Block2;Client向nameNode发送写数据 请求,如图蓝色虚线。NameNode节点,记录block信 息。并返回可用的DataNode, 如粉色虚线NameNode选择的文件存放节 点Block1: host2,host1,host3 Block2: host7,host8,host4HDFS写入策略举例组件介绍- HDFS原理:NameNode对RackAware机架 另一种备份策略。若client为D

20、ataNode节点,那 存储block时,规则为:副本1,同client的节点上;副本2,不同机架节点上;副本3,同第二个副本机架 的另一个节点上;其他副本 随机挑选。若client不为DataNode节点, 那存储block时,规则为:副本1,随机选择一个节点 上;副本2,不同副本1,机架上;副本3,同副本2相同的另一 个节点上;其他副本随机挑 选。组件介绍- HDFSHDFS写入策略举例 2019 流式写入过程:NameNode选择的文件存放节点 Block1: host2,host1,host3 Block2: host7,host8,host4将64M的block1按64k的packa

21、ge划分; 然后将第一个package发送给host2;host2接收完后,将第一个package发送给host1,同时client想 host2发送第二个package;host1接收完第一个package后,发送给host3,同时接收host2发 来的第二个package。以此类推,如图红线实线所示,直到将block1发送完毕。 host2,host1,host3向NameNode,host2向Client发送通知,说 “消息发送完了”。如图粉红颜色实线所示。client收到host2发来的消息后,向namenode发送消息,说我写完 了。这样就真完成了。如图黄色粗实线发送完block1后

22、,再向host7,host8,host4发送block2,如图蓝 色实线所示。发送完block2后,host7,host8,host4向NameNode,host7向Client发送通知,如图浅绿色实线所示。client向NameNode发送消息,说我写完了,如图黄色粗实线。 这样就完毕了。组件介绍- HDFSHDFS写入策略举例 2019 通过写过程,我们可以了解到:写1T文件,我们需要3T的存储,3T的网络流量 带宽。在执行读或写的过程中,NameNode和 DataNode通过HeartBeat进行保存通信,确定 DataNode活着。如果发现DataNode死掉了,就 将死掉的Data

23、Node上的数据,放到其他节点去。 读取时,要读其他节点去。挂掉一个节点,没关系,还有其他节点可以备份; 甚至,挂掉某一个机架,也没关系;其他机架上, 也有备份。组件介绍- HDFSHDFS写入策略举例HDFS读策略举例组件介绍- HDFS心跳机制Namenode周期性从datanode接收心跳信号和 块报告Namenode根据块报告验证元数据没有按时发送心跳的datanode会被标记为宕机, 不会再给它任何I/O请求如果datanode失效造成副本数量下降,并且低 于预先设置的阈值,namenode会检测出返些 数据块,并在合适的时机迕行重新复制引发重新复制的原因迓包括数据副本本身损坏、 磁

24、盘错误,复制因子被增大等组件介绍- HDFSHDFS心跳机制Namenode周期性从datanode接收心 跳信号和块报告Namenode根据块报告验证元数据没有按时发送心跳的datanode会被标 记为宕机,不会再给它任何I/O请求如果datanode失效造成副本数量下降, 并且低于预先设置的阈值,namenode 会检测出返些数据块,并在合适的时 机迕行重新复制引发重新复制的原因迓包括数据副本 本身损坏、磁盘错误,复制因子被增 大等组件介绍- HDFS回收站 回收站二 删除文件时, 其实是放入回收站/ t r a s h 三 回收站里的文件可以快速恢复四 可以设置一个时间阈值, 当回收站里

25、文件的存放时间超过返个阈值, 就被彻底删除, 并且释放占用的数 据块在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重启集群组件介绍- HDFS负载均衡作用:当节点出现故障,戒新增加节点时,数据

26、块分布可能丌均匀,负载 均衡可以重新平衡各个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 内存。当前来说, 数百万的文件还是可行的, 当扩展到数十亿时, 对于当前的硬件水平来 说就没法实现了。还有一个问题就是,

27、 因为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 将会有更多的事情做, 而线程的管理开销也将减小很多。改进策略: 要想让H D F S 能处

28、理好小文件, 有不少方法。利用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 是为了处理大型数据集分析任务的, 主要是为达到大数据分析, 所以延迟时间可能会较高。 改进策略: 对于那些有

29、低延时要求的应用程序, 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面向行: 同一行的数据存储在一起, 即连续存储。S eq u en ce F i l e, M ap F i l e, Avro Dat af i l e。采 用

30、这种方式, 如果只需要访问行的一小部分数据, 亦需要将整行读入内存, 推迟序列化一定程度上 可以缓解这个问题, 但是从磁盘读取整行数据的开销却无法避免。面向行的存储适合于整行数据需 要同时处理的情况。面向列: 整个文件被切割为若干列数据, 每一列数据一起存储。P arq u et , RCF i l e, O RCF i l e。面 向列的格式使得读取数据时, 可以跳过不需要的列, 适合于只处于行的一小部分字段的情况。但是 这种格式的读写需要更多的内存空间, 因为需要缓存行在内存中组件介绍- HDFSHive的Record Columnar File,这种类型的文件先将数据按行划分成Row G

31、roup,在Row Group内部,再将数据按列划分存储。其结构如下:列存储实例组件介绍- HDFS组件介绍- HDFS组件介绍- HDFS单纯的Hadoop指HDFS和MapReduce以及一些原生组件.Hadoop生态圈指整个衍生出来的的技术生态系统.Cloudera Manager 5介绍Cloudera manager的核心是管理服务器,该服务器承载管理控制台的Web服务器和应用 程序逻辑,并负责安装软件,配置,启动和停止服务,以及管理上的服务运行群集.Cloudera manager有四大功能:管理:对集群进行管理,如添加、删除节点等操作。监控:监控集群的健康情况,对设置的各种指标和

32、系统运行情况进行全面监控。诊断:对集群出现的问题进行诊断,对出现的问题给出建议解决方案。集成:对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 operato

33、rs to 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 ti

34、me from 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. T

35、his primer 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 : 存储配置和监视信息。通常情况下, 多个逻辑数据库在一

36、个或 多个数据库服务器上运行。例如, 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 IC

37、loudera 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 : 让每个玩家数自己手中的牌有几张是黑桃, 然后把这个数目汇报给你 R e d u c e :

38、 你把所有玩家告诉你的数字加起来, 得到最后的结论人代表计算机, 因为他们同时工作, 所以他们是个集群。我们假设数据已经在每台计算机上了 也就是说把牌分发出去并不是 M a p R e d u c e 的一步。( 事实上, 在计算机集群中如何存储文件是H a d o o p 的真正核心。) 通过把牌分给多个玩家并且让他们各自数数, 你就在并行执行运算, 因为每个玩家都在同时计数。这同时把这项工作变成了分布式的, 因为多个不同的人在解决同一个问题的过程中并不需要知道他们的邻居在干什么。二 通过告诉每个人去数数, 你对一项检查每张牌的任务进行了映射。 你不会让他们把黑桃牌递给你, 而是让他们把你想

39、要的东西化简 为一个数字。三 另外一个有意思的情况是牌分配得有多均匀。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 , 这 是一个令人惊讶的简单却又威 力巨大的模型。适合用 M a p R e d u c e 来处理的数据 集( 或任务) 有一个基本要求: 待处理的数据集可以分

40、解成许 多小的数据集, 而且每一个小 数据集都可以完全并行地进行 处理。Map(映射):对一些独立元素组成的 列表的每一个元素进行指定的操作,可 以高度并行。Reduce(化简):对一个列表的元素进 行合并。一个简单的MapReduce程序只需 要指定map()、reduce()、输入和 输出,剩下的事由框架帮你搞定。组件介绍- M a p R e d u c e 介绍组件介绍- M a p R e d u c e 介绍为离线数据分析而设计, 基本上是个利用数据并行性进行分布运算而后汇总结果的计 算框架分析问题能够被并行化, 且输入数据集可以被切分一个M ap函数, 在第一阶段计算 对一个Re

41、duc 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 ) ) - 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 1goo

42、d 1good 1good 1good 1guy 1is 1is 1is 1is 1man 1man 1the 1this 1today 1weather 1a 1good 5guy 1is 4man 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、一个完整的数据分析系统通常都是由大量

43、任务单元组成: shell脚本程序,java程序,mapreduce程序、hive脚本等2、各任务单元之间存在时间先后及前后依赖关系3、为了很好地组织起这样的复杂执行计划,需要一个工作流调度系统来调度执行;例如,我们可能有这样一个需求,某个业务系统每天产生20G原始数据,我们每天都要对其进行处理,处理步骤如下所示:1、 通过Hadoop先将原始数据同步到HDFS上;2、 借助MapReduce计算框架对原始数据进行转换,生成的数据以分区表的形式存储到多张Hive表中;3、 需要对Hive中多个表的数据进行JOIN处理,得到一个明细数据Hive大表;4、 将明细数据进行复杂的统计分析,得到结果报

44、表信息;5、 需要将统计分析得到的结果数据同步到业务系统中,供业务调用使用。组件介绍- 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是由Linkedin开源的一个批量工作

45、流任务调度器。用于在一个工作流内以一个特定的顺序运行一组工作和 流程。Azkaban定义了一种KV文件格式来建立任务之间的依赖关系,并提供一个易于使用的web用户界面维护和 跟踪你的工作流。它有如下功能特点:Web用户界面方便上传工作流方便设置任务之间的关系调度工作流认证/授权(权限的工作)能够杀死并重新启动工作流模块化和可插拔的插件机制项目工作区工作流和任务的日志记录和审计组件介绍- H a d o o p 工作流调度A z k a b a n A z k a b a n 是由L i n k e d i n 开源的一个批量工作流任务调度器。 用于在一个工作 流内以一个特定的顺序运行一组工作和

46、流程。 A z k a b a n 定义了一种K V 文件格式 来建立任务之间的依赖关系, 并提供一个易于使用的w e b 用户界面维护和跟踪你 的工作流。它有如下功能特点:W e b 用户界面方便上传工作流方便设置任务之间的关系调度工作流认证/ 授权( 权限的工作)能够杀死并重新启动工作流模块化和可插拔的插件机制项目工作区工作流和任务的日志记录和审计现 实 需 求现实业务中处理数据时不可能只包含一个MR操作现实业务中经常有:定时任务、定数任务、数据促发任务流“M1”“R1”“Java1”“Pig1”“Hive1”“M2”“R2” “Java2”“Mahout”常见处理数据流程每天夜里凌晨执行

47、的任务、每周定时执行一次任务、文件夹下10个文件时执行任务促 发前一个任务和后一个相关、前错、后不执行错发生后、人不可能每时都监控、邮件、短信报错机制错 误 机 制组件介绍- O o z i e 介绍 2019概 念-工 作 过 程向Oozie提交任 务Oozie托管这个计 算流程Oozie概念:组织各种工作流的引擎Oozie向hadoop提交任 务“MR1”“Java1”“Pig1”“Hive1”“MR2” “Java2”“Mahout”写入workflow.xml组件介绍- O o z i e 介绍功 能-特 性组织各种工作流功能托管工作流由于需要存储工作流信息,为提供 高可靠性,确保任务

48、配置不丢失, Oozie内部使用数据库来存储工作流 相关信息默认Derby数据库 也可以使用MySQL、PostgreSQL、Oracle等服务器模式 常规模式特 性不仅可以执行Pig、MapReduce、Hive只要给Jar包HBase等等 都可执行组件介绍- O o z i e 介绍功能二者都可以调度mapreduce,pig,java,脚本工作流任务 二者都可以定时履行工作流任务工作流定义Azkaban使用Properties文件定义工作流 Oozie使用XML文件定义工作流工作流传参Azkaban支持直接传参,例如$inputOozie支持参数和EL表达式,例如$fs:dirSize(

49、myInputDir)定时履行Azkaban的定时履行任务是基于时间的 Oozie的定时履行任务基于时间和输入数据资源管理Azkaban有较严格的权限控制,如用户对工作流进行读/写/履行等操作 Oozie暂无严格的权限控制工作流履行Azkaban有三种运行模式:、solo server mode:最简单的模式,数据库内置的H2数据库,管理服务器和执行服务器都在一个进程中运行,任务量不大项目可 以采用此模式。、 two server mode:数据库为mysql,管理服务器和执行服务器在不同进程,这种模式下,管理服务器和执行服务器互不影响、multiple executor mode:该模式下,

50、执行服务器和管理服务器在不同主机上,且执行服务器可以有多个 Oozie作为工作流服务器运行,支持多用户和多工作流工作流管理Azkaban支持阅读器和ajax方式操作工作流Oozie支持命令行、HTTP REST、Java API、阅读器操作工作流工作流定义:Oozie是通过xml定义的而Azkaban为properties来定义。部署过程:Oozie的部署太虐心了。有点难。同时它是从Yarn上拉任务日志。Azkaban中如果有任务出现失败,只要进程有效执行,那么任务就算执行成功,这是BUG,但是Oozie能有效的检测任务的成功与失败。操作工作流:Azkaban使用Web操作。Oozie支持We

51、b,RestApi,Java API操作。权限控制:Oozie基本无权限控制,Azkaban有较完善的权限控制,入用户对工作流读写执行操作。 Oozie的action主要运行在hadoop中而Azkaban的actions运行在Azkaban的服务器中。记录workflow的状态:Azkaban将正在执行的workflow状态保存在内存中,Oozie将其保存在Mysql中。出现失败的情况:Azkaban会丢失所有的工作流,但是Oozie可以在继续失败的工作流运行。Redis是一个开源的使用ANSI C语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value数据库,并 提供多种语言的

52、API。定义Redis是一个key-value存储系统。和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、 list(链表)、set(集合)、zset(sorted set -有序集合)和hash(哈希类型)。这些数据类型都支持push/pop、 add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的。在此基础上,redis支持各种不同方式的排序。与memcached一样,为了保证效率,数据都是缓存在内存中。区别的是redis会周期性的把更新 的数据写入磁盘或者把修改操作写入追加的记录文件,并且在此基础上实现了master-sla

53、ve(主从)同步。Redis 是一个高性能的key-value数据库。 redis的出现,很大程度补偿了memcached这类key/value存储的不 足,在部 分场合可以对关系数据库起到很好的补充作用。它提供了Java,C/C+,C#,PHP,JavaScript,Perl, Object-C,Python,Ruby,Erlang等客户端,使用很方便。 1Redis支持主从同步。数据可以从主服务器向任意数量的从服务器上同步,从服务器可以是关联其他从服务器的主 服务器。这使得Redis可执行单层树复制。存盘可以有意无意的对数据进行写操作。由于完全实现了发布/订阅机 制,使得从数据库在任何地方

54、同步树时,可订阅一个频道并接收主服务器完整的消息发布记录。同步对读取操作 的可扩展性和数据冗余很有帮助。现 实 需 求-概 念程序员使用Pig脚本指挥HDFS、MapReduce程序员 使用 MR处 理 HDFS里数据太慢要求高Pig是用来 处理大规 模数据集 的脚本语 言平台编写MR程 序组织处理流编写MR程 序组织处理流提交任务数据类型语 法基本数据类型:int、long、float、double、chararray和bytearray复杂数据类型:字符串或基本类型与字符串的组合运算符(1)算术运算符:+,-,*,/,%(2)三目运算符:?:(3)比较运算符:=,!=函数操作名称功能LOA

55、D载入待处理数据FOREACH逐行处理TupleFILTER过滤不满足条件的TupleDUMP将结果打印到屏幕STORE将结果保存到文件现 实 需 求Hive的设计目的即是让Facebook内精通SQL的 分析师能够以类SQL的方式查询存放在HDFS的 大规模数据集Hive起源于Facebook内部信息处理平台。由于 需要处理大量新兴社会网络数据,考虑到扩展性,Facebook最终选择hadoop作为存储和处理平 台编写MR程 序组织处理流提交任务功能好熟悉和Pig有和区别概 念-工 作 过 程程序员或分析师 根据业务逻辑写 好数据流脚本向Hive提交任务Hive会将写好的 数据流处理脚本 翻

56、译成多个Hdfs,Map和Reduce 操作Hive向hadoop提交任 务Hive是一个构建在hadoop上的数据仓库框 架 2019架 构采用类SQL语 法,提供快速开 发能力(不会 Java代码也可以 玩运算)避免了去写MapReduce 这样的运算框架,减少 开发学习成本(避免 MapReduce运算写断 手)Hive它不是数据库, 它是数据仓库,相当 于Hadoop的一个客 户端,将数据映射成 一张表,提供了类似 SQL的查询功能Hive这个东西有何用hive在Hadoop生态圈中的位置本质存储适合场景将HQL语句转化成 MapReduce任务运 行离线分析数据,延迟比 较大(一般用

57、于周期性 的执行一些分析任务) 不适合在线分析底层存储使用 HDFShive的重要特性Hive与Hadoop的关系Hive是一个建立在hadoop/hbase之上的数据仓库,用于 分析结构化海量数据采用HDFS或HBase进行数据存储采用Map/Reduce进行数据操作基本特点:提供类似于SQL的查询语言针对海量数据的高性能查询和分析系统命令行接口,JDBC/ODBC提供灵活的扩展性复杂数据类型,扩展函数和脚本等理 解功能好熟悉Hive和Pig有和区 别(1)hive有metadata,pig无(2)hive面向sql、Pig面向MapReduce(1)pig是没有开发好的hive(2)fac

58、ebook误解hadoop用 途狭义的理解PigPig是一种编程语言,它简化了Hadoop常见的工作任务。Pig可加载数据、表达转换数据以及存储最 终结果。Pig内置的操作使得半结构化数据变得有意义(如日志文件)。同时Pig可扩展使用Java中添 加的自定义数据类型并支持数据转换。HiveHive在Hadoop中扮演数据仓库的角色。Hive添加数据的结构在HDFS(hive superimposes structure on data in HDFS),并允许使用类似于SQL语法进行数据查询。与Pig一样,Hive的核心 功能是可扩展的。P i gP i g 是一种编程语言, 它简化了H a

59、d o o p 常见的工作任务。P i g 可加载数据、表达转换数据以及存储最终结果。P i g 内置的操作使得半结构化 数据变得有意义( 如日志文件) 。同时P i g 可扩展使用J a v a 中添加的自定义数据类型并支持数据转换。H i v eH i v e 在H a d o o p 中扮演数据仓库的角色。H i v e 添加数据的结构在H D F S ( h i v e s u p e r i m p o s e s s t r u c t u r e o n d a t a i n H D F S ) , 并允 许使用类似于S Q L 语法进行数据查询。与P i g 一样, H i

60、v e 的核心功能是可扩展的。 2019 执行器:将HQL翻译过来的Mapreduce任务放 到Yarn平台上执行8解析器:HQL语句5编译器:将HQL语句翻译成MapReduce代码7存储:HDFS中的一些映射文件4优化器:优化SQL语句6终端命令行CLI: 这是主要的一种使用方式,一般不用 JDBC,因为比较麻烦3用户接口:Client、JDBC/ODBC、WebGUI2元数据:Metastore1通常是存储在Mysql/derby中Hive基本组成CLI为shell命令行JDBC/ODBC是Hive的 JAVA实现,与传统数据 库JDBC类似;WebGUI是通过浏览器 访问Hive。Hi

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论