海量数据处理——hadoop

上传人:飞*** 文档编号:48662550 上传时间:2018-07-19 格式:PPTX 页数:64 大小:3.82MB
返回 下载 相关 举报
海量数据处理——hadoop_第1页
第1页 / 共64页
海量数据处理——hadoop_第2页
第2页 / 共64页
海量数据处理——hadoop_第3页
第3页 / 共64页
海量数据处理——hadoop_第4页
第4页 / 共64页
海量数据处理——hadoop_第5页
第5页 / 共64页
点击查看更多>>
资源描述

《海量数据处理——hadoop》由会员分享,可在线阅读,更多相关《海量数据处理——hadoop(64页珍藏版)》请在金锄头文库上搜索。

1、海量数据处理HadoopHadoop 诞生于大搜索应用Doug CuttingMapReduce | GFS | BigTable海量数据应用发展趋势海量数据的时代正在到来 巨大的数据量 IDC预测全球的数据使用量到2020年会增长44倍,达到35.2ZB (1ZB = 10亿TB) 宽带普及和提速(直接导致访问量、网络访问日志、通讯记录等迅猛增加) 社交网络(Facebook, Twitter, 微博等) 视频(视频通讯、医疗影像、地理信息、监控录像等) 移动网络和各种智能终端 传感器、RFID阅读器、导航终端等非传统IT设备 数据集特点 超过80%的数据是非结构化的 数据量在持续增加 数据

2、需要长时间存储,非热点数据也会被随机访问 传统技术无法胜任大数据集的分析、管理和挖掘 传统关系数据库以及一些桌面BI分析软件处理的结构化数据在GB级别,无法从更大的数据集 中发现有意义的信息。 需要处理的目标数据量一直在增长,传统技术无法适应这种扩展性国内外那些企业用Hadoop?数据仓库,商业智能 (facebook,twitter,淘宝,京东,暴风,新浪,58 同城,移动大云) 互联网广告计算 (亿赞普,科捷,各类大互联网企业) 大搜索引擎项目 (Yahoo,国产盘古,人民搜索) 站内搜索引擎项目 (Ebay,支付宝) 内容推荐引擎 (人人,新浪微博,优酷) 病毒分析,垃圾邮件识别(Yah

3、oo,趋势科技,360) 云计算服务项目 (亚马逊云,阿里云) 地图项目 (月球表面探测地图) 科研项目 (欧洲量子对撞机) 金融项目 (股票分析,阿里金融)Hadoop生态系统HDFS1) hadoop distribute file system分布式文件系统2)最大化利用磁盘 uMapReduce1)编程模型,主要用来做数据的分析2)最大化利用CPU uHbase 1)Nosql数据库,Key-Value存储2)最大化利用内存Hadoop生态系统 社区: Apache 基金会 核心: HDFS MapReduce Hbase Zookeeper 核心应用: Hive Pig Mahout

4、 外围: Scribe,flume,Sqoop,PhpHiveAdmin,oozie Nutch 基础供应商: Cloudera MapR,华为 服务供应商: Intel,IBM Oracle Microsoft 云服务提供商: 亚马逊,阿里云Hadoop-Ecosystem诉求: 海量数据需要及时分析和处理。速度 海量数据需要深入分析和挖掘。深度 数据需要长期保存 数据资产Data processed by Google every month: 400 PB in 2007问题: 磁盘IO成为一种瓶颈,而非CPU资源。 网络带宽是一种稀缺资源 硬件故障成为影响稳定的一大因素 传统分布式编程

5、模型MPI,需要处理大量异常问题。海量数据处理需求MapReduce+HDFS思想: 尽可能移动计算到数据端,而非移动数据 到计算端。 硬件和组件的故障是一种常态。MapReduce|HDFS 如何解决问题为何需要 MapReduce|HDFSMapReduce 思想: 分而治之,化整为零 排序优化,降低内存为何需要 MapReduce|HDFSHDFS思想: 文件单次写入,并多次读取。 文件副本,分片保存 (64M一个块/ 分3份 保存) 顺序写入,流式顺序读取 面向大文件存储,而非小文件 系统吞吐量比反应时间更重要Hadoop解决了什么样的根本问题? Hadoop为何会比数据库快? 本地化

6、IO?大数据计算任务子任务子任务子任务子任务任务划分计算结果结果合并Hadoop 前的数据仓库流程Hadoop后的数据仓库流程基于hadoop的数据平台总体架构磁盘IO,网络IO ?名词解释Hadoop, Apache开源的分布式框架。源自Google GFS,BigTable,MapReduce 论文。 = HDFS = HDFS (Hadoop Distributed File System),Hadoop 分布式文件系统。 NameNode,HDFS命名服务器,负责与DataNode文件元信息保存。 DataNode,HDFS数据节点,负责存储数据存储并汇报给NameNode。 Seco

7、ndaryNamenode,NameNode的镜像备份节点=Map Reduce= JobTracker,hadoop的Map/Reduce调度器,负责与TackTracker通信分配计算 任务并跟踪任务进度。 TaskTracker,启动和管理Map和Reduce子任务的节点。HADOOP核心模块介绍HDFS: 开发动机高效: 提供 高稳定,高效的存储方案。廉价: 使用廉价服务器,构建整体的海量存储方案。可扩展 整体存储能力和硬件新增弹性扩展HDFS是 Google File System (GFS) 论文的开源实现HDFS 设计原则 文件以块(block)方式存储 每个块带下远比多数文件系

