自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(101)
  • 收藏
  • 关注

转载 Kafuka面试(整合Kafka两种模式区别)

整合Kafka两种模式说明★面试题:Receiver & Direct开发中我们经常会利用SparkStreaming实时地读取kafka中的数据然后进行处理,在spark1.3版本后,kafkaUtils里面提供了两种创建DStream的方法:1.Receiver接收方式:KafkaUtils.createDstream(开发中不用,了解即可,但是面试可能会...

2019-09-14 21:08:00 1475

转载 secondary namenode 检查点

secondary namenodeNameNode职责是管理元数据信息,DataNode的职责是负责数据具体存储,那么SecondaryNameNode的作用是什么?对很多初学者来说是非常迷惑的。它为什么会出现在HDFS中。从它的名字上看,它给人的感觉就像是NameNode的备份。但它实际上却不是。大家猜想一下,当HDFS集群运行一段事件后,就会出现下面一些问题:...

2019-09-14 21:07:00 735

转载 MapReduce总结

MapReduce思想: 核心: 分而治之,先分在和 应用场景: 复杂任务,没有依赖,以并行提供处理效率 脉络体现: 先map后reduce map:把复杂的任务拆分成任务,局部进行计算,得出局部结果 reduce:把map的局部结果...

2019-09-14 21:06:00 273

转载 Map、Reduce和Job方法总结

map方法:map的方法public void map(Object key, Text value, Context context) throws IOException, InterruptedException {…}key:偏移量,一般为0,用不到value:每行的值context:可以记录输入的key和value例如:context.w...

2019-09-14 21:05:00 558

转载 Hadoop 两种环境下的checkpoint机制

伪分布式环境:HA环境checkpoint机制配置了HA的HDFS中,有active和standby namenode两个namenode节点。他们的内存中保存了一样的集群元数据信息,因为standby namenode已经将集群状态存储在内存中了,所以创建检查点checkpoint的过程只需要从内存中生成新的fsimage。详细过程如下: (standby na...

2019-09-14 21:04:00 157

转载 Reduce端join弊端&方法key探讨

转载于:https://www.cnblogs.com/TiePiHeTao/p/fe9b73346f72255aee178385e3aae9a4.html

2019-09-14 21:04:00 231

转载 MapReduce的Partitioner案例

项目简介这里给出一个经典的词频统计的案例:统计如下样本数据中每个单词出现的次数。SparkHBaseHiveFlinkStormHadoopHBaseSparkFlinkHBaseStormHBaseHadoopHiveFlinkHBaseFlinkHiveStormHiveFlinkHadoopHBaseHiveHadoo...

2019-09-14 21:03:00 204

转载 MapReduce作业任务的管理

通过 web console 监控作业的运行:通过 yarn application 命令来进行作业管理列出帮助信息:yarn application --help查看运行的 MapReduce 程序:yarn application --list查看应用状态:yarn application -status <application_id&g...

2019-09-14 21:02:00 153

转载 MapReduce的WordCount案例

项目简介这里给出一个经典的词频统计的案例:统计如下样本数据中每个单词出现的次数。SparkHBaseHiveFlinkStormHadoopHBaseSparkFlinkHBaseStormHBaseHadoopHiveFlinkHBaseFlinkHiveStormHiveFlinkHadoopHBaseHiveHadoopSpark...

2019-09-14 21:02:00 205

转载 MapReduce使用Partitioner分区案例

Mapper:import java.io.IOException;import org.apache.hadoop.io.LongWritable;import org.apache.hadoop.io.NullWritable;import org.apache.hadoop.io.Text;import org.apache.hadoop.mapreduce...

2019-09-14 21:01:00 246

转载 MapReduce案例WordCount

所需的 pom 依赖:<dependencies> <dependency> <groupId>org.apache.hadoop</groupId> <artifactId>hadoop-client</artifactId> <vers...

2019-09-14 21:00:00 142

转载 MapReduce排序案例

排序:注意排序按照 Key2(Mapper输出的key) 排序,key2 需要实现WritableComparable接口数据准备:7369,SMITH,CLERK,7902,1980/12/17,800,,207499,ALLEN,SALESMAN,7698,1981/2/20,1600,300,307521,WARD,SALESMAN,7698,1981...

2019-09-14 21:00:00 164

转载 MapReduce倒排索引

问题分析实现代码InversIndex类import java.io.IOException;import org.apache.hadoop.conf.Configuration;import org.apache.hadoop.fs.Path;import org.apache.hadoop.io.LongWritable;imp...

2019-09-14 20:59:00 129

转载 MapReduce自定义排序编程

排序和分组在map和reduce阶段进行排序时,比较的是k2。v2是不参与排序比较的。如果要想让v2也进行排序,需要把k2和v2组装成新的类,作为k2,才能参与比较。分组时也是按照k2进行比较的。案例说明数据:zhangsan@163.com600002014-02-20lisi@163.com200002014-02-20li...

2019-09-14 20:58:00 225

转载 GroupingComparator 自定义分组

图示说明:有如下订单数据:现在需要求出每一个订单中最贵的商品。需求分析实现(1)利用“订单id和成交金额”作为key,可以将map阶段读取到的所有订单数据按照id分区,按照金额排序,发送到reduce。(2)在reduce端利用groupingcomparator将订单id相同的kv聚合成组,然后取第一个即是最大值。代码实现:定...

2019-09-14 20:57:00 127

转载 cdh 2.6.0版本和apache 2.7.x版本 本地执行环境的差异。

问题:在cdh中 reducetask个数不管设置几个 最终都是一个执行。原因:两个版本中 本地执行环境api发生了改变注意:两个版本的api在yarn集群模式都是一样的。localJobRunner:cdh:int numReduceTasks = this.job.getNumReduceTasks(); ...

2019-09-14 20:56:00 110

转载 CombineTextInputFormat小文件处理场景

存在的问题HDFS设计是用来存储海量数据的,特别适合存储TB、PB量级别的数据。但是随着时间的推移,HDFS上可能会存在大量的小文件,这里说的小文件指的是文件大小远远小于一个HDFS块(128MB)的大小;HDFS上存在大量的小文件至少会产生以下影响:消耗NameNode大量的内存延长MapReduce作业的总运行时间因为MapReduce框架默认的 TextInpu...

2019-09-14 20:56:00 226

转载 DistributedCache 分布式缓存

分布式缓存DistributedCache概念:所谓的分布式缓存指的是 hadoop框架可以把用户指定的小文件发送到各个maptask运行的机器上,进行缓存,便于maptask读取该文件内容 进行关联查询操作,这就是所谓的map端join。适用场合:通常适用于大文件关联小文件,把小文件进行分布式缓存。举例说明...

2019-09-14 20:55:00 275

转载 MapReduce其他功能

如何获取mr当前文件名称://获取当前处理切片FileSplit fileSplit = (FileSplit)context.getInputSplit();//根据当前切片获取String fileName = fileSplit.getPath().getNmae();mr程序是否可以没有reduce阶段?答;如果可以,全局...

2019-09-14 20:54:00 88

转载 MapReduce数据压缩机制

压缩目的: 降低数据磁盘存储空间,减少传输数据的IO量 压缩追求的指标: 压缩时间 越短越好 压缩化 越大越好 硬件需求如:CPU 算法支持 mr中可以使用压缩的地方: map的输出数据进行数据压缩,减少shuff给reduce的数据量 ...

2019-09-14 20:54:00 185

转载 MapReduce优化参数

资源相关参数/*在MapReduce应用程序中配置就可以生效*/(1) mapreduce.map.memory.mb: 一个Map Task可使用的内存上限(单位:MB),默认为1024。如果Map Task实际使用的资源量超过该值,则会被强制杀死。(2) mapreduce.reduce.memory.mb: 一个Reduce Task可使用的资...

2019-09-14 20:53:00 142

转载 Reducetask并行度机制

reducetask并行度同样影响整个job的执行并发度和执行效率,与maptask的并发数由切片数决定不同,Reducetask数量的决定是可以直接手动设置:job.setNumReduceTasks(4);如果数据分布不均匀,就有可能在reduce阶段产生数据倾斜。注意: reducetask数量并不是任意设置,还要考虑业务逻辑需求,有些情况下,需要计算全局汇总结果,就只...

2019-09-14 20:52:00 266

转载 MapReduce并行度机制

MapTask的并行度指的是map阶段有多少个并行的task共同处理任务。map阶段的任务处理并行度,势必影响到整个job的处理速度。那么,MapTask并行实例是否越多越好呢?其并行度又是如何决定呢?一个MapReducejob的map阶段并行度由客户端在提交job时决定,即客户端提交job之前会对待处理数据进行逻辑切片。切片完成会形成切片规划文件(job.split),每个逻辑切...

2019-09-14 20:51:00 661

转载 Writable接口与序列化机制

序列化概念序列化(Serialization)是指把结构化对象转化为字节流。反序列化(Deserialization)是序列化的逆过程。即把字节流转回结构化对象。Java序列化(java.io.Serializable)Hadoop序列化的特点序列化格式特点:紧凑:高效使用存储空间。快速:读写数据的额外开销小可扩展:可透明地读取老格式的数据...

2019-09-14 20:51:00 722

转载 Shuffle阶段数据的压缩机制

在shuffle阶段,大量的数据从map阶段输出,发送到reduce阶段,这一过程中,可能会涉及到大量的网络IO。输出数据较大时,使用hadoop提供的压缩机制对数据进行压缩,可以指定压缩的方式。减少网络传输带宽和存储的消耗;可以对map的输出进行压缩(map输出到reduce输入的过程,可以shuffle过程中网络传输的数据量)可以对reduce的输出结果进行压缩(最终...

2019-09-14 20:50:00 125

转载 MapReduce的Combiner组件

每一个map都可能会产生大量的本地输出,Combiner的作用就是对map端的输出先做一次合并,以减少在map和reduce节点之间的数据传输量,以提高网络IO性能,是MapReduce的一种优化手段之一。combiner是MR程序中Mapper和Reducer之外的一种组件combiner组件的父类就是Reducercombiner和reducer的区别在...

2019-09-14 20:49:00 303

转载 MapReduce的Partitioner编程

1. 概述序列化(Serialization)是指把结构化对象转化为字节流。反序列化(Deserialization)是序列化的逆过程。把字节流转为结构化对象。当要在进程间传递对象或持久化对象的时候,就需要序列化对象成字节流,反之当要将接收到或从磁盘读取的字节流转换为对象,就要进行反序列化。Java的序列化(Serializable)是一个重量级序列化框架,一个对象被...

2019-09-14 20:48:00 137

转载 Mapreduce编程技巧

在MR中,牢牢记住key时什么,因为key许多默认属性排序===》key的字典序分区===》key的哈希值 % reduce task Num分组===》key相同为一组x1排序===》key的字典序2分区===》key的哈希...

2019-09-14 20:47:00 101

转载 MapReduce数据分区

一个:多个代码实现:Mapper:.mapreduce.Mapper.Context;public class EmployeeMapper extends Mapper<LongWritable, Text, LongWritable, Employee> { @Override p...

2019-09-14 20:47:00 259

转载 MapReduce输入输出

MapReduce框架运转在<key,value>键值对上,也就是说,框架把作业的输入看成是一组<key,value>键值对,同样也产生一组<key,value>键值对作为作业的输出,这两组键值对可能是不同的。一个MapReduce作业的输入和输出类型如下图所示:可以看出在整个标准的流程中,会有三组<key,value>键值...

2019-09-14 20:46:00 94

转载 MapReduce的Shuffle机制

map阶段处理的数据如何传递给reduce阶段,是MapReduce框架中最关键的一个流程,这个流程就叫shuffle。shuffle: 洗牌、发牌——(核心机制:数据分区,排序,合并)。shuffle是Mapreduce的核心,它分布在Mapreduce的map阶段和reduce阶段。一般把从Map产生输出开始到Reduce取得数据作为输入之前的过程称作shuffle。...

2019-09-14 20:45:00 153

转载 MapReduce的ReduceTask执行机制

Reduce大致分为copy、sort、reduce三个阶段,重点在前两个阶段。copy阶段包含一个eventFetcher来获取已完成的map列表,由Fetcher线程去copy数据,在此过程中会启动两个merge线程,分别为inMemoryMerger和onDiskMerger,分别将内存中的数据merge到磁盘和将磁盘中的数据进行merge。待数据copy完成之后,copy阶段就完...

2019-09-14 20:44:00 194

转载 MapReduce的MapTask执行机制

Map阶段流程:input File通过split被逻辑切分为多个split文件,通过Record按行读取内容给map(用户自己实现的)进行处理,数据被map处理结束之后交给OutputCollector收集器,对其结果key进行分区(默认使用hash分区),然后写入buffer,每个map task都有一个内存缓冲区,存储着map的输出结果,当缓冲区快满的时候需要将缓冲区的数据以一个临...

2019-09-14 20:43:00 123

转载 MapReduce逻辑切片规则

转载于:https://www.cnblogs.com/TiePiHeTao/p/54e400ee6c732f7f6315a93c04fe3013.html

2019-09-14 20:42:00 400

转载 MapReduce程序运行模式

本地运行模式:mapreduce程序是被提交给LocalJobRunner在本地以单进程的形式运行而处理的数据及输出结果可以在本地文件系统,也可以在hdfs上怎样实现本地运行?写一个程序,不要带集群的配置文件本质是程序的conf中是否有mapreduce.framework.name=local以及yarn.resourcemanager.hostname参...

2019-09-14 20:42:00 373

转载 MapReduce执行流程

MapReduce的处理流程解析Mapper任务执行过程详解l第一阶段是把输入目录下文件按照一定的标准逐个进行逻辑切片,形成切片规划。默认情况下,Split size = Block size。每一个切片由一个MapTask处理。(getSplits)l第二阶段是对切片中的数据按照一定的规则解析成<key,value>对。默认规则是把每一行文本内容解析成...

2019-09-14 20:41:00 76

转载 MapReduce设计构思

MapReduce是一个分布式运算程序的编程,框架核心功能是将用户编写的业务逻辑代码和自带默认组件整合成一个完整的分布式运算程序,并发运行在Hadoop集群上。既然是做计算的框架,那么表现形式就是有个输入(input),MapReduce操作这个输入(input),通过本身定义好的计算模型,得到一个输出(output)。对许多开发者来说,自己完完全全实现一个并行计算程序难度太...

2019-09-14 20:40:00 450

转载 MapReduce框架结构

一个完整的mapreduce程序在分布式运行时有三类实例进程MRAppMaster:负责整个程序的过程调度及状态协调!MapTask:负责map阶段的整个数据处理流程!ReductTask:负责reduce阶段的整个数据处理流程!图示:执行步骤: map任务处理:读取输入文件内容,解析为key...

2019-09-14 20:40:00 191

转载 MapReduce核心思想

核心: 分而治之,先分再和俩个阶段: Map阶段(分):如果任何可以拆分并且没有依赖,那么就可以把复杂的任务拆分成小任务拆分成下任务后,进行并行计算,提高处理效率 Reduce阶段(合):把map阶段的各个局部结果进行汇总,得到最终结果!来源:来源于生活,由谷歌提出,...

2019-09-14 20:39:00 363

转载 Yarn--集群资源管理器--总结

一、hadoop yarn 简介Apache YARN (Yet Another Resource Negotiator) 是 hadoop 2.0 引入的集群资源管理系统。用户可以将各种服务框架部署在 YARN 上,由 YARN 进行统一地管理和资源分配。二、YARN架构1. ResourceManagerResourceManager 通常在独立的机器上...

2019-09-14 20:37:00 367

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除