随笔分类 - 2.Mapreduce
Mapreduce
摘要:多表关联: 准备数据 ******************************************** 工厂表: ************************************** **** 地址表: ****************************************
阅读全文
摘要:源数据:Child--Parent表 目标:表的自连接:从图中可以找出Tom的grandparent为Marry和Ben,同理可以找出其他的人的grandparent 根据Child--Parent表推断grandchild和grandparent 左表 右表 将一张表分解为两张表的连接:从图中可以
阅读全文
摘要:数据去重: 原理(理解):Mapreduce程序首先应该确认<k3,v3>,根据<k3,v3>确定<k2,v2>,原始数据中出现次数超过一次的数据在输出文件中只出现一次。Reduce的输出是不重复的数据,也就是每一行数据作为key,即k3。而v3为空或不需要设值。根据<k3,v3>得到k2为每一行的
阅读全文
摘要:1.hadoop的压缩codec Codec为压缩,解压缩的算法实现。 在Hadoop中,codec由CompressionCode的实现来表示。下面是一些实现: 可分割性:可分割与不可分割的区别:文件是否可被切成多个inputsplit。 对于不能切割的文件,如果使用mapreduce算法,需要切
阅读全文
摘要:Shuffle过程:数据从map端传输到reduce端的过程~ Map端 每个map有一个环形内存缓冲区,用于存储任务的输出。默认大小100MB(io.sort.mb属性),一旦达到阀值0.8(io.sort.spill.percent),一个后台线程把内容写到(spill)磁盘的指定目录(mapr
阅读全文
摘要:深入了解Combiners编程(相当于Map端的Reduce) 每一个map可能会产生大量的输出,combiner的作用就是在map端对输出先做一次合并,以减少传输到reducer的数据量。 combiner最基本是实现本地key的归并,combiner具有类似本地的reduce功能。 如果不用co
阅读全文
摘要:分组:相同key的value进行分组 例子:如下输入输出,右边的第一列没有重复值,第二列取得是当第一列相同时第二例取最大值 分析:首先确定<k3,v3>,k3的选择两种方式, 方法1.前两列都作为k3 方法2.两列分别是k3和v3,此种情况的k2和v2分别是那些,第一列为k2,第二列为v2,但是最后
阅读全文
摘要:在map和reduce阶段进行排序时,比较的是k2。v2是不参与排序比较的。如果要想让v2也进行排序,需要把k2和v2组装成新的类,作为k2,才能参与比较。 例子: 二次排序:在第一列有序得到前提下第二列進行排序。 思路:先找<k3,v3>在找<k2,v2>之後的mapreduce就容易寫了 方法1
阅读全文
摘要:第一部分 分区简述(比如国家由省市来划分) 分区:map的输出经过partitioner分区进行下一步的reducer。一个分区对应一个reducer,就会使得reducer并行化处理任务。默认为1 1. Partitioner是partitioner的基类,如果需要定制partitioner也需要
阅读全文
摘要:第一部分.Hadoop计数器简述 hadoop计数器: 可以让开发人员以全局的视角来审查程序的运行情况以及各项指标,及时做出错误诊断并进行相应处理。 内置计数器(MapReduce相关、文件系统相关和作业调度相关), 也可以通过http://master:50030/jobdetails.jsp查看
阅读全文
摘要:1 /** 2 * Licensed to the Apache Software Foundation (ASF) under one 3 * or more contributor license agreements. See the NOTICE file 4 * distributed w
阅读全文
摘要:数据在虚拟机内外交换的方式简称为序列化 *序列化(Serialization)是指把结构化对象转化为字节流。(写出去,以内存中得对象为基础或参照物) *反序列化(Deserialization)是序列化的逆过程。即把字节流转回结构化对象。(读进来,以内存中得对象为基础或参照物) Java序列化(ja
阅读全文
摘要:1.确定Hadoop处于启动状态 [root@neusoft-master ~]# jps 23763 Jps3220 SecondaryNameNode3374 ResourceManager2935 NameNode3471 NodeManager3030 DataNode 2. 在/usr/l
阅读全文
摘要:1.MapReduce(Map+Reduce) 提出一个问题: 目标:你想数出一摞牌中有多少张黑桃。 直观方式:一张一张检查并且数出有多少张是黑桃数目 MapReduce方法则是: 给在座的所有玩家中分配这摞牌 让每个玩家数自己手中的牌有几张是黑桃,(map) 然后把这个数目汇报给你你把所有玩家告诉
阅读全文
摘要:HDFS API提供了一种二进制文件支持,直接将<key,value>对序列化到文件中,该文件格式是不能直接查看的,可以通过hadoop dfs -text命令查看,后面跟上SequenceFile的HDFS路径 通过写入SequenceFile和读入SequenceFile文件,打成jar包在Ha
阅读全文