不是从第一章开始. 6.2.2 Map的困境 技巧 29 鉴别map阶段的数据差异问题 数据差异是非常常见的.在map阶段,数据差异主要以少量不可以分割的大文件或者大量小文件为代表. 问题 你想要确认一个job是否因为存在数据差异而导致其运行缓慢. 解决方案 使用JobTracker的UI来比较同一个job的map阶段的不同task的输入文件的大小. 讨论 数据差异表现为少数的task执行时花费的时间比其他的task多很多.如果你将延迟完成的task的输入文件大小和整个map的所有task的输入…
转自:http://blog.csdn.net/wypblog/article/details/17528851 最近发现自己收集到的Hadoop学习资料有很多本,想想放在那里也浪费,所以觉得贴出来给大家分享,需要的可以去我CSDN里面下载,保证全部资源免费下载!这里面很多英文的资料. 1.<Hadoop技术内幕:深入解析Hadoop Common和HDFS>下载地址:http://download.csdn.net/detail/w397090770/6643259. 2.<Hadoo…
1.<Hadoop技术内幕:深入解析Hadoop Common和HDFS>下载地址:http://download.csdn.net/detail/w397090770/6643259. 2.<Hadoop技术内幕:深入解析MapReduce架构设计与实现原理>下载地址:http://download.csdn.net/detail/w397090770/6643279. 3.<Hadoop技术内幕:深入解析YARN架构设计与实现原理>,下载地址:http://down…
hadoop资料 云端云计算2G基础课程 (Hadoop简介.安装与范例) 炼数成金3G视频分享下载 虚拟机三种网络模式该如何上网指导此为视频 Hadoop传智播客七天hadoop(3800元)视频,持续更新 Hadoop传智播客最新的hadoop学习资料第一季(1)需要简单了解Linux操作系统(本课程使用CentOS6.4操作系统):(2)需要java基础,因为hadoop是java语言写的,课程中会对hadoop源码进行简析.第一天资料:传智播客hadoop教程01-课程介绍以及hadoo…
A curated list of amazingly awesome Hadoop and Hadoop ecosystem resources. Inspired by Awesome PHP, Awesome Pythonand Awesome Sysadmin Awesome Hadoop Hadoop YARN NoSQL SQL on Hadoop Data Management Workflow, Lifecycle and Governance Data Ingestion an…
习惯性的贴几个参考链接: W3School-HTML 5 应用程序缓存 官方 MDN window.applicationCache 接口文档 官方 MDN 用法示例 看所有的教程不如直接看最原始的官方教程,下面的内容是对官方教程(官方 MDN 用法示例)中自己觉得有价值的部分的文档的翻译: Entries in a cache manifest file The cache manifest file is a simple text file that lists the resources…
[it-ebooks]电子书列表   [2014]: Learning Objective-C by Developing iPhone Games || Leverage Xcode and Objective-C to develop iPhone games http://it-ebooks.info/book/3544/Learning Web App Development || Build Quickly with Proven JavaScript Techniques http:…
mongodb文档与视频资料分享 1.mongodb1-72.mongodb8-17集含代码3.MongoDB_and_Python学习笔记4.深入学习MongoDb5.PHP&MongoDB6.MongoDB权威指南中文版7.MongoDB权威指南EnV28.MongoDb应用设计模式9.MongoDB_and_Python10.Ruby&MongoDb11.MongoDB实战http://www.aboutyun.com/thread-6147-1-1.html hadoop视频-ha…
5.2 基于压缩的高效存储(续) (仅包括技术27) 技术27 在MapReduce,Hive和Pig中使用可分块的LZOP 如果一个文本文件即使经过压缩后仍然比HDFS的块的大小要大,就需要考虑选择一个支持分块的压缩编码器,以防一个单一的map任务来处理整个超大的文件. LZOP可以满足分块的要求,但是使用起来很复杂.原因在于LZOP不是直接支持分块.LZOP是基于块的格式,但是并不支持块的随机访问. 问题 需要选择一个压缩编码器使MapReduce可以调用多个任务并行处理一个单一的压缩文件.…
4.2 排序(SORT) 在MapReduce中,排序的目的有两个: MapReduce可以通过排序将Map输出的键分组.然后每组键调用一次reduce. 在某些需要排序的特定场景中,用户可以将作业(job)的全部输出进行总体排序. 例如:需要了解前N个最受欢迎的用户或网页的数据分析工作. 在这一节中,有两个场景需要对MapReduce的排序行为进行优化. 次排序(Secondary sort) 总排序(Total order sorting) 次排序可以根据reduce的键对它的值进行排序.如…
5.2 基于压缩的高效存储 (仅包括技术25,和技术26) 数据压缩可以减小数据的大小,节约空间,提高数据传输的效率.在处理文件中,压缩很重要.在处理Hadoop的文件时,更是如此.为了让Hadoop更高效处理文件,就需要选择一个合适的压缩编码器,加快作业运行,增加集群的数据存储能力. 技术25 为待处理数据选择正确的压缩编码器在HDFS上使用压缩并不像ZFS文件系统上那样透明,特别是在处理那些可分块的压缩文件时.(这些将在本章中稍后介绍.)由于Avro和SequenceFiles等文件格式提供…
5.1 小文件 大数据这个概念似乎意味着处理GB级乃至更大的文件.实际上大数据可以是大量的小文件.比如说,日志文件通常增长到MB级时就会存档.这一节中将介绍在HDFS中有效地处理小文件的技术. 技术24 使用Avro存储多个小文件假定有一个项目akin在google上搜索图片,并将数以百万计的图片存储分别在HDFS中.很不幸的是,这样做恰好碰上了HDFS和MapReduce的弱项,如下: Hadoop的NameNode将所有的HDFS元数据保存在内存中以加快速度.Yahoo估计平均每个文件需要6…
原书章节 原书章节题目 翻译文章序号 翻译文章题目 链接 4.1 Joining Hadoop(1) MapReduce 连接:重分区连接(Repartition join) http://www.cnblogs.com/datacloud/p/3578509.html 4.1.1 Repartition join Hadoop(1) MapReduce 连接:重分区连接(Repartition join) http://www.cnblogs.com/datacloud/p/3578509.h…
6.2 诊断性能瓶颈 有的时候作业的执行时间会长得惊人.想靠猜也是很难猜对问题在哪.这一章中将介绍如何界定问题,找到根源.涉及的工具中有的是Hadoop自带的,有的是本书提供的. 系统监控和Hadoop任务 在Hadoop的0.20.x版本中,并没有提供MapReduce任务的CPU和内存的性能指标的抽取方法.不过在0.22版本中,CPU和内存性能指标将会被写道作业的历史信息文件中.并且可以通过Hadoop的用户界面来查看这些. 6.2.1 理解MapReduce作业性能的影响因子 从大的方面来…
4.3 抽样(Sampling) 用基于MapReduce的程序来处理TB级的数据集,要花费的时间可能是数以小时计.仅仅是优化代码是很难达到良好的效果. 在开发和调试代码的时候,没有必要处理整个数据集.但如果在这种情况下要保证数据集能够被正确地处理,就需要用到抽样了.抽样是统计学中的一个方法.它通过一定的过程从整个数据中抽取出一个子数据集.这个子数据集能够代表整体数据集的数据分布状况.在MapReduce中,开发人员可以只针对这个子数据集进行开发调试,极大减小了系统负担,提高了开发效率. 技术2…
4.1.3 半连接(Semi-join) 假设一个场景,需要连接两个很大的数据集,例如,用户日志和OLTP的用户数据.任何一个数据集都不是足够小到可以缓存在map作业的内存中.这样看来,似乎就不能使用reduce端的连接了.尽管不是必须,可以思考以下问题:如果在数据集的连接操作中,一个数据集中有的记录由于因为无法连接到另一个数据集的记录,将会被移除.这样还需要将整个数据集放到内存中吗?在这个例子中,在用户日志中的用户仅仅是OLTP用户数据中的用户中的很小的一部分.那么就可以从OLTP用户数据中只…
4.1 连接(Join) 连接是关系运算,可以用于合并关系(relation).对于数据库中的表连接操作,可能已经广为人知了.在MapReduce中,连接可以用于合并两个或多个数据集.例如,用户基本信息和用户活动详情信息.用户基本信息来自于OLTP数据库.用户活动详情信息来自于日志文件. MapReduce的连接操作可以用于以下场景: 用户的人口统计信息的聚合操作(例如:青少年和中年人的习惯差异). 当用户超过一定时间没有使用网站后,发邮件提醒他们.(这个一定时间的阈值是用户自己预定义的) 分析…
4.2.2 总排序(Total order sorting) 有的时候需要将作业的的所有输出进行总排序,使各个输出之间的结果是有序的.有以下实例: 如果要得到某个网站中最受欢迎的网址(URL),就需要根据某种受欢迎的指标来对网址进行排序. 如果要让最活跃的用户能够看到某张表,就需要根据某种标准(发表文章数)对用户进行排序. 技术22 在多个reduce间对键进行排序 在MapReduce框架中,map的输出会被排序,然后被发送给reduce.不过,相同reduce的输入数据是有序的,不同redu…
花了一些时间, 但感觉很值得. Big Data, MapReduce, Hadoop, and Spark with Python Master Big Data Analytics and Data Wrangling with MapReduce Fundamentals using Hadoop, Spark, and Python 作者: The LazyProgrammer (https://lazyprogrammer.me)…
附录D.2 复制连接框架 复制连接是map端连接,得名于它的具体实现:连接中最小的数据集将会被复制到所有的map主机节点.复制连接的实现非常直接明了.更具体的内容可以参考Chunk Lam的<Hadoop in Action>. 这个部分的目标是:创建一个可以支持任意类型的数据集的通用的复制连接框架.这个框架中提供了一个优化的小功能:动态监测分布式缓存内容和输入块的大小,并判断哪个更大.如果输入块较小,那么你就需要将map的输入块放到内存缓冲中,然后在map的cleanup方法中执行连接操作了…
附录D.1 优化后的重分区框架 Hadoop社区连接包需要将每个键的所有值都读取到内存中.如何才能在reduce端的连接减少内存开销呢?本文提供的优化中,只需要缓存较小的数据集,然后在连接中遍历较大数据集中的数据.这个方法中还包括针对map的输出数据的次排序,那么reducer先接收到较小的数据集,然后接收到较大的数据集.图D.1是这个过程的流程图. 图D.2是实现的类图.类图中包含两个部分,一个通用框架和一些类的实现样例. 连接框架 我们以和Hadoop社区连接包的近似的风格编写连接的代码.目…
附录A.10 LZOP LZOP是一种压缩解码器,在MapReduce中可以支持可分块的压缩.第5章中有一节介绍了如何应用LZOP.在这一节中,将介绍如何编译LZOP,在集群做相应配置. A.10.1 获得更多的信息 表A.12 有用的资源 描述 URL地址 Twitter有关于LZOP的博客文章,包括一些统计信息和安装指南 http://bit.ly/dfEvGn Todd Lipcon的LZO GitHub库.  https://github.com/toddlipcon/hadoop-lz…
6.4.6 优化数据序列化 如何存储和传输数据对性能有很大的影响.在这部分将介绍数据序列化的最佳实践,从Hadoop中榨出最大的性能. 压缩压缩是Hadoop优化的重要部分.通过压缩可以减少作业输出数据的储存足迹,加速MapReduce作业下游接收数据.另外,在map和reduce之间的数据需要被压缩以减轻网络IO的压力.压缩技术的具体内容在第5章中介绍. 二进制文件格式 使用二进制文件格式,如Avro和SequenceFile,可以使数据的表达更为紧凑,并提高编组(marshalling)和逆…
6.4.5 优化MapReduce用户JAVA代码 MapReduce执行代码的方式和普通JAVA应用不同.这是由于MapReduce框架为了能够高效地处理海量数据,需要成百万次调用map和reduce函数.每次调用仅用较少时间.那么就不能用普通的经验来预测常见库(含JDK)的性能表现. 进一步阅读 Joshua Bloch的<Effective Java>中有很多如何调优JAVA代码的方法 在技术45中介绍如何用分析器(profiler)查找MapReduce代码中消耗时间的地方.这里要用同…
6.4.4 减小数据倾斜的性能损失 数据倾斜是数据中的常见情况.数据中不可避免地会出现离群值(outlier),并导致数据倾斜.这些离群值会显著地拖慢MapReduce的执行.常见的数据倾斜有以下几类: 数据频率倾斜——某一个区域的数据量要远远大于其他区域. 数据大小倾斜——部分记录的大小远远大于平均值. 在map端和reduce端都有可能发生数据倾斜.在map端的数据倾斜会让多样化的数据集的处理效率更低.在reduce端的数据倾斜常常来源于MapReduce的默认分区器. 数据倾斜会导致map…
6.4.3 优化洗牌(shuffle)和排序阶段 洗牌和排序阶段都很耗费资源.洗牌需要在map和reduce任务之间传输数据,会导致过大的网络消耗.排序和合并操作的消耗也是很显著的.这一节将介绍一系列的技术来缓解洗牌和排序阶段的消耗. 技术46 规避使用reduce Reduce在用于连接数据集的时候将会产生大量的网络消耗. 问题 需要考虑在MapReduce规避reduce的使用. 方案 通过将MapReduce参数setNumReduceTasks设置为0来创建一个只有map的作业. 讨论…
6.2.5 硬件性能问题 尽管单独的硬件的MTTF(平均失效前时间)都数以年记,然而在集群中就完全不是这么一回事了.整个集群的MTTF就要小得多.这一节要介绍如何确定CPU,内存,磁盘和网络是否过度利用了,以及如何将它们的利用率调节到一个合理的水平. 技术39 查找硬件的失效 节点失效可能有如下原因:磁盘控制器失效,磁盘空间事故,其他硬件事故,以及Hadoop自身的缺陷(可能性较低).节点失效将会导致MapReduce作业执行时间变长.在较小的集群上的影响要更为明显.接下来就要介绍如何确定集群中…
6.2.4 任务一般性能问题 这部分将介绍那些对map和reduce任务都有影响的性能问题. 技术37 作业竞争和调度器限制 即便map任务和reduce任务都进行了调优,但整个作业仍然会因为环境原因运行缓慢. 问题 需要判断作业是否运行得比集群中其它作业要慢. 方案 将正在执行的reduce任务数和Hadoop集群的最大reduce任务数相比较. 讨论 如果根据前几节的技术,发现作业已经正确配置,任务的吞吐量也正确,那么作业的缓慢就有可能是集群的资源竞争了.下面将介绍如何诊断集群的资源竞争.…
6.2.3 Reduce的性能问题 Reduce的性能问题有和map类似的方面,也有和map不同的方面.图6.13是reduce任务的具体的执行各阶段,标识了可能影响性能的区域. 这一章将介绍影响reduce任务性能的常见问题. 技术33 Reduce实例不足或过多 尽管map段的并行化程度在大部分情况下是自动设置的,但是在reduce端,reduce实例的数量是完全自定义的.如果reduce实例不足或过多,集群的性能就很难得到充分发挥. 问题 需要确定reduce实例的数量是否是作业运行缓慢的…
6.1 测量MapReduce和环境的性能指标 性能调优的基础系统的性能指标和实验数据.依据这些指标和数据,才能找到系统的性能瓶颈.性能指标和实验数据要通过一系列的工具和过程才能得到. 这部分里,将介绍Hadoop自带的工具和性能指标.还将捎带介绍性能监控工具. 6.1.1 作业统计数据抽取工具 这一章中介绍的很多技术都需要从Hadoop中抽取作业和任务的性能指标.有以下三种办法抽取这些统计数据: 用JobTracker UI来查看作业和任务的计数器. 用Hadoop CLI(命令行界面)来查看…