摘要: 整合Kafka两种模式说明 ★面试题:Receiver & Direct 开发中我们经常会利用SparkStreaming实时地读取kafka中的数据然后进行处理,在spark1.3版本后,kafkaUtils里面提供了两种创建DStream的方法: 1.Receiver接收方式: KafkaUti 阅读全文
posted @ 2019-09-14 21:08 DaBai的黑屋 阅读(1739) 评论(0) 推荐(0)
摘要: secondary namenode NameNode职责是管理元数据信息,DataNode的职责是负责数据具体存储,那么SecondaryNameNode的作用是什么?对很多初学者来说是非常迷惑的。它为什么会出现在HDFS中。从它的名字上看,它给人的感觉就像是NameNode的备份。但它实际上却不 阅读全文
posted @ 2019-09-14 21:07 DaBai的黑屋 阅读(468) 评论(0) 推荐(0)
摘要: MapReduce思想: 核心: 分而治之,先分在和 应用场景: 复杂任务,没有依赖,以并行提供处理效率 脉络体现: 先map后reduce map:把复杂的任务拆分成任务,局部进行计算,得出局部结果 reduce:把map的局部结果进行全局汇总,得到最终结果 MapReduce设计构思: 如何进行 阅读全文
posted @ 2019-09-14 21:06 DaBai的黑屋 阅读(556) 评论(0) 推荐(1)
摘要: map方法: map的方法 public void map(Object key, Text value, Context context) throws IOException, InterruptedException {…} key:偏移量,一般为0,用不到 value:每行的值 contex 阅读全文
posted @ 2019-09-14 21:05 DaBai的黑屋 阅读(1214) 评论(0) 推荐(0)
摘要: 伪分布式环境: HA环境checkpoint机制 配置了HA的HDFS中,有active和standby namenode两个namenode节点。他们的内存中保存了一样的集群元数据信息,因为standby namenode已经将集群状态存储在内存中了,所以创建检查点checkpoint的过程只需要 阅读全文
posted @ 2019-09-14 21:04 DaBai的黑屋 阅读(618) 评论(0) 推荐(0)
摘要: <!--more--> 阅读全文
posted @ 2019-09-14 21:04 DaBai的黑屋 阅读(279) 评论(0) 推荐(0)
摘要: 项目简介 这里给出一个经典的词频统计的案例:统计如下样本数据中每个单词出现的次数。 SparkHBase HiveFlinkStormHadoopHBaseSpark Flink HBaseStorm HBaseHadoopHiveFlink HBaseFlinkHiveStorm HiveFlin 阅读全文
posted @ 2019-09-14 21:03 DaBai的黑屋 阅读(245) 评论(0) 推荐(0)
摘要: 项目简介 这里给出一个经典的词频统计的案例:统计如下样本数据中每个单词出现的次数。 SparkHBase HiveFlinkStormHadoopHBaseSpark Flink HBaseStorm HBaseHadoopHiveFlink HBaseFlinkHiveStorm HiveFlin 阅读全文
posted @ 2019-09-14 21:02 DaBai的黑屋 阅读(573) 评论(0) 推荐(0)
摘要: 通过 web console 监控作业的运行: <!--more--> 通过 yarn application 命令来进行作业管理 列出帮助信息:yarn application --help 查看运行的 MapReduce 程序:yarn application --list 查看应用状态:yar 阅读全文
posted @ 2019-09-14 21:02 DaBai的黑屋 阅读(509) 评论(2) 推荐(0)
摘要: Mapper: import java.io.IOException; import org.apache.hadoop.io.LongWritable; import org.apache.hadoop.io.NullWritable; import org.apache.hadoop.io.Te 阅读全文
posted @ 2019-09-14 21:01 DaBai的黑屋 阅读(438) 评论(0) 推荐(0)
摘要: 所需的 pom 依赖: <dependencies> <dependency> <groupId>org.apache.hadoop</groupId> <artifactId>hadoop-client</artifactId> <version>2.7.3</version> </depende 阅读全文
posted @ 2019-09-14 21:00 DaBai的黑屋 阅读(124) 评论(0) 推荐(0)
摘要: 排序:注意排序按照 Key2(Mapper输出的key) 排序,key2 需要实现WritableComparable接口 数据准备: 7369,SMITH,CLERK,7902,1980/12/17,800,,20 7499,ALLEN,SALESMAN,7698,1981/2/20,1600,3 阅读全文
posted @ 2019-09-14 21:00 DaBai的黑屋 阅读(293) 评论(0) 推荐(0)
摘要: 问题分析<!--more--> 实现代码 InversIndex类 import java.io.IOException; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.fs.Path; import or 阅读全文
posted @ 2019-09-14 20:59 DaBai的黑屋 阅读(184) 评论(0) 推荐(0)
摘要: 排序和分组 在map和reduce阶段进行排序时,比较的是k2。v2是不参与排序比较的。如果要想让v2也进行排序,需要把k2和v2组装成新的类,作为k2,才能参与比较。 分组时也是按照k2进行比较的。 案例说明 数据: zhangsan@163.com600002014-02-20 lisi@163 阅读全文
posted @ 2019-09-14 20:58 DaBai的黑屋 阅读(386) 评论(0) 推荐(0)
摘要: 图示说明: 图示说明: 有如下订单数据: 现在需要求出每一个订单中最贵的商品。 需求分析实现 (1)利用“订单id和成交金额”作为key,可以将map阶段读取到的所有订单数据按照id分区,按照金额排序,发送到reduce。 (2)在reduce端利用groupingcomparator将订单id相同 阅读全文
posted @ 2019-09-14 20:57 DaBai的黑屋 阅读(515) 评论(0) 推荐(0)
摘要: 问题:在cdh中 reducetask个数不管设置几个 最终都是一个执行。 原因:两个版本中 本地执行环境api发生了改变 注意:两个版本的api在yarn集群模式都是一样的。<!--more--> localJobRunner: cdh: int numReduceTasks = this.job 阅读全文
posted @ 2019-09-14 20:56 DaBai的黑屋 阅读(157) 评论(0) 推荐(0)
摘要: 存在的问题 HDFS设计是用来存储海量数据的,特别适合存储TB、PB量级别的数据。但是随着时间的推移,HDFS上可能会存在大量的小文件,这里说的小文件指的是文件大小远远小于一个HDFS块(128MB)的大小;HDFS上存在大量的小文件至少会产生以下影响: 消耗NameNode大量的内存 延长MapR 阅读全文
posted @ 2019-09-14 20:56 DaBai的黑屋 阅读(490) 评论(0) 推荐(0)
摘要: 分布式缓存DistributedCache 概念: 所谓的分布式缓存指的是 hadoop框架可以把用户指定的小文件发送到各个maptask运行的机器上,进行缓存,便于maptask读取该文件内容 进行关联查询操作,这就是所谓的map端join。 概念: 适用场合: <!--more--> 通常适用于 阅读全文
posted @ 2019-09-14 20:55 DaBai的黑屋 阅读(956) 评论(0) 推荐(0)
摘要: 如何获取mr当前文件名称: //获取当前处理切片<!--more-->FileSplit fileSplit = (FileSplit)context.getInputSplit();//根据当前切片获取String fileName = fileSplit.getPath().getNmae(); 阅读全文
posted @ 2019-09-14 20:54 DaBai的黑屋 阅读(142) 评论(0) 推荐(0)
摘要: 压缩目的: 降低数据磁盘存储空间,减少传输数据的IO量 压缩追求的指标: 压缩时间 越短越好 压缩化 越大越好<!--more--> 硬件需求如:CPU 算法支持 mr中可以使用压缩的地方: map的输出数据进行数据压缩,减少shuff给reduce的数据量 reduce的输出进行数据压缩,减少最终 阅读全文
posted @ 2019-09-14 20:54 DaBai的黑屋 阅读(300) 评论(0) 推荐(0)
摘要: 资源相关参数 /*在MapReduce应用程序中配置就可以生效*/ 一个Map Task可使用的内存上限(单位:MB),默认为1024。如果Map Task实际使用的资源量超过该值,则会被强制杀死。 一个Reduce Task可使用的资源上限(单位:MB),默认为1024。如果Reduce Task 阅读全文
posted @ 2019-09-14 20:53 DaBai的黑屋 阅读(535) 评论(0) 推荐(0)
摘要: reducetask并行度同样影响整个job的执行并发度和执行效率,与maptask的并发数由切片数决定不同,Reducetask数量的决定是可以直接手动设置:<!--more--> job.setNumReduceTasks(4); 如果数据分布不均匀,就有可能在reduce阶段产生数据倾斜。 注 阅读全文
posted @ 2019-09-14 20:52 DaBai的黑屋 阅读(460) 评论(0) 推荐(0)
摘要: MapTask的并行度指的是map阶段有多少个并行的task共同处理任务。map阶段的任务处理并行度,势必影响到整个job的处理速度。那么,MapTask并行实例是否越多越好呢?其并行度又是如何决定呢?<!--more--> 一个MapReducejob的map阶段并行度由客户端在提交job时决定, 阅读全文
posted @ 2019-09-14 20:51 DaBai的黑屋 阅读(708) 评论(0) 推荐(1)
摘要: 序列化概念<!--more--> 序列化(Serialization)是指把结构化对象转化为字节流。 反序列化(Deserialization)是序列化的逆过程。即把字节流转回结构化对象。 Java序列化(java.io.Serializable) Hadoop序列化的特点 序列化格式特点: 紧凑: 阅读全文
posted @ 2019-09-14 20:51 DaBai的黑屋 阅读(774) 评论(0) 推荐(0)
摘要: 在shuffle阶段,大量的数据从map阶段输出,发送到reduce阶段,这一过程中,可能会涉及到大量的网络IO。 输出数据较大时,使用hadoop提供的压缩机制对数据进行压缩,可以指定压缩的方式。减少网络传输带宽和存储的消耗; 可以对map的输出进行压缩(map输出到reduce输入的过程,可以s 阅读全文
posted @ 2019-09-14 20:50 DaBai的黑屋 阅读(294) 评论(0) 推荐(0)
摘要: 每一个map都可能会产生大量的本地输出,Combiner的作用就是对map端的输出先做一次合并,以减少在map和reduce节点之间的数据传输量,以提高网络IO性能,是MapReduce的一种优化手段之一。 combiner是MR程序中Mapper和Reducer之外的一种组件 combiner组件 阅读全文
posted @ 2019-09-14 20:49 DaBai的黑屋 阅读(817) 评论(0) 推荐(0)
摘要: 1. 概述 序列化(Serialization)是指把结构化对象转化为字节流。 反序列化(Deserialization)是序列化的逆过程。把字节流转为结构化对象。 当要在进程间传递对象或持久化对象的时候,就需要序列化对象成字节流,反之当要将接收到或从磁盘读取的字节流转换为对象,就要进行反序列化。 阅读全文
posted @ 2019-09-14 20:48 DaBai的黑屋 阅读(175) 评论(0) 推荐(0)
摘要: 在MR中,牢牢记住key时什么,因为key许多默认属性 排序 》key的字典序 分区 》key的哈希值 % reduce task Num 分组 》key相同为一组 <!--more--> x 1 排序 》key的字典序 2 分区 》key的哈希值 % reduce task Num 3 分组 》k 阅读全文
posted @ 2019-09-14 20:47 DaBai的黑屋 阅读(204) 评论(0) 推荐(0)
摘要: 一个: <!--more--> 多个 代码实现: Mapper: 一个: 多个 代码实现: Mapper: .mapreduce.Mapper.Context; public class EmployeeMapper extends Mapper<LongWritable, Text, LongWr 阅读全文
posted @ 2019-09-14 20:47 DaBai的黑屋 阅读(433) 评论(0) 推荐(0)
摘要: MapReduce框架运转在<key,value>键值对上,也就是说,框架把作业的输入看成是一组<key,value>键值对,同样也产生一组<key,value>键值对作为作业的输出,这两组键值对可能是不同的。 <!--more--> 一个MapReduce作业的输入和输出类型如下图所示:可以看出在 阅读全文
posted @ 2019-09-14 20:46 DaBai的黑屋 阅读(218) 评论(0) 推荐(0)
摘要: map阶段处理的数据如何传递给reduce阶段,是MapReduce框架中最关键的一个流程,这个流程就叫shuffle。<!--more--> shuffle: 洗牌、发牌——(核心机制:数据分区,排序,合并)。 shuffle是Mapreduce的核心,它分布在Mapreduce的map阶段和re 阅读全文
posted @ 2019-09-14 20:45 DaBai的黑屋 阅读(277) 评论(0) 推荐(0)
摘要: Reduce大致分为copy、sort、reduce三个阶段,重点在前两个阶段。copy阶段包含一个eventFetcher来获取已完成的map列表,由Fetcher线程去copy数据,在此过程中会启动两个merge线程,分别为inMemoryMerger和onDiskMerger,分别将内存中的数 阅读全文
posted @ 2019-09-14 20:44 DaBai的黑屋 阅读(596) 评论(0) 推荐(0)
摘要: Map阶段流程:input File通过split被逻辑切分为多个split文件,通过Record按行读取内容给map(用户自己实现的)进行处理,数据被map处理结束之后交给OutputCollector收集器,对其结果key进行分区(默认使用hash分区),然后写入buffer,每个map tas 阅读全文
posted @ 2019-09-14 20:43 DaBai的黑屋 阅读(848) 评论(0) 推荐(0)
摘要: 本地运行模式: 集群运行模式: 总结: mapreduce的运行模式 概念:所谓的运行模式指的是由谁给mr程序提供运算时候所需要的硬件资源 两种模式: 集群模式:程序计算的资源由yarn分配 分布式计算的效果 生产环境线上环境的模型 本地模式:程序计算的资源由程序所在的机器本地系统模拟出 单机计算的 阅读全文
posted @ 2019-09-14 20:42 DaBai的黑屋 阅读(511) 评论(0) 推荐(0)
摘要: <!--more--> 阅读全文
posted @ 2019-09-14 20:42 DaBai的黑屋 阅读(429) 评论(0) 推荐(0)
摘要: MapReduce的处理流程解析 Mapper任务执行过程详解 l第一阶段是把输入目录下文件按照一定的标准逐个进行逻辑切片,形成切片规划。默认情况下,Split size = Block size。每一个切片由一个MapTask处理。(getSplits) l第二阶段是对切片中的数据按照一定的规则解 阅读全文
posted @ 2019-09-14 20:41 DaBai的黑屋 阅读(502) 评论(0) 推荐(0)
摘要: MapReduce是一个分布式运算程序的编程,框架核心功能是将用户编写的业务逻辑代码和自带默认组件整合成一个完整的分布式运算程序,并发运行在Hadoop集群上。 既然是做计算的框架,那么表现形式就是有个输入(input),MapReduce操作这个输入(input),通过本身定义好的计算模型,得到一 阅读全文
posted @ 2019-09-14 20:40 DaBai的黑屋 阅读(442) 评论(0) 推荐(0)
摘要: 一个完整的mapreduce程序在分布式运行时有三类实例进程 MRAppMaster:负责整个程序的过程调度及状态协调!<!--more--> MapTask:负责map阶段的整个数据处理流程! ReductTask:负责reduce阶段的整个数据处理流程! MRAppMaster:负责整个程序的过 阅读全文
posted @ 2019-09-14 20:40 DaBai的黑屋 阅读(164) 评论(0) 推荐(0)
摘要: 核心: 分而治之,先分再和 俩个阶段: Map阶段(分): 如果任何可以拆分并且没有依赖,那么就可以把复杂的任务拆分成小任务 拆分成下任务后,进行并行计算,提高处理效率 Reduce阶段(合): 把map阶段的各个局部结果进行汇总,得到最终结果! 来源: 来源于生活, 由谷歌提出,主要用于搜索领域, 阅读全文
posted @ 2019-09-14 20:39 DaBai的黑屋 阅读(921) 评论(0) 推荐(0)
摘要: 一、hadoop yarn 简介 Apache YARN (Yet Another Resource Negotiator) 是 hadoop 2.0 引入的集群资源管理系统。用户可以将各种服务框架部署在 YARN 上,由 YARN 进行统一地管理和资源分配。 二、YARN架构 1. Resourc 阅读全文
posted @ 2019-09-14 20:37 DaBai的黑屋 阅读(1621) 评论(1) 推荐(0)
摘要: 阅读全文
posted @ 2019-09-14 20:37 DaBai的黑屋 阅读(209) 评论(0) 推荐(0)
摘要: Yarn作为资源管理系统,是上层计算框架(如MapReduce,Spark)的基础。在Hadoop 2.4.0版本之前,Yarn存在单点故障(即ResourceManager存在单点故障),一旦发生故障,恢复时间较长,且会导致正在运行的Application丢失,影响范围较大。从Hadoop 2.4 阅读全文
posted @ 2019-09-14 20:36 DaBai的黑屋 阅读(379) 评论(0) 推荐(0)
摘要: 在Yarn中,负责给应用分配资源的就是Scheduler。其实调度本身就是一个难题,很难找到一个完美的策略可以解决所有的应用场景。为此,Yarn提供了多种调度器和可配置的策略供我们选择。 在Yarn中有三种调度器可以选择:FIFO Scheduler ,Capacity Scheduler,Fair 阅读全文
posted @ 2019-09-14 20:34 DaBai的黑屋 阅读(262) 评论(0) 推荐(0)
摘要: ResourceManager lResourceManager负责整个集群的资源管理和分配,是一个全局的资源管理系统。 lNodeManager以心跳的方式向ResourceManager汇报资源使用情况(目前主要是CPU和内存的使用情况)。RM只接受NM的资源回报信息,对于具体的资源处理则交给N 阅读全文
posted @ 2019-09-14 20:33 DaBai的黑屋 阅读(1351) 评论(0) 推荐(0)
摘要: lclient向RM提交应用程序,其中包括启动该应用的ApplicationMaster的必须信息,例如ApplicationMaster程序、启动ApplicationMaster的命令、用户程序等。 lResourceManager启动一个container用于运行ApplicationMast 阅读全文
posted @ 2019-09-14 20:33 DaBai的黑屋 阅读(427) 评论(0) 推荐(0)
摘要: ResourceManager ResourceManager 通常在独立的机器上以后台进程的形式运行,它是整个集群资源的主要协调者和管理者。ResourceManager 负责给用户提交的所有应用程序分配资源,它根据应用程序优先级、队列容量、ACLs、数据位置等信息,做出决策,然后以共享的、安全的 阅读全文
posted @ 2019-09-14 20:32 DaBai的黑屋 阅读(200) 评论(0) 推荐(0)
摘要: Yarn通俗介绍 Apache Hadoop YARN (Yet Another Resource Negotiator,另一种资源协调者)是一种新的 Hadoop 资源管理器,它是一个通用资源管理系统和调度平台,可为上层应用提供统一的资源管理和调度,它的引入为集群在利用率、资源统一管理和数据共享等 阅读全文
posted @ 2019-09-14 20:30 DaBai的黑屋 阅读(416) 评论(0) 推荐(0)
摘要: <!--more--> 阅读全文
posted @ 2019-09-14 20:27 DaBai的黑屋 阅读(2012) 评论(0) 推荐(0)
摘要: 大数据处理流程 上图是一个简化的大数据处理流程图,大数据处理的主要流程包括数据收集、数据存储、数据处理、数据应用等主要环节。下面我们逐一对各个环节所需要的技术栈进行讲解: 数据收集 大数据处理的第一步是数据的收集。现在的中大型项目通常采用微服务架构进行分布式部署,所以数据的采集需要在多台服务器上进行 阅读全文
posted @ 2019-09-14 20:26 DaBai的黑屋 阅读(5488) 评论(0) 推荐(0)
摘要: 学习路线 介绍完大数据框架,接着就可以介绍其对应的学习路线了,主要分为以下几个方面: 语言基础 1. Java 大数据框架大多采用 Java 语言进行开发,并且几乎全部的框架都会提供 Java API 。Java 是目前比较主流的后台开发语言,目前大多数框架要求 Java 版本至少是 1.8,这是由 阅读全文
posted @ 2019-09-14 20:24 DaBai的黑屋 阅读(297) 评论(0) 推荐(0)
摘要: 一、 Hadoop High Availability HA(High Available), 高可用,是保证业务连续性的有效解决方案,一般有两个或两个以上的节点,分为活动节点(Active)及备用节点(Standby)。通常把正在执行业务的称为活动节点,而作为活动节点的一个备份的则称为备用节点。当 阅读全文
posted @ 2019-09-14 20:13 DaBai的黑屋 阅读(223) 评论(0) 推荐(0)
摘要: 在一个公司内部的Hadoop Yarn集群,肯定会被多个业务、多个用户同时使用,共享Yarn的资源,如果不做资源的管理与规划,那么整个Yarn的资源很容易被某一个用户提交的Application占满,其它任务只能等待,这种当然很不合理,我们希望每个业务都有属于自己的特定资源来运行MapReduce任 阅读全文
posted @ 2019-09-14 20:12 DaBai的黑屋 阅读(1904) 评论(0) 推荐(0)
摘要: 一、 Hadoop集群动态扩容、缩容 随着公司业务的增长,数据量越来越大,原有的datanode节点的容量已经不能满足存储数据的需求,需要在原有集群基础上动态添加新的数据节点。也就是俗称的动态扩容。 有时候旧的服务器需要进行退役更换,暂停服务,可能就需要在当下的集群中停止某些机器上hadoop的服务 阅读全文
posted @ 2019-09-14 18:23 DaBai的黑屋 阅读(6872) 评论(0) 推荐(0)
摘要: 介绍:<!--more--> HDFS (Hadoop Distributed File System)是 Hadoop 下的分布式文件系统,具有高容错、高吞吐量等特性,可以部署在低成本的硬件上。 HDFS 设计原理 HDFS 架构 HDFS 遵循主/从架构,由单个 NameNode(NN) 和多个 阅读全文
posted @ 2019-09-14 18:11 DaBai的黑屋 阅读(478) 评论(0) 推荐(0)
Live2D