大数据技术原理与应用.ppt_第1页
大数据技术原理与应用.ppt_第2页
大数据技术原理与应用.ppt_第3页
大数据技术原理与应用.ppt_第4页
大数据技术原理与应用.ppt_第5页
免费预览已结束,剩余47页可下载查看

下载本文档

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

文档简介

Chap02分布式处理软件架构Hadoop 提纲 2 1概述2 2Hadoop项目结构2 3Hadoop的安装与使用2 4Hadoop集群的部署与使用 2 2Hadoop项目结构 Hadoop的项目结构不断丰富发展 已经形成一个丰富的Hadoop生态系统 2 2Hadoop项目结构 HDFS是什么 分布式文件系统冗余存储面向大文件存储设计面向批量插入设计基于商用机器提供可靠的数据存储容忍部分节点故障 HDFS Refercece http hadoop apache org docs r1 0 4 hdfs design html HDFS系统架构图 HDFS相关术语 HDFS核心功能 读取文件流程 1 使用HDFSClient 向远程的Namenode发起RPC请求 2 Namenode会视情况返回文件的部分或者全部block列表 对于每个block Namenode都会返回有该block拷贝的datanode地址 3 4 HDFSClient选取离客户端最接近的datanode来读取block 5 当读完列表的block后 如果文件读取还没有结束 客户端开发库会继续向Namenode获取下一批的block列表 6 读取完当前block的数据后 关闭与当前的datanode连接 并为读取下一个block寻找最佳的datanode 注 读取完一个block都会进行checksum验证 如果读取datanode时出现错误 客户端会通知Namenode 然后再从下一个拥有该block拷贝的datanode继续读 写入文件流程 HDFSClient向远程的Namenode发起RPC请求 Namenode会检查要创建的文件是否已经存在 创建者是否有权限进行操作 成功则会为文件创建一个记录 否则会让客户端抛出异常 当客户端开始写入文件的时候 开发库会将文件切分成多个packets 并在内部以 dataqueue 的形式管理这些packets 并向Namenode申请新的blocks 获取用来存储replicas的合适的datanodes列表 列表的大小根据在Namenode中对replication的设置而定 开始以pipeline 管道 的形式将packet写入所有的replicas中 开发库把packet以流的方式写入第一个datanode 该datanode把该packet存储之后 再将其传递给在此pipeline中的下一个datanode 直到最后一个datanode 这种写数据的方式呈流水线的形式 最后一个datanode成功存储之后会返回一个ackpacket 在pipeline里传递至客户端 在客户端的开发库内部维护着 ackqueue 成功收到datanode返回的ackpacket后会从 ackqueue 移除相应的packet 如果传输过程中 有某个datanode出现了故障 那么当前的pipeline会被关闭 出现故障的datanode会从当前的pipeline中移除 剩余的block会继续剩下的datanode中继续以pipeline的形式传输 同时Namenode会分配一个新的datanode 保持replicas设定的数量 HDFS不擅长的 多数据中心情况低延迟数据访问需求 10ms 大量的小文件多个数据写入者 HadoopMapReduce HadoopMapReduce是什么 一个在大型计算机集群上快速分发计算的编程模型一个组织执行计算的操作框架其中一个开源实现即HadoopMapReduce MapReduce并行处理的基本过程 CitefromDeanandGhemawat OSDI2004 1 有一个待处理的大数据 被划分为大小相同的数据块 如64MB 及与此相应的用户作业程序 2 系统中有一个负责调度的主节点 Master 以及数据Map和Reduce工作节点 Worker MapReduce并行处理的基本过程 CitefromDeanandGhemawat OSDI2004 3 用户作业程序提交给主节点 4 主节点为作业程序寻找和配备可用的Map节点 并将程序传送给map节点 5 主节点也为作业程序寻找和配备可用的Reduce节点 并将程序传送给Reduce节点 MapReduce并行处理的基本过程 CitefromDeanandGhemawat OSDI2004 6 主节点启动每个Map节点执行程序 每个map节点尽可能读取本地或本机架的数据进行计算 7 每个Map节点处理读取的数据块 并做一些数据整理工作 combining sorting等 并将中间结果存放在本地 同时通知主节点计算任务完成并告知中间结果数据存储位置 MapReduce并行处理的基本过程 CitefromDeanandGhemawat OSDI2004 8 主节点等所有Map节点计算完成后 开始启动Reduce节点运行 Reduce节点从主节点所掌握的中间结果数据位置信息 远程读取这些数据 9 Reduce节点计算结果汇总输出到一个结果文件即获得整个处理结果 MapReduce并行处理的基本过程 CitefromDeanandGhemawat OSDI2004 完整计算过程 MR简例 WordCount HadoopYARN Hadoop1 0VSHadoop2 0 产生背景 直接源于MRv1在几个方面的缺陷 扩展性受限 单点故障 难以支持MR之外的计算多计算框架各自为战 数据共享困难 MR 离线计算框架 Storm 实时计算框架 Spark 内存计算框架 Hadoop1 0MR调度 MapReduce1 0缺点 JobTracker是Map reduce的集中处理点 存在单点故障 JobTracker完成了太多的任务 造成了过多的资源消耗 当map reducejob非常多的时候 会造成很大的内存开销 在TaskTracker端 以map reducetask的数目作为资源的表示过于简单 没有考虑到cpu 内存的占用情况 MapReduce框架在有任何重要的或者不重要的变化 例如bug修复 性能提升和特性化 时 都会强制进行系统级别的升级更新 强制让分布式集群系统的每一个用户端同时更新 HadoopYARNMR调度 YarnvsMR1 0 MR1 0JobTracker资源管理任务调度 监控YarnResourceManager调度 启动每一个Job所属的ApplicationMaster 另外监控ApplicationMasterApplicationMaster负责一个Job生命周期内的所有工作 类似老的框架中JobTracker HadoopYARN模块组成 ResourceManager处理客户端请求启动 监控ApplicationMaster监控NodeManager资源分配与调度NodeManager单个节点上的资源管理处理来自ResourceManager的命令处理来自ApplicationMaster的命令ApplicationMaster数据切分为应用程序申请资源 并分配给内部任务任务监控与容错 HadoopYARN运行流程 HBASE 需求 Google的结构化数据存储需求 低成本可扩展地处理以亿为单位的数据表 海量 众多的列 但并非每列都有数据 且经常只访问很少的列 稀疏 高吞吐量和高并发 快速 HBase的原型 Google Bigtable 传统RDBMS 并行Cache高访问量复杂 难以解决 MapReduce Map ReduceMapReduce程序能满足高并发要求吗 全文件扫描效率行吗 答案 因为RDBMS和MapReduce不能满足要求海量结构化数据存储需求众多的列 但并非每列都有数据 且经常只访问很少的列 稀疏 低成本可扩展地处理以十亿为单位的数据表 海量 高吞吐量和高并发 快速 方案 Bigtable HBase HBase是什么 Hbase是一种面向列的 稀疏 基于HDFS的 海量 高性能 快速 分布式数据库系统利用HadoopHDFS作为其文件存储系统 提供高可靠性 高性能 列存储 可伸缩 实时读写的数据库系统 利用HadoopMapReduce来处理HBase中的海量数据利用Zookeeper作为协同服务 Hbase特点 水平扩展 面向列 范围查询 可靠性 高性能随机读 写 和Hadoop无缝集成 HbasevsRDBMS 水平扩展 数据量太大了 读写性能下降 传统方案 分库分表 迁移数据 中间层 HBase 啥都不用做 加机器即可 且性能平稳 HDFS Hbase存储结构 水平扩展 如何做到的 当storeFile多了后 HBase会自动compact 当rows多了后 HBase会自动将regionsplit HBase会定时对RegionServer的Region数进行balance RegionServer下线 Master会重新分配其负责的Region到其他的RegionServer RegionServer上线后 当Master进行balance时会迁移一些Region到新的RegionServer 面向列 动态增删schema 传统方案 停机维护 HBase No ColumnQualifier可动态增删 面向列 如何做到的 以ColumnFamily为存储单元 K V方式存储 高性能随机读 写 如何做到的 随机读K V存储 Cache Split Balance 随机写 相对而言 Cache WAL Compact Split Balance 数据可靠性 借助HDFS保证数据的可靠 HLogFile 恢复机制 Hadoop其他组件 Zookeeper ZooKeeper是Apache软件基金会下的一个为大型分布式计算提供开源的分布式配置服务 同步服务和命名注册的项目 曾是Hadoop项目的一部分 后来独立 项目地址 http zookeeper apache org Pig Pig是一个基于Hadoop的大规模数据分析平台 它提供的SQL LIKE语言叫PigLatin 该语言的编译器会把类SQL的数据分析请求转换为一系列经过优化处理的MapReduce运算 Pig为复杂的海量数据并行计算提供了一个简单的操作和编程接口 Pig极大的简化了Hadoop的使用项目地址 http pig apache org Pig Pig可以加载数据 表达转换数据以及存储最终结果Pig语句通常按照如下的格式来编写 通过LOAD语句从文件系统读取数据通过一系列 转换 语句对数据进行处理通过一条STORE语句把处理结果输出到文件系统中 或者使用DUMP语句把处理结果输出到屏幕上 Pig在企业数据分析系统中的作用 Hive Hive是基于Hadoop的一个数据仓库工具 可以将结构化的数据文件映射为一张数据库表 并提供简单的sql查询功能 可以将sql语句转换为MapReduce任务进行运行 其优点是学习成本低 可以通过类SQL语句快速实现简单的MapReduce统计 不必开发专门的MapReduce应用 十分适合数据仓库的统计分析 Hive项目地址 http hive apache org Sqoop Sqoop是一个用来将Hadoop和关系型数据库中的数据相互转移的工具 可以将一个关系型数据库 例如 MySQL Oracle Postgres等 中的数据导进到Hadoop的HDFS中 也可以将HDFS的数据导进到关系型数据库中 对于某些NoSQL数据库它也提供了连接器 Sqoop 类似于其他ETL工具 使用元数据模型来判断数据类型并在数据从数据源转移到Hadoop时确保类型安全的数据处理 Sqoop专为大数据批量传输设计 能够

温馨提示

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

评论

0/150

提交评论