
MapReduce
MapReduce
小刘同学-很乖
这个作者很懒,什么都没留下…
展开
-
hadoop之MapReduce---常见错误及解决方案
导包容易出错。尤其Text和CombineTextInputFormat。Mapper中第一个输入的参数必须是LongWritable或者NullWritable,不可以是IntWritable. 报的错误是类型转换异常。java.lang.Exception: java.io.IOException: Illegal partition for 13926435656 (4),说明Par...原创 2020-04-26 09:14:14 · 1537 阅读 · 0 评论 -
hadoop之MapReduce---找博客共同好友案例
需求以下是博客的好友列表数据,冒号前是一个用户,冒号后是该用户的所有好友(数据中的好友关系是单向的)求出哪些人两两之间有共同好友,及他俩的共同好友都有谁?数据输入frienfd.txtA:B,C,D,F,E,OB:A,C,E,KC:F,A,D,ID:A,E,F,LE:B,C,D,M,LF:A,B,C,D,E,O,MG:A,C,D,E,FH:A,C,D,E,OI:A,O...原创 2020-04-26 09:13:45 · 340 阅读 · 0 评论 -
hadoop之MapReduce---TopN案例
需求输出流量使用量在前10的用户信息输入数据13470253144 180 180 36013509468723 7335 110349 11768413560439638 918 4938 585613568436656 3597 25635 2923213590439668 1116 954 207013630577991 6960 690 765013682846555...原创 2020-04-24 09:10:08 · 999 阅读 · 1 评论 -
hadoop之MapReduce---MapReduce排索引案例
倒排索引案例(多job串联)需求有大量的文本(文档、网页),需要建立搜索索引数据输入a.txtliujh pingpingliujh ssliujh ssb.txtliujh pingpingliujh pingpingpingping ssc.txtliujh ssliujh pingping期望输出数据liujh c.txt-->2 b.txt--&...原创 2020-04-23 09:25:47 · 168 阅读 · 0 评论 -
hadoop之MapReduce---Yarn资源调度器
Yarn是一个资源调度平台,负责为运算程序提供服务器运算资源,相当于一个分布式的操作系统平台,而MapReduce等运算程序则相当于运行于操作系统之上的应用程序Yarn基本架构YARN主要由ResourceManager、NodeManager、ApplicationMaster和Container等组件构成Yarn工作机制工作机制详解1)MR程序提交到客户端所在的节点。2)Yar...原创 2020-04-22 12:52:24 · 323 阅读 · 0 评论 -
hadoop之MapReduce---MapReduce优化方法
MapReduce 跑的慢的原因MapReduce 程序效率的瓶颈在于两点:计算机性能CPU、内存、磁盘健康、网络I/O 操作优化1)数据倾斜2)Map和Reduce数设置不合理3)Map运行时间太长,导致Reduce等待过久4)小文件过多5)大量的不可分块的超大文件6)Spill次数过多7)Merge次数过多等MapReduce优化方法MapReduce优化方法主要...原创 2020-04-21 08:34:38 · 168 阅读 · 0 评论 -
hadoop之MapReduce---MapReduce开发总结
在编写MapReduce程序时,需要考虑如下几个方面输入数据接口:InputFormat1)默认使用的实现类是:TextInputFormat2)TextInputFormat的功能逻辑是:一次读一行文本,然后将该行的起始偏移量作为key,行内容作为value返回3)KeyValueTextInputFormat每一行均为一条记录,被分隔符分割为key,value。默认分隔符是tab(\...原创 2020-04-21 08:34:21 · 206 阅读 · 0 评论 -
hadoop之MapReduce---压缩实操案例
数据流的压缩和解压缩CompressionCodec有两个方法可以用于轻松地压缩或解压缩数据。要想对正在被写入一个输出流的数据进行压缩,我们可以使用createOutputStream(OutputStreamout)方法创建一个CompressionOutputStream,将其以压缩格式写入底层的流。相反,要想对从输入流读取而来的数据进行解压缩,则调用createInputStream(...原创 2020-04-20 08:50:45 · 278 阅读 · 1 评论 -
hadoop之MapReduce---Hadoop数据压缩
压缩概述压缩技术能够有效减少底层存储系统(HDFS)读写字节数。压缩提高了网络带宽和磁盘空间的效率。在运行MR程序时,I/O操作、网络数据传输、 Shuffle和Merge要花大量的时间,尤其是数据规模很大和工作负载密集的情况下,因此,使用数据压缩显得非常重要。鉴于磁盘I/O和网络带宽是Hadoop的宝贵资源,数据压缩对于节省资源、最小化磁盘I/O和网络传输非常有帮助。可以在任意MapRedu...原创 2020-04-20 08:50:25 · 151 阅读 · 0 评论 -
hadoop之MapReduce---计数器应用,数据清洗(ETL)
计数器应用Hadoop为每个作业维护若干内置计数器,以描述多项指标。例如,某些计数器记录已处理的字节数和记录数,使用户可监控已处理的输入数据量和已产生的输出数据量。计数器API采用枚举的方式统计计数enum MyCounter{MALFORORMED,NORMAL}//对枚举定义的自定义计数器加1context.getCounter(MyCounter.MALFORORMED).i...原创 2020-04-17 11:37:18 · 387 阅读 · 0 评论 -
hadoop之MapReduce---Join多种应用
Reduce JoinReduce Join工作原理Map端的主要工作:为来自不同表或文件的key/value对,打标签以区别不同来源的记录。然后用连接字段作为key,其余部分和新加的标志作为value,最后进行输出Reduce端的主要工作:在Reduce端以连接字段作为key的分组已经完成,我们只需要在每一个分组当中将那些来源于不同文件的记录(在Map阶段已经打标志)分开,最后进行合并就o...原创 2020-04-16 09:02:38 · 173 阅读 · 0 评论 -
hadoop之MapReduce---OutputFormat数据输出
OutputFormat接口实现类OutputFormat是MapReduce输出的基类,所有实现MapReduce输出都实现了 OutputFormat接口。下面我们介绍几种常见的OutputFormat实现类。文本输出TextOutputFormat默认的输出格式是TextOutputFormat,它把每条记录写为文本行。它的键和值可以是任意类型,因为TextOutputFormat调...原创 2020-04-15 08:51:08 · 281 阅读 · 0 评论 -
hadoop之MapReduce---MapTask工作机制,ReduceTask工作机制
MapTask工作机制1)Read阶段:MapTask通过用户编写的RecordReader,从输入InputSplit中解析出一个个key/value。2)Map阶段:该节点主要是将解析出的key/value交给用户编写map()函数处理,并产生一系列新的key/value。3)Collect收集阶段:在用户编写map()函数中,当数据处理完成后,一般会调用OutputCollector...原创 2020-04-15 08:47:23 · 278 阅读 · 0 评论 -
hadoop之MapReduce---超详细Shuffle机制
Shuffle机制Map方法之后,Reduce方法之前的数据处理过程称之为ShufflePartition分区问题引出要求将统计结果按照条件输出到不同文件中(分区)。比如:将统计结果按照手机归属地不同省份输出到不同文件中(分区)默认Partitioner分区Apublic class HashPartitioner<K, V> extends Partitioner&...原创 2020-04-14 09:27:04 · 199 阅读 · 0 评论 -
hadoop之MapReduce---MapReduce详细工作流程
MapReduce工作流程流程示意图流程详解上面的流程是整个MapReduce最全工作流程,但是Shuffle过程只是从第7步开始到第16步结束,具体Shuffle过程详解,如下:1)MapTask收集我们的map()方法输出的kv对,放到内存缓冲区中2)从内存缓冲区不断溢出本地磁盘文件,可能会溢出多个文件3)多个溢出文件会被合并成大的溢出文件4)在溢出过程及合并的过程中,都要...原创 2020-04-14 09:26:43 · 1081 阅读 · 0 评论 -
hadoop之MapReduce---InputFormat数据输入
切片与MapTask并行度决定机制问题引出MapTask的并行度决定Map阶段的任务处理并发度,进而影响到整个Job的处理速度。思考:1G的数据,启动8个MapTask,可以提高集群的并发处理能力。那么1K的数据,也启动8个MapTask,会提高集群性能吗?MapTask并行任务是否越多越好呢?哪些因素影响了MapTask并行度?MapTask并行度决定机制数据块:Block是HDF...原创 2020-04-13 08:44:59 · 519 阅读 · 0 评论 -
hadoop之MapReduce---Hadoop序列化
序列化概述什么是序列化序列化就是把内存中的对象,转换成字节序列(或其他数据传输协议)以便于存储到磁盘(持久化)和网络传输反序列化就是将收到字节序列(或其他数据传输协议)或者是磁盘的持久化数据,转换成内存中的对象为什么要序列化一般来说,“活的”对象只生存在内存里,关机断电就没有了。而且“活的”对象只能由本地的进程使用,不能被发送到网络上的另外一台计算机。 然而序列化可以存储“活的”对象,...原创 2020-04-13 08:44:34 · 346 阅读 · 0 评论 -
hadoop之MapReduce---WordCount案例实操
常用数据序列化类型常用的数据类型对应的Hadoop数据序列化类型Java类型Hadoop Writable类型BooleanBooleanWritableByteByteWritableIntIntWritableFloatFloatWritableLongLongWritableDoubleDoubleWritableStr...原创 2020-04-10 09:14:22 · 362 阅读 · 0 评论 -
hadoop之MapReduce详细概述
MapReduce定义MapReduce是一个分布式运算程序的编程框架,是用户开发“基于Hadoop的数据分析应用”的核心框架MapReduce核心功能是将用户编写的业务逻辑代码和自带默认组件整合成一个完整的分布式运算程序,并发运行在一个Hadoop集群上MapReduce优点MapReduce 易于编程它简单的实现一些接口,就可以完成一个分布式程序,这个分布式程序可以分布到大量廉...原创 2020-04-10 09:14:00 · 579 阅读 · 1 评论