Map比较简单,不贴了。
class Reduce:
KV_SEP = "\t"
def __init__(self):
self.last_key = None
self.value_list = []
def reduce(self, key, value_list):
pass
def processLine(self, key, value):
# First[......]
Map比较简单,不贴了。
class Reduce:
KV_SEP = "\t"
def __init__(self):
self.last_key = None
self.value_list = []
def reduce(self, key, value_list):
pass
def processLine(self, key, value):
# First[......]
转载自:《Hadoop MapReduce 二次排序原理及应用》
关于二次排序主要涉及到这么几个东西:
在0.20.0以前使用的是
在0.20.0以后使用是
hadoop提供了一个设置map个数的参数mapred.map.tasks,我们可以通过这个参数来控制map的个数。但是通过这种方式设置map的个数,并不是每次都有效的。原因是mapred.map.tasks只是一个hadoop的参考数值,最终map的个数,还取决于其他的因素。
为了方便介绍,先来看几个名词:
block_size : hdfs的文件块大小,默认为64M,可以通过参数dfs.block.size设置
total_size[......]
Hive 0.12后,支持了窗口函数、分析函数 (具体见官方wiki)
窗口函数应用场景:
(1)用于分区排序
(2)动态Group By
(3)Top N
(4)累计计算
(5)层次查询
一、分析函数
用于等级、百分点、n分片等。
函数 说明
RANK() 返回数据项在分组中的排名,排名相等会在名次中留下空位
DENSE_RANK() 返回数据项在分组中的排名,排名相等会在名次中不会留下空位
NTILE([......]
什么是Mahout?
" Apache Mahout™ project's goal is to build a scalable machine learning library "
我来拓展一下:
(1) Mahout 是Apache旗下的开源项目,集成了大量的机器学习算法。
(2) 大部分算法,可以运行在Hadoop上,具有很好的拓展性,使得大数据上的机器学习成为可能。
本篇主要探讨 Mahout 0.9 中的聚类(Clustering)工具的用法。
一、数据准[......]