![](https://img-blog.csdnimg.cn/20201014180756918.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Hadoop
文章平均质量分 56
不爱研究的研究僧
这个作者很懒,什么都没留下…
展开
-
MapReduce实现TopN
MapReduce实现TopN原创 2023-02-02 16:29:29 · 1025 阅读 · 0 评论 -
Hadoop_Yarn调度器和调度算法
目录1.先进先出调度器(FIFO)2.容量调度器(Capacity Scheduler)3.公平调度器(Fair Scheduler)(1)特点(2)缺额含义(3) 队列资源分配方式Hadoop作业调度器主要有三种:FIFO、容量(Capacity Scheduler)和公平(Fair Scheduler)。Apache Hadoop3.1.3默认的资源调度器是Capacity Scheduler。CDH框架默认调度器是Fair Scheduler。1.先进先出调度...原创 2022-01-24 09:50:39 · 809 阅读 · 0 评论 -
Hadoop数据压缩
目录1.压缩的好处和坏处及原则2.MR支持的压缩编码3.压缩位置选择4.压缩参数配置5.压缩实操案例(1)Map输出端采用压缩(2)Reduce输出端采用压缩1.压缩的好处和坏处及原则压缩的优点:以减少磁盘IO、减少磁盘存储空间。压缩的缺点:增加CPU开销。压缩原则(1)运算密集型的Job,少用压缩(2)IO密集型的Job,多用压缩2.MR支持的压缩编码 压缩格式 Hadoop自带? 算法原创 2022-01-23 17:19:42 · 666 阅读 · 0 评论 -
Hadoop_MapReduce_Join应用
目录1.Reduce Join2.Reduce Join案例实操1)需求2)需求分析3)代码实现4)测试5)总结3.Map Join4.Map Join案例实操1)需求2)需求分析3)实现代码1.Reduce JoinMap端的主要工作:为来自不同表或文件的key/value对,打标签以区别不同来源的记录。然后用连接字段作为key,其余部分和新加的标志作为value,最后进行输出。Reduce端的主要工作:在Reduce端以连接字段作为key的分.原创 2022-01-21 21:27:30 · 784 阅读 · 0 评论 -
Hadoop_MapReduce_OutputFormat数据输出
目录1.OutputFormat接口实现类2.自定义OutputFormat案例实操1)需求2)需求分析3)代码(1)编写LogMapper类(2)编写LogReducer类(3)自定义一个LogOutputFormat类(4)编写LogRecordWriter类(5)编写LogDriver类OutputFormat是Reduce之后的处理1.OutputFormat接口实现类2.自定义OutputFormat案例实操1)需求过滤输入...原创 2022-01-18 20:28:00 · 614 阅读 · 0 评论 -
Hadoop_MapReduce_Combiner合并
目录1.自定义Combiner实现步骤2.Combiner合并案例实操1)需求2)需求分析3)案例实操-方案一4)案例实操-方案二1.自定义Combiner实现步骤(a)自定义一个Combiner继承Reducer,重写Reduce方法public class WordCountCombiner extends Reducer<Text, IntWritable, Text, IntWritable> { private IntWritabl.原创 2022-01-17 17:39:20 · 408 阅读 · 0 评论 -
Hadoop_MapReduce_WritableComparable排序
目录1.排序分类2.自定义排序WritableComparable原理分析3.WritableComparable排序案例实操(全排序)1)需求2)需求分析3)代码实现4.WritableComparable排序案例实操(二次排序)1)代码5.WritableComparable排序案例实操(区内排序)1)需求2)需求分析3)代码1.排序分类2.自定义排序WritableComparable原理分析bean对象做为key传输,需要实现...原创 2022-01-17 16:19:07 · 518 阅读 · 0 评论 -
Hadoop_MapReduce_Shuffle机制
Map方法之后,Reduce方法之前的数据处理过程称之为Shuffle。理解:1.Map方法得<k,v>数据,进行分区标记后存入环形缓冲区,图中环形缓冲区左边箭头是索引写入,右边箭头是数据写入,当环形缓冲区的容量达到80%时开启一个后台线程将内容溢出(spill)到磁盘,map输出继续写到缓冲区。80%后反向是从索引方向和数据方向最后写入位置的20%中间为起点,反向写索引和数据。如果到100%,要等溢写结束才能写数据,到80%的话可以一边写入环形缓冲区,一边溢出写入磁盘。2.溢出原创 2022-01-17 09:11:44 · 502 阅读 · 0 评论 -
Hadoop_MapReduce_Partition分区案例实操
目录1.需求2.需求分析3.代码(1)在之前的序列化案例实操的基础上,增加一个分区类(2)在driver类中增加自定义数据分区设置和ReduceTask设置1.需求将统计结果按照手机归属地不同省份输出到不同文件中(分区)(1)输入数据:txt文件(2)期望输出数据:手机号136、137、138、139开头都分别放到一个独立的4个文件中,其他开头的放到一个文件中。2.需求分析在之前的序列化案例实操上进行修改。3.代码(1)在之前的序列化案例.原创 2022-01-16 17:08:50 · 282 阅读 · 0 评论 -
Hadoop_MapReduce_Partition分区
shuffle是通过分区partitioner 分配给Reduce,一个partition对应一个Reduce,Partitioner是shuffle的一部分。1.默认Partition分区默认分区是根据key的hashCode对ReduceTasks个数取模得到的,用户没法控制哪个key存储到哪个分区。2.自定义Partition分区因此若要按条件输出到不同文件中(分区),需要自定义类去继承Partitioner。后两步设置一定要做,否则实现不了!3.分区总结.原创 2022-01-16 16:56:47 · 235 阅读 · 0 评论 -
Hadoop序列化案例实操
目录1.需求2.需求分析3.自定义对象和三个类的程序(1)编写流量统计的Bean对象(2)编写Mapper类(3)编写Reducer类(4)编写Driver驱动类3.结果1.需求统计每一个手机号耗费的总上行流量、总下行流量、总流量(1)输入数据:txt文件(2)输入数据格式(3)期望输出数据格式2.需求分析3.自定义对象和三个类的程序(1)编写流量统计的Bean对象/** * 1、定义类实现writable接..原创 2022-01-15 21:04:29 · 377 阅读 · 0 评论 -
Hadoop序列化
目录1.序列化与发序列化含义2.序列化目的3.为什么不用Java的序列化4.常用数据序列化类型5.自定义对象实现序列化接口(Writable)1.序列化与发序列化含义序列化就是把内存中的对象,转换成字节序列(或其他数据传输协议)以便于存储到磁盘(持久化)和网络传输。反序列化就是将收到字节序列(或其他数据传输协议)或者是磁盘的持久化数据,转换成内存中的对象。2.序列化目的一般来说,“活的”对象只生存在内存里,关机断电就没有了。而且“活的”对象只能由本地的进程使用,不原创 2022-01-15 20:44:07 · 88 阅读 · 0 评论 -
Hadoop_MapReduce_WordCount案例
1、需求在给定的文本文件中统计输出每一个单词出现的总次数(1)输入数据txt文件(2)期望输出数据atguigu 2banzhang 1cls 2hadoop 1jiao 1ss 2xue 12、实现按照MapReduce编程规范,分别编写Mapper,Reducer,Driver。(1)环境准备1)创建maven工程,MapReduceDemo(maven官网下载maven,利用阿里镜像速度快,仓库选择自己建的文件夹,默认在c盘)...原创 2021-12-26 21:30:39 · 1581 阅读 · 0 评论 -
Hadoop_MapReduce_WordCount案例错误:Shuffle$ShuffleError: error in shuffle in localfetcher#1
参考map100% reduce0%&error in shuffle in localfetcher#1_闲人编程的博客-CSDN博客错误原因是电脑用户名有个空格,采用更改电脑用户名的方法有效解决 ,或者在代码里设置(没尝试)原创 2021-12-26 19:31:53 · 1030 阅读 · 0 评论 -
Hadoop_API获取文件详细信息&判断是文件还是文件夹
1.获取文件详细信息 /** * 获取文件详细信息 */ @Test public void fileDetail() throws IOException { //参数解读:参数1:路径;参数2:是否递归 RemoteIterator<LocatedFileStatus> listFiles = fs.listFiles(new Path("/"), true); //遍历文件 wh原创 2021-12-22 20:59:08 · 1063 阅读 · 0 评论 -
Hadoop_API文件下载&文件删除&文件移动、更名
1、完整代码package com.atguigu.hdfs;import org.apache.hadoop.conf.Configuration;import org.apache.hadoop.fs.FileSystem;import org.apache.hadoop.fs.Path;import org.junit.After;import org.junit.Before;import org.junit.Test;import java.io.IOException;原创 2021-12-19 21:21:09 · 917 阅读 · 1 评论 -
Hadoop_API创建文件夹&上传文件
package com.atguigu.hdfs;import org.apache.hadoop.conf.Configuration;import org.apache.hadoop.fs.FileSystem;import org.apache.hadoop.fs.Path;import org.junit.After;import org.junit.Before;import org.junit.Test;import java.io.IOException;import .原创 2021-12-19 20:07:38 · 1638 阅读 · 0 评论 -
Hadoop 执行WordCount程序发生的错误
Container is running 274913792B beyond the 'VIRTUAL' memory limit. Current usage: 71.1 MB of 1 GB physical memory used; 2.4 GB of 2.1 GB virtual memory used. Killing container.虚拟内存不够,container被杀死解决办法:Container killed on request. Exit code is 143 <.原创 2021-12-17 21:15:43 · 448 阅读 · 0 评论