- 1、本文档共33页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
hadoop学习总结汇编
2.1 根据输入数据的大小和参数的设置把数据分成splits, 每个split对于一个map线程。 2.2 Split中的数据作为Map的输入, Map的输出一定在Map端。 2.3 Map的输出到Reduce的输入的过程(shuffle过程): 第一阶段:在map端完成 内存-排序-写入磁盘-复制 分区-排序-分区合并-合并后分区-复制 第二阶段:在reduce端完成 映射到reduce端分区-合并-排序 2.4 Reduce的输入到Reduce的输出 最后排好序的key/value作为Reduce的输入,输出不一定 是在reduce端。 MapReduce是 Hadoop程序的体现。框架极其简单:首先是对MapReduce程序运行前的参数配置,然后编写Map类(实现Map方法),最后是Reduce类(实现Reduce方法)。 MapReduce程序的每个细节都与设置的参数有很大的关系,参数设置的好,程序的效率肯定得到提高。 Map方法:Map(k1,v1)?-list(k2,v2) ,并行应用于每一个输入的数据集,每一次调用都会产生一个(k2,v2)的队列 。 Reduce方法:Reduce(k2,list(v2))?-?list(k3,v3)。收集map端输出队列list(k2,v2)中有相同key的数据对,把它们聚集在一起,输出时形成目的数据?list(k3,v3)。 优化内容 最佳实践 mapper的数量 运行mapper需要多长时间? reducer的数量 为了达到最高性能,reducer的数目应该比reducer槽(由内存和tasktracker槽决定)的数目稍微少一点,这将reducer使reducer能够在同一波中完成任务。 combiner 作业能否充分利用combiner来减少通过shuffle传输的数据 中间值的产生 对map输出进行压缩能使作业执行更快 自定义序列 如果正在使用自定义的writable对象或自定义的comparator,则必须确保已实现RawComparator shuffle Shuffle可以对一些内存管理的参数进行调整,弥补性能不足。 子项目 作用 ZooKeeper 为分布式提供高一致性服务 Avro 序列化,提高分布式传输效率 HBase 分布式数据库 Hive 提供类似oracle的数据添加,查询,修改,删除方法。 Mahout 提供一些可扩展的机器学习领域经典算法的实现 Pig 一种用于探索大型数据集的脚本语言 参考文献 / Apress - Pro Hadoop ---------------分布式开发框架 纽约证券交易所每天产生1TB的交易数据 社交网站facebook的主机存储着约10亿张照片,占据PB级存储空间 互联网档案馆存储着约2PB数据,并以每月至少20TB的速度增长。 瑞士日内瓦附近的大型强子对撞机每年产生约15PB的数据。 这样的数据该怎么存储和读取? Facebook的服务器大概1万台,按照oracle的标准10g版本计算大约需要21亿元 Hadoop 一个分布式系统基础架构,由Apache基金会开发。用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的威力高速运算和存储 。 Hadoop是项目的总称,主要是由分布式存储(HDFS)、分布式计算(MapReduce)组成 。 Hadoop程序目前只能运行在Linux系统上,window上运行需要安装其他插件,安装过程见《hadoop安装说明.docx》 。 可扩展:不论是存储的可扩展还是计算的可扩展都是Hadoop的设计根本。 经济:框架可以运行在任何普通的PC上。 可靠:分布式文件系统的备份恢复机制以及MapReduce的任务监控保证了分布式处理的可靠性。(元数据磁盘错误,心跳测试,副本数,快照(目前还没实现)) 高效:分布式文件系统的高效数据交互实现以及MapReduce结合Local Data处理的模式,为高效处理海量的信息作了基础准备。 在Hadoop的系统中,会有一台Master,主要负责NameNode的工作以及JobTracker的工作。JobTracker的主要职责就是启动、跟踪和调度各个Slave的任务执行。还会有多台Slave,每一台Slave通常具有DataNode的功能并负责TaskTracker的工作。TaskTracker根据应用要求来结合本地数据执行Map任务以及Reduce任务。 名称节点( NameNode):管理文件系统的命名空间,记录文件系统树及这个树内所有的文件和索引目录,同时也记录每个文件的
文档评论(0)