8、统来的大(预设64M) linux 4k大小 通过副本机制提高可靠度和读取吞吐量 每个区块至少分到三台DataNode上 单一 master (NameNode)来协调存储元数据 (metadata) 客户端对文件没有缓存机制 (No data caching)HDFS能做什么?存储并管理PB级数据 处理非结构化数据 注重数据处理的吞吐量(latency不敏感) 应用模式为:write-once-read-many存取模式HDFS不适合做什么?存储小文件 (不建议使用) 大量的随机读 (不建议使用) 需要对文件的修改 (不支持)HDFS 基本结构HDFS 基本结构HDFS 分片复制HDFS 分

9、片复制Task和HDFS交互NameNode(NN)NameNode主要功能提供名称查询服务,它是一个jetty 服务器 NameNode保存metadate信息包括 文件owership和permissions 文件包含哪些块 Block保存在哪个DataNode(由DataNode启动时上 报) NameNode的metadate信息在启动后会加载到内存 metadata存储到磁盘文件名为”fsimage” Block的位置信息不会保存到fsimageNameNode(NN)和Secondary NameNode(SNN)Secondary NameNode定期地合并 fsimage和Ed

10、its日志文件,并保持 Edits日志文件的大小在一个上限 值内,由于它的内存需求与 NameNode的一致,所以它通常运行 在NameNode以外的一台机器上。Checkpoint配置参数: fs.checkpoint.period,默认:1小 时,指定连续2次创建Checkpoint 的最大时间间隔。 fs.checkpoint.size,默认:64MB ,当编辑日志大小到达该设置值, 即使创建Checkpoint的最大时间间 隔未到也强制促其执行创建 Checkpoint。NameNode块存储结构metadate物理存储结构DataNode(DN)保存 Block启动DN线程的时候会向

11、NN汇报block信息通过向NN发送心跳保持与其联系(3秒一次),如果NN 10分钟没有收到DN的心跳,则认为其已经lost,并copy其上的block到其它DN Block的副本放置策略 第一个副本:放置在上传文件的DN;如果是集群外提交,则随机挑选一台磁盘不太满,CPU不太忙的节点 第二个副本:放置在于第一个副本不同的机架的节点上 第三个副本:与第二个副本相同集群的节点 更多副本:随机节点再说Block设置一个Block 64MB,如果上传文件小于 该值,仍然会占用一个Block的命名空间( NameNode metadata),但是物理存储 上不会占用64MB的空间 Block大小和副本

12、数由Client端上传文件到 HDFS时设置,其中副本数可以变更, Block是不可以再上传后变更的数据损坏(corruption)处理当DN读取block的时候,它会计算checksum 如果计算后的checksum,与block创建时值不一样,说明该block已 经损坏。 client读取其它DN上的block;NN标记该块已经损坏,然后复制 block达到预期设置的文件备份数 DN在其文件创建后三周验证其checksumHDFS文件读取HDFS文件写入MapReduce基本流程MapReduce基本流程Hadoop MapReduce基本工作过程MapReduce核心组件文件输入格式In

13、putFormat输入数据分块InputSplits数据记录读入RecordReaderMapperCombinerPartitioner 是在本地执行的一个Reducer,满足一定的条件才能够执行。Hadoop MapReduce主要组件 Partitioner & Shuffle在Map工作完成之后 ,每一个 Map函数会将 结果传到对应的 Reducer所在的节点, 此时,用户可以提供 一个Partitioner类,用来 决定一个给定的 (key,value)对传给哪个 节点 Sort传输到每一个Reducer节点上的、将被所有的Reduce函数接收 到的Key,value对会被Hado

14、op自动排序(即Map生成的结果传送 到某一个节点的时候,会被自动排序)Hadoop MapReduce主要组件Reducer做用户定义的Reduce操作接收到一个OutputCollector的类作为输出新版本的编程接口是Reducer.ContextHadoop MapReduce主要组件文件输出格式OutputFormat写入到HDFS的所有OutputFormat都 继承自FileOutputFormat每一个Reducer都写一个文件到一 个共同的输出目录,文件名是part- nnnnn,其中nnnnn是与每一个 reducer相关的一个号(partition id)FileOutp

15、utFormat.setOutputPath()JobConf.setOutputFormat()Hadoop MapReduce主要组件文件输出格式OutputFormatRecordWriter TextOutputFormat实现了缺省的LineRecordWriter,以”keyt value”形 式输出一行结果。程序执行时的容错处理与计算性能优化由Hadoop系统自己解决主要方法是将失败的任务进行再次执行TaskTracker会把状态信息汇报给JobTracker,最终由JobTracker 决定重新执行哪一个任务为了加快执行的速度,Hadoop也会自动重复执行同一个任 务,以最先执行成功的为准(投机执行)mapred.map.tasks.speculative.executionmapred.reduce.tasks.speculative.execution性能优化包括时间性能和空间性能。衡量的指标是,能在正确 完成功能的基础上,使执行的时间尽量短,占用的空间尽量 小。 1.输入的文件尽量采用大文件,避免使用小文件如果输入的小文件数量多,可以将众多的小文件合并成一个大 文件,然后在以大文件作为输入。 2.考虑压缩文件IO是数据交换的瓶颈之一。一个办法是增加内存和缓存;另一 个办法就是在map的输出阶段进行压缩。可以通过将 press.ma

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号