MapReduce
机器熊技术大杂烩
欢迎访问机器熊的技术大杂烩,专注Java技术。
展开
-
MapReduce应用案例5:倒排索引
1.倒排索引倒排索引(英语:Inverted index),也常被称为反向索引、置入档案或反向档案,是一种索引方法,被用来存储在全文搜索下某个单词在一个文档或者一组文档中的存储位置的映射。它是文档检索系统中最常用的数据结构。通过倒排索引,可以根据单词快速获取包含这个单词的文档列表。倒排索引主要由两个部分组成:“单词词典”和“倒排文件”。现代搜索引擎的索引都是基于倒排索引,其基本结构如图所示。...原创 2019-04-04 17:39:14 · 328 阅读 · 0 评论 -
分布式计算框架MapReduce架构
Hadoop核心由HDFS和MapReduce组成,HDFS负责分布式存储,MapReduce负责分布式计算。MapReduce最早是由Google研究提出的一种面向大规模数据处理的并行计算模型和方法,其初衷主要是为了解决搜索引擎中大规模网页数据的并行化处理。由于MapReduce可以普遍应用于很多大规模数据的计算问题,Google进一步将其广泛应用于很多大规模数据处理问题。到目前为止,Go...原创 2019-04-14 10:23:09 · 1265 阅读 · 0 评论 -
大数据生态之起源——Hadoop
说起大数据生态体系的起源,不得不提Doug Cutting,这位大数据技术始祖级的人物,在Google的影响下为我们带来了大数据生态体系中最原始也最重要的部分—Hadoop。Doug Cutting,上图居中着,身高一米八往上,其貌不扬,为人谦逊,因其儿子喜欢的玩具为技术发明命名。1985,毕业于斯坦福大学。1997,发布Lucene,第一个全文文本搜索开源函数库(流行搜索引擎Solr...原创 2019-04-14 10:15:01 · 470 阅读 · 0 评论 -
MapReduce原理分析:自定义分区Partition和数据倾斜解决之道
1.分区和默认的分区类HashPartitionerMapReduce过程中,每个map task处理完数据后,Shuffle机制通过分区类Partitioner决定每条记录应该送往哪个Reducer节点,默认使用的是HashPartitioner,使用Hash方式把(key,value)对均匀的分发到各个对应编号的Reduce Task节点上,以均衡Reduce Task节点的计算负载,其核心...原创 2019-04-13 20:08:17 · 921 阅读 · 2 评论 -
HDFS常用命令
本文说明1).[ ]中的选项为可选项,< >中的参数为必选项,参数后跟的…表示操作多个此类型参数2).本文所列命令在hadoop2.7.3上验证,适合于绝大多数hadoop版本。3).本文为避免掉书袋,仅列常用命令,对于不常用的命令,如有需要,可通过帮助命令了解。4).在2.7.3版本中,hdfs的操作命令开头一律为hdfs dfs,hadoop dfs为过时命令。5).如...原创 2019-04-10 09:35:07 · 26954 阅读 · 0 评论 -
MapReduce原理分析:自定义输出格式OutputFormat
输出格式OutputFormat在MapReduce框架中,OutputFormat负责把Reducer处理完成的Key-Value写出到本地磁盘或HDFS上,默认计算结果会以part-000的命名输出成多个文件,并且输出的文件数量与Reduce数量一致。000是关联到某个Reduce任务的分区的id。MapReduce中提供了多种输出格式,用户可以灵活的定义文件输出的路径、文件名、输出格式等...原创 2019-04-12 20:45:57 · 2795 阅读 · 0 评论 -
MapReduce的MapTask数量如何确定?
在map阶段,MapReduce会对要处理的数据进行分片(split)操作,为每一个分片分配一个MapTask任务。接下来map()函数会对每一个分片中的每一行数据进行处理得到键值对(key,value)。那么数据分成多少片(how much splits)是如何确定的呢?先来了解两个概念block块(数据块,物理划分)block是HDFS中的基本存储单位,hadoop1.x默认大小为...原创 2019-04-08 20:25:37 · 9820 阅读 · 2 评论 -
MapReduce灵魂——看不见的Shuffle
1.Shuffle概述1.1 shuffle本意《柯林斯英汉双解大词典》的shuffle愿意为==“洗牌”==。shuffle:rearrange (a deck of cards) by sliding the cards over each other quickly.shuffle:洗牌同义词:mix(混合);mixup(混淆;拌和;调和)——《柯林斯英汉双解大词典》1.2...原创 2019-04-08 20:04:36 · 464 阅读 · 0 评论 -
MapReduce原理分析:自定义输入格式InputFormat
1 问题的提出MapReduce任务的输入文件一般是存储在HDFS里面。输入的文件格式包括:基于行的日志文件、二进制格式文件等,这些文件单个可能会达到GB甚至更大。那么MapReduce是如何读取这些数据的呢?当提交MapReduce任务时,驱动程序内会通过FileInputFormat.setInputPaths(job, new Path(inputPath))为任务注入数据,这个路径包含...原创 2019-04-11 11:25:17 · 1017 阅读 · 0 评论 -
Windows环境下MapReduce程序调试最有用技巧
背景MapReduce作为分布式计算框架,一般情况下要依赖于HDFS在linux环境下运行,打包运行成本高,但我们开发时往往在Windows环境下,有没有一种方式在Windows上像调试普通程序一样调试MR程序呢?RunJar是Hadoop提供的工具包,专门用于运行jar文件的程序,结合Maven工具,可以实现在Windows环境下调试MR程序的目的。调试方法(以WordCount为例)...原创 2019-04-01 19:32:06 · 384 阅读 · 0 评论 -
MapReduce编程模型详解— —以经典Word Count为例
MapReduce:来自于Google的计算模式MapReduce最早是由Google研究提出的一种面向大规模数据处理的并行计算模型和方法,其初衷主要是为了解决搜索引擎中大规模网页数据的并行化处理。由于MapReduce可以普遍应用于很多大规模数据的计算问题,Google进一步将其广泛应用于很多大规模数据处理问题。到目前为止,Google有上万个各种不同的算法问题和程序都使用MapReduce进...原创 2019-04-01 16:16:54 · 980 阅读 · 0 评论 -
MapReduce系列:原理、编程技巧和应用案例
MapReduce原理分布式计算框架MapReduce架构MapReduce编程模型详解— —以经典Word Count为例编程技巧Windows环境下MapReduce程序调试最有用技巧应用案例MapReduce应用案例1:数据去重MapReduce应用案例2:简单数据排序MapReduce应用案例3:简单数据倒排MapReduce应用案例4:二次排序(组合键机制实现)Map...原创 2019-04-06 10:57:39 · 421 阅读 · 0 评论 -
MapReduce应用案例6:二度好友发现
1.应用场景二度好友发现在社交网络中大量使用,QQ、微博、微信、社交网站等经常会推荐添加好友,其依据就是用户之间的好友关系。几个概念:一度好友是你的好友二度好友是好友的好友,二度好友发现是社交网络关系发现中的重要问题。从数据库设计的角度出发,即所谓的第三范式,尽量避免冗余,好友关系的表结构一般被设计为“用户-好友”,且一般用id来描述关系。如user friendA ...原创 2019-04-06 10:22:48 · 1124 阅读 · 0 评论 -
MapReduce应用案例4:二次排序(组合键机制实现)
1.应用场景二次排序是各类数据处理应用中经常遇到的问题,如学生成绩排名,先按照总分排名,如果总分一样按照英语成绩排名);海量日志分析中,日志先按照等级排名,FATAL(致命)等级的排在前面,ERROR等级次之,如果日志等级相同,则按照主机地址(IP)排名等。我们先以简单的小学生成绩排名为例,来说明本案例的应用场景。排序规则为先按照语文成绩降序排列,如果语文成绩相同,则按照数学成绩降序排列。输...原创 2019-04-05 20:10:53 · 565 阅读 · 0 评论 -
MapReduce应用案例3:简单数据倒排
1.需求描述接上一篇blog留下的问题,数据如何倒序输出?如输入12581283459...输出1 12832 583 454 125 9...2.实现思路MapReduce的Reduce阶段会按照key-velue对中的key进行排序,如果key为封装int的IntWritable类型,那么MapReduce按照数字大小对key排序,如果key为...原创 2019-04-04 22:03:33 · 511 阅读 · 0 评论 -
MapReduce应用案例2:简单数据排序
1.需求描述针对简单数据的排序需求并不复杂,大数据量文本中每行只存在一个数值,要求按照数值大小输出,且为数值标记行数。本案例对理解MR的原理深有帮助。输入12581283459...输出1 92 123 454 585 1283...2.实现思路MapReduce的Reduce阶段会按照key-velue对中的key进行排序,如果key为封装int...原创 2019-04-04 21:42:28 · 626 阅读 · 1 评论 -
MapReduce应用案例1:数据去重
1.应用场景数据去重属于数据预处理的一部分,在大量数据中发现重复的数据并清理,常用于统计大数据集的数据种类个数、网站日志中计算访问IP等场景。2.需求分析2.1 输入,多个文本文件文件1192.169.49.11192.169.49.12192.169.49.13192.169.49.13192.169.49.13...文件2 192.169.49.11192.169....原创 2019-04-04 21:18:45 · 1376 阅读 · 3 评论 -
分布式文件系统HDFS架构和数据读写流程
Hadoop核心由HDFS和MapReduce组成,HDFS负责分布式存储,MapReduce负责分布式计算。Hadoop框架整体架构Hadoop整体架构如下图所示,NameNode(命名节点/管理节点)和DataNode(数据节点)构成了HDFS的主要框架,JobTracker和TaskTracker构成了MapReduce的主要框架。HDFSHDFS(Hadoop Distrib...原创 2019-04-14 10:32:38 · 1478 阅读 · 0 评论