一、性能低下的常见原因
(一)硬件环境
1、CPU/内存不足,或未充分利用
2、网络原因
3、磁盘原因
(二)map任务原因
1、输入文件中小文件过多,导致多次启动和停止JVM进程。可以设置JVM重用。
2、数据倾斜:大文件且不可分割,导致处理这些文件的map需要很长时间。
3、数据本地化效果差。
(三)reduce任务的原因
1、reduce任务数量过大或过小
2、数据...
分类:
其他好文 时间:
2015-03-13 22:28:04
阅读次数:
176
set hive.exec.reducers.bytes.per.reducer=2000000000; ##每个reduce任务处理的数据量,默认为1000^3=1G set hive.groupby.skewindata = true ##对于join和Group操作都可能会出现数据倾斜 set hive.optimize.sk...
分类:
其他好文 时间:
2015-03-13 20:54:49
阅读次数:
166
这篇文章主要分析以下两点内容:目录:1.MapReduce作业运行流程2.Map、Reduce任务中Shuffle和排序的过程正文:1.MapReduce作业运行流程下面贴出我用visio2010画出的流程示意图:流程分析:1.在客户端启动一个作业。2.向JobTracker请求一个Job ID。3...
分类:
其他好文 时间:
2015-03-11 21:31:48
阅读次数:
186
Hadoop Map/Reduce框架为每一个InputSplit产生一个map任务,而每个InputSplit是由该作业的InputFormat产生的。
然后,框架为这个任务的InputSplit中每个键值对调用一次 map(WritableComparable, Writable, OutputCollector, Reporter)操作。
通过调用 OutputCollector.col...
分类:
其他好文 时间:
2015-03-10 17:22:28
阅读次数:
216
MapReduce:MapReduce是一种编程模型,用于大规模数据集(大于1TB)的并行运算。映射(Map),化简(Reduce)的概念和它们的主要思想都是从函数式编程语言中借鉴而来的。它极大地方便了编程人员-----即使在不了解分布式并行编程的情况下,也可以将自己的程序运行在分布式系统上。MapReduce在执行时先指定一个Map(映射)函数,把输入键值对映射成一组新的键值对,经过一定处理后交...
分类:
其他好文 时间:
2015-03-09 19:05:43
阅读次数:
173
主要错误信息:Error: org.apache.hadoop.mapreduce.task.reduce.Shuffle$ShuffleError: error
in shuffle in fetcher#43
解决办法:限制reduce的shuffle内存使用
hive:set mapreduce.reduce.shuffle.memory.li...
分类:
其他好文 时间:
2015-03-08 15:45:25
阅读次数:
197
第一种:原生态运行jar包1,利用eclipse编写Map-Reduce方法,一般引入Hadoop-core-1.1.2.jar。注意这里eclipse里没有安装hadoop的插件,只是引入其匝包,该eclipse可以安装在windows或者linux中,如果是在windows中安装的,且在其虚拟机...
分类:
编程语言 时间:
2015-03-06 15:43:11
阅读次数:
309
正确设置Hadoop程序运行时的参数可以提高程序的运行效率,但是错误的设置也会带来效率的降低,甚至程序的失败。我今天就遇到了这种情况,事情是这样的:在Hadoop的配置中有这样一个参数:mapred.reduce.slowstart.completed.maps: 这个参数控制reducer何时开始...
分类:
其他好文 时间:
2015-03-06 00:55:29
阅读次数:
159
倾斜的原因: 使map的输出数据更均匀的分布到reduce中去,是我们的最终目标。由于Hash算法的局限性,按key Hash会或多或少的造成数据倾斜。大量经验表明数据倾斜的原因是人为的建表疏忽或业务逻辑可以规避的。解决思路: Hive的执行是分阶段的,map处理数据量的差异取决于上一个stag.....
分类:
其他好文 时间:
2015-03-05 20:54:17
阅读次数:
19465
hive的优化问题1。启动一次JOB尽可能多做事,尽量减少job的数量。能重用就重用,要设计好的模型。2。合理设置reduce个数,reduce个数过多,会造成大量小文件问题。3。使用hive.exec.parallel参数控制在同一个sql中的不同的job是否可以同时运行,提高作业的并发4。注意j...
分类:
其他好文 时间:
2015-03-04 16:44:01
阅读次数:
340