Mapreduce处理的数据必须具备的特点: --待处理的数据可以分解成许多小的数据集,而且每个数据集都可以完全并行的处理 计算模型的核心部分是map和Reduce函数: --这两个函数的功能由用户根据需要自己实现,只要能够按照用户自定义的规则, 将输入的键值对转换成另一批键值..
分类:
其他好文 时间:
2014-08-20 02:44:46
阅读次数:
213
hive mapreduce 都会转成java。所以要用的java分析工具。当看到map或reduce 阶段运行缓慢,我们去线上找到mapreduce的进程:
1. top 发现进程:
2. top -Hp 32486 找到进程中cpu或mem磁盘消耗最高的线程:
3. 用jstack主要用来查看某个Java进程内的线程堆栈信息:
bin/jstack -F 26510
...
分类:
其他好文 时间:
2014-08-19 19:14:35
阅读次数:
291
如果分区是可以确定的话,千万不要用动态分区,动态分区的值是在reduce运行阶段确定的.也就是会把所有的记录distribute by。 可想而知表记录非常大的话,只有一个reduce 去处理,那简直是疯狂的。如果这个值唯一或者事先已经知道,比如按天分区(i_date=20140819) 那就用静态分区吧。静态分区在编译阶段已经确定,不需要reduce处理。 例如以下两个insert
表分区:...
分类:
其他好文 时间:
2014-08-19 16:30:24
阅读次数:
443
1. mapvar ary = Array(3);ary[0] = 2ary.map(function(elem) { return '1'; });结果是["1", undefined * 2], 因为map只能被初始化过的数组成员调用2. reduce[].reduce(Math.pow); ....
分类:
编程语言 时间:
2014-08-18 15:57:52
阅读次数:
185
上一节分析到了JobTracker把任务从队列里取出来并进行了初始化,所谓的初始化,主要是获取了Map、Reduce任务的数量,并统计了哪些DataNode所在的服务器可以处理哪些Split等等,将这些信息缓存起来,但还没有进行实质的分配。等待TaskTracker跟自己通信。TaskTracker...
分类:
其他好文 时间:
2014-08-18 00:03:43
阅读次数:
253
上一节分析了Job由JobClient提交到JobTracker的流程,利用RPC机制,JobTracker接收到Job ID和Job所在HDFS的目录,够早了JobInProgress对象,丢入队列,另一个线程从队列中取出JobInProgress对象,并丢入线程池中执行,执行JobInProgr...
分类:
其他好文 时间:
2014-08-17 03:45:51
阅读次数:
383
Like most moms today are trying to reduce the amount of sugar and processed foods your child is in contact with the challenge is to come up with gadge...
分类:
其他好文 时间:
2014-08-15 12:35:48
阅读次数:
253
ChainMapper/ChainReducer 主要为了解决线性链式Mapper 而提出的。也就是说,在Map 或者Reduce 阶段存在多个Mapper,这些Mapper 像Linux 管道一样,前一个Mapper的输出结果直接重定向到下一个Mapper 的输入,形成一个流水线,形式类似于[MA...
分类:
移动开发 时间:
2014-08-15 12:20:18
阅读次数:
234
Python内置了一些非常有趣但非常有用的函数,充分体现了Python的语言魅力!filter(function, sequence):对sequence中的item依次执行function(item),将执行结果为True的item组成一个List/String/Tuple(取决于sequence...
分类:
编程语言 时间:
2014-08-14 23:46:16
阅读次数:
276
mr自带的例子中的源码SecondarySort,我重新写了一下,基本没变。这个例子中定义的map和reduce如下,关键是它对输入输出类型的定义:(java泛型编程)public static class Map extends Mapper public static class Reduce ...
分类:
其他好文 时间:
2014-08-14 19:43:59
阅读次数:
255