大数据与分布式计算PPT学习课件_第1页
大数据与分布式计算PPT学习课件_第2页
大数据与分布式计算PPT学习课件_第3页
大数据与分布式计算PPT学习课件_第4页
大数据与分布式计算PPT学习课件_第5页
已阅读5页,还剩59页未读 继续免费阅读

下载本文档

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

文档简介

大数据与分布式计算 1 HDFS HadoopDistributedFileSystem 2 1990年 一个普通的硬盘驱动器可存储1370MB的数据并拥有4 4MB s的传输速度 所以 只需五分钟的时间就可以读取整个磁盘的数据 20年过去了 1TB级别的磁盘驱动器是很正常的 但是数据传输的速度却在100MB s左右 所以它需要花两个半小时以上的时间读取整个驱动器的数据 从一个驱动器上读取所有的数据需要很长的时间 写甚至更慢 如何解决 磁盘损坏数据丢失怎么办 如果需要存储计算1000T数据怎么办 3 常用RAID技术 4 5 HDFS系统架构 6 7 什么是HDFS HadoopDistributedFileSystemHadoopDistributedFileSystem HDFS istheprimarystoragesystemusedbyHadoopapplications HDFScreatesmultiplereplicasofdatablocksanddistributesthemoncomputenodesthroughoutaclustertoenablereliable extremelyrapidcomputations 8 HDFS设计目标 HDFS以流式数据访问模式存储超大文件 运行于商用硬件集群上 9 超大文件流式数据访问一次写入多次读取商用硬件 10 不适合HDFS的场景 低延迟的数据访问大量小文件超过NameNode的处理能力多用户任意写入修改文件 11 HDFS为了做到可靠性 reliability 创建了多份数据块 datablocks 的复制 replicas 并将它们放置在服务器群的计算节点中 computenodes MapReduce就可以在它们所在的节点上处理这些数据了 12 设计目标 假设 节点失效是常态理想 1 任何一个节点失效 不影响HDFS服务2 HDFS可以自动完成副本的复制 13 HDFS主要组件的功能 14 文件 文件切分成块 默认大小64M 以块为单位 每个块有多个副本存储在不同的机器上 副本数可在文件生成时指定 默认3 NameNode是主节点 存储文件的元数据如文件名 文件目录结构 文件属性 生成时间 副本数 文件权限 以及每个文件的块列表以及块所在的DataNode等等DataNode在本地文件系统存储文件块数据 以及块数据的校验和可以创建 删除 移动或重命名文件 当文件创建 写入和关闭之后不能修改文件内容 15 分而治之 DivideandConquer 16 分而治之 DivideandConquer 17 分而治之 DivideandConquer 18 MapReduce 19 MapReduce 大规模数据处理 处理海量数据 1TB 上百 上千CPU实现并行处理简单地实现以上目的移动计算比移动数据更划算分而治之 DivideandConquer 20 MapReduce特性 自动实现分布式并行计算容错提供状态监控工具模型抽象简洁 程序员易用 21 MapReduce 它由称为map和reduce的两部分用户程序组成 然后利用框架在计算机集群上面根据需求运行多个程序实例来处理各个子任务 然后再对结果进行归并 22 23 WordCount 24 25 26 27 28 29 30 MapReduce 31 MapReduce 物理上 32 MapReduce 33 34 35 Hive 36 37 38 39 SQLSub queriesinfromclauseEqui joinsInnerLeft Right fullOuterMulti tableInsertMulti group by 40 ExtensibilityPluggableMap reducescriptsPluggableUserDefinedFunctionsPluggableUserDefinedTypesComplexobjecttypes ListofMapsPluggableDataFormatsApacheLogFormatColumnarStorageFormat 41 HiveQL Join INSERTOVERWRITETABLEpv usersSELECTpv pageid u ageFROMpage viewpvJOINuseruON pv userid u userid 42 HiveQL JoininMapReduce page view user pv users Map Reduce 43 了解Hive的意义 Hive是一个很方便的工具 一般的业务人员 就可以很快上手 M R任务的数量控制着语句的执行时间 如何减少M R的任务数量 在写HQL时我们能做什么 Hive如何把HQL转化为M Rjob Hive在转化过程中做了哪些优化 44 Driver Compiler Hadoop Hive架构Client Metastore 45 46 DriverCompiler Hadoop Hive执行流程 操作符 Operator 是Hive的最小处理单元 每个操作符处理代表HDFS操作或MR作业 编译器把HiveSQL转换成一组操作符Client Metastore 47 Hive操作符 操作符TableScanOperatorReduceSinkOperatorJoinOperatorSelectOperatorFileSinkOperatorFilterOperatorGroupByOperatorMapJoinOperatorLimitOperatorUnionOperator 描述从表中读取数据生成到reduce端的结果数据Join两份数据减少输出列生成结果 输出数据到文件过滤输入数据GroupBy分组操作MapJoinHint或者由优化器决定采用MapJoinLimit限制行数操作Union操作 48 Hive执行流程 Hive通过ExecMapper和ExecReducer来执行MapReduce任务 执行MapReduce时有两种模式 本地模式 分布式模式 DriverCompiler Hadoop Client Metastore 49 DriverCompiler Hadoop Hive编译器Client Metastore 50 Spark 51 Spark生态系统 52 Spark Spark是整个BDAS的核心组件 是一个大数据分布式编程框架 不仅实现了MapReduce的算子map函数和reduce函数及计算模型 还提供更为丰富的算子 如filter join groupByKey等 Spark将分布式数据抽象为弹性分布式数据集 RDD 实现了应用任务调度 RPC 序列化和压缩 并为运行在其上的上层组件提供API 其底层采用Scala这种函数式语言书写而成 并且所提供的API深度借鉴Scala函数式的编程思想 提供与Scala类似的编程接口 53 Spark任务处理流程 54 SparkSQL SparkSQL提供在大数据上的SQL查询功能 类似于Shark在整个生态系统的角色 它们可以统称为SQLonSpark 之前 Shark的查询编译和优化器依赖于Hive 使得Shark不得不维护一套Hive分支 而SparkSQL使用Catalyst做查询解析和优化器 并在底层使用Spark作为执行引擎实现SQL的Operator 用户可以在Spark上直接书写SQL 相当于为Spark扩充了一套SQL算子 这无疑更加丰富了Spark的算子和功能 同时SparkSQL不断兼容不同的持久化存储 如HDFS Hive等 为其发展奠定广阔的空间 55 SparkStreaming SparkStreaming通过将流数据按指定时间片累积为RDD 然后将每个RDD进行批处理 进而实现大规模的流数据处理 其吞吐量能够超越现有主流流处理框架Storm 并提供丰富的API用于流数据计算 56 GraphX GraphX基于BSP模型 在Spark之上封装类似Pregel的接口 进行大规模同步全局的图计算 尤其是当用户进行多轮迭代时 基于Spark内存计算的优势尤为明显 57 Tachyon Tachyon是一个分布式内存文件系统 可以理解为内存中的HDFS 为了提供更高的性能 将数据存储剥离JavaHeap 用户可以基于Tachyon实现RDD或者文件的跨应用共享 并提供高容错机制 保证数据的可靠性 58 Spark架构 59 Spark的基本组件 ClusterManager 在Standalone模式中即为Master 主节点 控制整个集群 监控Worker 在YARN模式中为资源管理器 Worker 从节点 负责控制计算节点 启动Executor或Driver 在YARN模式中为NodeManager 负责计算节点的控制 Driver 运行Application的main 函数并创建SparkContext 60 Executor 执行器 在workernode上执行任务的组件 用于启动线程池运行任务 每个Application拥有独立的一组Executors SparkContext 整个应用的上下文 控制应用的生命周期 RDD Spark的基本计算单元 一组RDD可形成执行的有向无环图RDDGraph DAGScheduler 根据作业 Job 构建基于Stage的DAG 并提交Stage给TaskScheduler TaskScheduler 将任务 Task 分发给Executor执行 61 SparkEnv 线程级别的上下文 存储运行时的重要组件的引用 SparkEnv内创建并包含如下一些重要组件的引用 MapOutPutTracker 负责Shuffle元信息的存储 BroadcastManager 负责广播变量的控制与元信息的存储 BlockManager 负责存储管理 创建和查找块 Metr

温馨提示

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

评论

0/150

提交评论