




已阅读5页,还剩47页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Chap02分布式处理软件架构Hadoop,提纲,2.1概述2.2Hadoop项目结构2.3Hadoop的安装与使用2.4Hadoop集群的部署与使用,2.2Hadoop项目结构,Hadoop的项目结构不断丰富发展,已经形成一个丰富的Hadoop生态系统,2.2Hadoop项目结构,.,HDFS是什么,分布式文件系统冗余存储面向大文件存储设计面向批量插入设计基于商用机器提供可靠的数据存储容忍部分节点故障,.,HDFS,Refercece:/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的原型GoogleBigtable,.,传统RDBMS,并行Cache高访问量复杂,难以解决,.,MapReduce?,Map/ReduceMapReduce程序能满足高并发要求吗?全文件扫描效率行吗?,.,答案,因为RDBMS和MapReduce不能满足要求海量结构化数据存储需求众多的列,但并非每列都有数据,且经常只访问很少的列(稀疏)低成本可扩展地处理以十亿为单位的数据表(海量)高吞吐量和高并发(快速)方案:BigtableHBase,.,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项目的一部分,后来独立。项目地址:/,.,Pig,Pig是一个基于Hadoop的大规模数据分析平台,它提供的SQL-LIKE语言叫PigLatin,该语言的编译器会把类SQL的数据分析请求转换为一系列经过优化处理的MapReduce运算。Pig为复杂的海量数据并行计算提供了一个简单的操作和编程接口。Pig极大的简化了Hadoop的使用项目地址:/,Pig,Pig可以加载数据、表达转换数据以及存储最终结果Pig语句通常按照如下的格式来编写:通过LOAD语句从文件系统读取数据通过一系列“转换”语句对数据进行处理通过一条STORE语句把处理结果输出到文件系统中,或者使用DUMP语句把处理结果输出到屏幕上,Pig在企业数据分析系统中的作用,.,Hive,Hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供简单的sql查询功能,可以将sql语句转换为MapReduce任务进行运行。其优点是学习成本低,可以通过类SQL语句快速实现简单的MapReduce统计,不必开发专门的MapReduce应用,十分适合数据仓库的统计分析。Hive项目地址:,.,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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 灌南篝火晚会活动策划方案
- 美团团购的营销推广方案
- 福清建房基础施工方案
- 防洪设施建设土地利用影响分析
- 湖北省烟花爆竹应急预案
- 江门在线税务咨询方案
- 建筑教具制作比赛方案设计
- 分析鸿星尔克营销方案
- 推销食品活动策划方案模板
- 数据治理咨询项目方案
- 夫妻忠诚协议书8篇
- 2025年大队委竞选面试题库及答案
- 新教科版小学1-6年级科学需做实验目录
- GB/T 8492-2024一般用途耐热钢及合金铸件
- 第五版-FMEA-新版FMEA【第五版】
- 碾压式土石坝施工技术规范
- 冀教版 英语六年级上册Unit 1 Lesson4 教学课件PPT小学公开课
- pcr技术及其应用-ppt课件
- 铁路外部安全环境管理
- 110kV变电站一次与二次验收规范
- 论建筑隔震工程监理要点
评论
0/150
提交评论