![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
大数据
初心江湖路
多学一分增一分。
展开
-
Flink的计算方式
首先看一张来自官网的Flink运行时架构图看图说话,先总结下Flink计算引擎的几个抽象:管理抽象:JobManager (Master) 负责调度任务执行、负责指挥进行检查点、负责任务失败容错恢复等。TaskManager (Worker) 负责具体任务的执行、缓冲和交换数据流等。每个管理者都对应着独立的JVM进程。执行抽象:Task,本质上都回归到线程执行具体的task。我们先不论资源管理方式。可以看到,资源被划分为细粒度的Slot。Flink Job也跟Spark Job一样,均以T原创 2020-05-09 18:59:01 · 1889 阅读 · 1 评论 -
Flink若干认识和基础功能
先看flink支持流批处理基于Event-Time事件处理的支持exactly-once一致性语义的保证高可用性的体现支持多种资源管理框架:Yarn、Mesos、Kubernetes、Stand-alone运行应用的规模上来讲:Flink也是被设计运行有状态的流应用,整个应用并行化为成千上万的任务,在集群上分布式并行执行。状态管理方面:Flink将任务的状态保存在内存中,如果内存容纳...原创 2020-05-02 15:56:09 · 659 阅读 · 0 评论 -
MapReduce的shuffle过程
shuffle是昂贵操作,因为shuffle操作不仅涉及到数据的拉取、溢写磁盘的IO操作还涉及排序合并等操作,如果能让shuffle的成本尽量降低也是一大优化的方向。本篇文章对应Hadoop2.6.5,只对应流程,具体细节,可以研究MapTask/ReduceTask/Shuffle等源码。shuffle过程一、Map端1、起始点 - map任务已产生结果将写出这一阶段可以称作缓冲区写出。...原创 2020-03-04 20:03:23 · 1178 阅读 · 0 评论 -
Hadoop Yarn架构及任务提交流程
一、Yarn架构图图片来自官网二、Yarn架构的主要组件1、ResourceManager这是一个全局性组件,负责整个集群资源管理。其两个主要的组件分别为Scheduler(调度器)和 ApplicationsManager(应用管理器)。Scheduler调度器Scheduler是支持可插拔的,用于根据不同的队列、应用等来划分集群资源,如 CapacityScheduler 按照容...原创 2020-03-02 14:54:07 · 857 阅读 · 0 评论 -
Hadoop MRv1和MRv2的区别
Hadoop1.0采用的是MRv1版本的MapReduce编程模型对于MRv1运行时环境:JobTracker和TaskTracker编程模型:MapReduce数据处理引擎:Map任务和Reduce任务这一版本的瓶颈和缺陷:1、JobTracker既负责资源管理又负责任务调度,如果集群繁忙,JobTracker本身就会成为可扩展性的瓶颈,大大制约计算能力。2、在这一版本中,Task...原创 2020-03-01 12:16:07 · 1078 阅读 · 0 评论 -
Spark和Flink的输出一致性保证及事务
事务可以称之为一次对数据库进行的操作序列。特性(ACID)原子性:指这些操作序列具有原子性,不可分割,要么全部执行成功,要么全部失败。一致性:一致性概念的说法很多,有说事务执行前后状态保持正确的,有说完整性体现的,也有说从一个一致性状态变成另一个一致性状态的,也有说是对数据可见性约束的等等。个人感觉还是很含糊,根据维基百科描述并综合一些观点,我的总结如下:1)、一致性是针对事务执行前后...原创 2020-02-24 23:46:10 · 824 阅读 · 0 评论 -
kappa架构的层级及其特点
kappa架构的本质可以说是只依赖一套流处理系统来作为大数据处理解决方案。一、概括起来,kappa架构包括两个层级1、消息传输层这一层有如下特点持久性------数据可任意设定存储时间分布式------数据分布式存储数据可重放------数据可以被replay,从头重新处理高性能------能够提供高性能数据读写访问有了这几点保证之后,数据便可以在某个需要限度内全量存储,这可将...原创 2020-01-02 21:16:04 · 3868 阅读 · 0 评论 -
大数据流处理的一致性问题与lambda架构优缺点
一、一些基本面虽然现在的大数据解决方案基本上已经能够取得很好的可靠性,但一致性问题仍然无法轻便、彻底地解决。一致性:可以这么理解,对于成功写入到存储系统分区中的每一条数据,后续的对该分区任何成功处理都应该是将分区中每一条数据包含在内的。通俗来讲,就是处理成功了,处理结果都写入,处理失败了则一条结果也不写入。显然,很多的处理情况可能并不符合这一条件!举个例子,在对一个Kafka分区单元数据进行...原创 2019-12-29 16:47:49 · 2794 阅读 · 0 评论 -
Hadoop安全机制探究
一、可能的安全问题1、如果Hadoop服务不对用户或者服务进行认证,那么可能发生什么安全问题?HDFS文件权限检查被规避攻击者可以伪装服务,对集群进行攻击2、因为只需要BlockId即可读取节点的数据,而DataNode不强制对任何访问请求做访问控制。那么,任何人都可以随意的访问和读写HDFS数据,这样就存在安全隐患。二、Apache Hadoop安全团队使用的安全机制基于Kerbe...原创 2019-12-27 15:25:22 · 605 阅读 · 1 评论 -
Spark Streaming流控机制
概述:1、通过一个StreamingListener实现RateController来进行批次完成更新,事件触发调节。2、通过PIDRateEstimator利用PID控制算法对输入速率进行反馈调节,计算合适的输入供给速率。3、通过ReceiverTracker来将新的流控阈值速率发送到ReceiverTrackerEndpoint进行发布。4、通过ReceiverSupervisorIm...原创 2019-12-22 17:54:39 · 256 阅读 · 0 评论 -
Spark和Flink的对比
本文从以下几点对Spark和Flink进行对比一、数据抽象Spark:RDD(弹性分布式数据集)Flink:stream(数据流:有界流和无界流),将批和流统一成流,只是批被抽象成一种有界流二、如何进行容错恢复Spark:通过DAG组成的谱系图(lineage)进行失败重计算Flink:通过检查点进行流重放(replay),Flink对分布式数据流和操作符的状态进行快照三、计算模式...原创 2019-10-31 23:20:52 · 1598 阅读 · 0 评论 -
SparkContext初始化
· 前言 本文主要目的是弄清楚SparkContext中比较重要的组件的初始化顺序及产生的作用,以此对Spark大数据引擎的实现原理有深入一点的认识。个人觉得,SparkContext可以比喻成Spark世界的一扇窗户,打开窗子便能了解屋内的一个大致全貌。对于从整体上来学习和掌握Spark很有帮助。我个人也是基于这样的目的写这些文章。 SparkContext,字面意思很形象,即Spark...原创 2019-09-29 17:19:01 · 513 阅读 · 0 评论 -
HDFS-基本面貌七问答
1、HDFS是怎么存储副本的?首先,NameNode通过Hadoop Rack Awareness进程来决定每个DataNode所属的机架ID(rack id)。存储策略(1)副本因子为3:如果writer就在DataNode上,则第一个副本放在本机上,如果writer不在其中一个DataNode上,则随机选择一个DataNode存放第一个副本。第二个副本放在和第一个副本不同的机架上的一个...原创 2019-08-29 21:27:14 · 99 阅读 · 0 评论 -
Spark SQL加载不到kafka数据
1、原创 2019-08-20 20:02:50 · 713 阅读 · 0 评论 -
DAGScheduler任务调度剖析
一、主要功能对每个job划分stage决定任务运行的首选位置(preferred locations)面向stage进行任务调度跟踪stage的输出需要时重新提交stage二、主要功能的展开描述1、怎么划分stage?先看这个数据结构,stage划分之后保存在一个HashMap中,stageId作为key,Stage对象作为valueprivate[scheduler] va...原创 2019-08-08 22:23:09 · 468 阅读 · 0 评论 -
yarn application常用命令及显示示例
yarn application1、-list 列出所有 application 信息示例:yarn application -list2、-appStates 跟 -list 一起使用,用来筛选不同状态的 application,多个用",“分隔;所有状态:ALL,NEW,NEW_SAVING,SUBMITTED,ACCEPTED,RUNNING,FINIS...原创 2019-08-02 09:44:24 · 11757 阅读 · 1 评论 -
Spark论文详解之-Spark Introduction
1、专业处理系统的问题(本文所指专业系统均为Spark诞生之前)工作的重复性:正如分布式SQL引擎、机器学习引擎都需要执行并行聚合一样。单独的计算系统需要针对每个域重新解决如何并行聚合计算。这表现在工作分配和容错上便是重复的。这是很多专业计算系统的潜在问题。在执行组合计算上:多数情况下,大数据计算的数据量是很庞大的,而且在得到最终计算结果之前,通常是经过多个计算引擎管道式组合计算而来,这样就...原创 2019-05-14 15:48:00 · 609 阅读 · 0 评论 -
SparkContext详解
首先,每一个Spark应用都是一个SparkContext实例。原创 2019-05-11 16:41:20 · 25616 阅读 · 0 评论 -
Spark论文研究之-一篇文章彻底弄清RDD
一、RDD说明RDD是啥? 形式上,RDD是一种只读的分区记录集合。是一种具有容错能力的并行数据结构。使用户可以显式地将数据存在磁盘上或是内存中,控制其分区,并使用丰富的运算符来操作数据。RDD怎么产生? 只能通过两种方式产生:确定的操作作用于稳定存储的数据上确定的操作作用于其他RDDsRDD产生动机? 在上一篇文章中已经提到,Spark研究者发现现有的处理系...原创 2019-05-23 15:14:42 · 1940 阅读 · 0 评论 -
Spark论文思想之-基于RDD构建的模型(Shark的来龙去脉)
3.1 介绍首先RDD提供以下功能:跨集群的不可变存储(在Spark中,记录是指Java Object)使用键对数据进行分区控制考虑分区的粗粒度运算符由于是内存计算,所以低延迟3.2 在RDD上实现其它模型的技术在专业引擎里,不只是数据运算符,而且存储格式、甚至访问方法都被优化了。如SQL引擎如Shark是以面向列的格式处理数据,同时一个图计算引擎如GraphX在数据被创建索引的...原创 2019-06-03 14:32:54 · 388 阅读 · 0 评论 -
Spark论文思想之-总结
总结新世纪的大数据计算平台应该是什么样子的?论文当中给出了一个概念:对计算的简单抽象,对数据进行粗粒度批处理同时提供高效数据共享,可以在广泛的工作负载中表现出色的性能,并对现存处理系统取得长足的进步。Spark引擎是轻量级的,基于Spark引擎实现的其它模型也很小。在大数据集群计算的困难部分(容错、调度、多租户),这种小而通用抽象更能适应需求的快速变化。可以看出,集群应用在朝着复杂化的方向发...原创 2019-06-19 22:31:29 · 580 阅读 · 0 评论 -
Spark论文思想之-RDD的一般性
5.1 介绍 众所周知,RDD是一种内存抽象,通过这种抽象降低延迟,使得基于RDD的系统能够获得和专业系统相匹配的计算功能,并且更加高效。本篇文章旨在将这种内在的原因阐释清楚。 但是,从始至终,应该认识到的是Spark虽然在一定程度上被广泛使用,是因为其能满足大部分需求。决然不是说Spark最优秀。因为,对于网络延迟高度敏感的应用,Spark是并不适用的,也就是说Spark不能满足准实时的...原创 2019-06-16 15:18:59 · 235 阅读 · 0 评论 -
Spark论文思想之-离散流处理(Spark Streaming精华详述)
4.1 介绍可以说在介绍部分很简单,就是讲将RDD模型运用于大规模流处理。有用的信息很好总结,首先说明大规模流处理的设计与传统流处理设计系统背道而驰,但却在容错方面大有裨益而且与其他类型的系统相比也很有竞争力。实时大规模流处理需求自是不必多说。但其挑战巨大,两个重要的方面是容错和解决落后者。以官方所言,30s的恢复延迟就意味着做重要决策良机的错失。来看看官方怎么对现有流处理系统进行评价的:现有...原创 2019-06-11 23:57:39 · 1135 阅读 · 0 评论 -
如何设置Spark Executor Memory的大小
前边文章的铺垫终于可以运用到实际项目的开发及调优中了,下面我们就来看看实际集群环境下的Spark配置吧一、Spark内存使用大体上的两类执行内存和存储内存。其中执行内存用于shuffle、join、sort、aggregation等操作的计算使用。存储内存用于cache对象、存储广播数据等。二、Executor内存设置小了会发生的现象1、频繁GC,GC超限,CPU大部分时间用来做GC而回首...原创 2019-06-21 17:42:37 · 25468 阅读 · 1 评论 -
Shuffle Read Time调优
先看第一张Spark任务执行时间轴的图:红色部分是任务反序列化时间,黄色部分是shuffle read时间,绿色是实际计算任务执行时间,这里我们先不讨论任务反序列化时间长,下一篇文章说任务反序列化时间长怎么解决1、首先shuffle read time是什么?shuffle发生在宽依赖,如repartition、groupBy、reduceByKey等宽依赖算子操作中,在这些操作中会对Da...原创 2019-07-13 15:57:09 · 4545 阅读 · 0 评论 -
Spark Checkpoint 的使用、具体内容及读写过程
引用:https://www.cnblogs.com/cenglinjinran/p/9542589.html原创 2019-06-30 15:50:45 · 6021 阅读 · 0 评论 -
spark-submit脚本执行过程注解
首先从一条命令说起:spark-submit \ --master yarn \ --deploy-mode client \ --driver-memory 10G \ --executor-memory 10G \ --num-executors 25 \ --executor-cores 4 \ --queue ltemr \ --conf "spark.d...原创 2019-07-07 13:49:33 · 949 阅读 · 0 评论 -
yarn 集群资源管理中碰到的一些问题
根据碰到的几个问题进行描述1、设置了队列可以使用最大集群资源,但是当用户占用该队列已配置的资源大小时,其他任务再提交的时候一直处于ACCEPTED状态。查看以下两个参数:yarn.scheduler.capacity..capacity 表示该队列可使用的资源容量大小百分比注:所有队列配置的资源百分比相加一定等于100yarn.scheduler.capacity..maximum-ca...原创 2019-08-05 22:56:00 · 6014 阅读 · 0 评论 -
Spark分区数计算
一、对于Hadoop数据源Spark支持所有hadoop I/O格式,因为它使用相同的Hadoop InputFoarmat API以及Spark自有的其它格式化程序。因此,在默认情况下,Spark的输入分区和Hadoop/MapReduce的输入分片方式一致。通常情况下,Spark为每一个hdfs块创建一个分区(注:如果行特别长,大于一个块大小,那么最终分区数会少于块数)。但是,若你要进一步...原创 2019-05-08 18:03:15 · 2828 阅读 · 0 评论