1.hadoop即是mapreduce的进程,服务器上的一个目录节点加上多个数据节点,将程序传递到各个节点,再节点上进行计算。
2.mapreduce即是将数据存储到不一样的节点上,用map方法对应办理,在各个节点上进行计算,最后由reduce进行合并。
3.java程序和namenode合作,把数据存放在不一样的数据节点上
4.怎么运转用图来表明最好了。图无法画。谷歌下
5.不思考歪斜,功能,运用2个job,第一个job直接用filesystem读取10个文件夹作为map输入,url做key,reduce计算个url的sum,下一个job map顶用url作key,运用-sum作二次排序,reduce中取top10000000
第二种方法,建hive表 A,挂分区channel,每个文件夹是一个分区.
select x.url,x.c from(select url,count(1) as c from A where channel ='' group by url)x order by x.c desc limie 1000000;
6 combiner也是一个reduce,它可以削减map到reudce的数据传输,进步shuff速度。牢记平均值不要用。需求输入=map的输出,输出=reduce的输入。