
大数据
文章平均质量分 91
大数据学习,内容主要包括Hadoop Spark在内的大数据框架学习和知识点分享
提灯寻梦在南国
这个作者很懒,什么都没留下…
展开
-
一次记录 flink job 消费kafka 迁移pulsar踩坑过程
背景简述业务上,原有的kafka集群迁移pulsar 后续会下线kafak集群,原有的一些消费kafka topic 的任务和进程需要迁移至pulsar 并下线旧的消费kafka任务。目前在迁移期间,上报的消息会双写到kafka pulsar,消费组的offset二者是独立的。待迁移的flink job 之前flink 版本是 1.9.1(scala 2.12) 消费kafakFlinkKafkaConsumer<String> myConsumer = KafkaConsumerFact原创 2021-12-31 18:18:04 · 2153 阅读 · 5 评论 -
spark作业升级到spark3 scala 2.12 踩坑和解决方法
前言因为spark集群的换代升级, 需要从scala 2.11 升级到scala 2.12 spark2升级到spark 3。本篇博客主要讲述南国在将spark 作业升级时遇到的问题和解决办法。具体步骤1.升级spark相关依赖针对于pom文件中类似<dependency> <groupId>org.apache.spark</groupId> <artifactId>spark-core_2.11</artifactId>原创 2021-01-17 12:00:17 · 6089 阅读 · 4 评论 -
Flink笔记06——浅谈Table API
前言在 Spark 中有 DataFrame 这样的关系型编程接口,因其强大且灵活的表达能力,能够让 用户通过非常丰富的接口对数据进行处理,有效降低了用户的使用成本。Flink 也提供了关 系型编程接口 Table API 以及基于 Table API 的 SQL API,让用户能够通过使用结构化编程 接口高效地构建 Flink 应用。同时 Table API 以及 SQL 能够统一处理批量和实时计算业务, 无须切换修改任何应用代码就能够基于同一套 API 编写流式应用和批量应用,从而达到真正 意义的批流原创 2020-07-26 21:28:13 · 568 阅读 · 0 评论 -
Flink05——一文了解Flink的Window和Time
前言窗口计算是流式计算中非常常用的数据计算方式之一,通过按照固定时间或长度将 数据流切分成不同的窗口,然后对数据进行相应的聚合运算,从而得到一定时间范围内的统计结果。窗口(Windows)在SparkStreaming Flink中都是非常重要的概念。例如统计最近5分钟内某基站的呼叫数,此时基站的数据在不断地产生,但是通过5分钟的窗口将数据限定在固定时间范围内,就可以对该范围内的有界数据执行聚合处理,得出最近5分钟的基站的呼叫数量。window分类1.Global Window 和 Keyed Wi原创 2020-06-04 16:38:25 · 445 阅读 · 0 评论 -
Flink笔记04——一文了解State管理和恢复
前言State 一般指一个具体的 Task/Operator 的状态,State 数据默认保存在 Java 的堆内存中。CheckPoint(可以理解为 CheckPoint 是把 State 数据持久化存储了)则表示了一个 Flink Job 在一个特定时刻的一份全局状态快照,即包含了所有 Task/Operator 的状态。常用StateFlink 有两种常见的 State 类型,分别是:keyed State(键控状态)Operator State(算子状态)Keyed Stat原创 2020-06-04 11:21:46 · 450 阅读 · 0 评论 -
Flink笔记03——一文了解DataStream
前言在前面的博客中原创 2020-06-04 10:37:48 · 651 阅读 · 0 评论 -
Flink笔记02——单词计数wc和集群部署
前言在上一篇文章Flink笔记01——入门篇讲述了Flink的一些基础知识后,这篇博客,我们结合日常开发,主要介绍一些Flink的基础编程和框架搭建。第一个Flink代码相信学过MR Spark的同学 编写的第一个程序都是单词计数word count,同理 这里南国也是以单词计数作为开始。开发环境(由于之前的博客 很多时候忘记描述这个步骤,作为该系列的基础篇,这次尽可能的在每个地方描述细...原创 2020-04-16 10:04:38 · 494 阅读 · 0 评论 -
Flink笔记01——入门篇
前言在目前开源的大数据引擎中,流计算有Flink,Storm,Kafka Stream等,批处理(离线计算)有Spark, MApReduce等。而同时支持流处理和批处理的计算引擎,只有两种选择:一个是Apache Spark,一个是Apache Flink。从技术,生态等各方面的综合考虑,Spark 的技术理念是基于批来模拟流的计算(我们习惯将之称为批流处理)。而Flink则完全相反,它采用...原创 2020-04-14 21:39:45 · 565 阅读 · 0 评论 -
SparkCore——详述Spark作业调度
前言我们在之前的博客中讲过,TaskScheduler负责每个具体任务的实际物理调度,DAGScheduler负责将作业拆分成为不停阶段的具体有依赖关系的多批任务,可以理解为DAGScheduler负责任务的逻辑调度。本篇博客,结合这段时间看过的一些书籍,南国在这里重点回顾一下Spark中作业调度的相关知识。作业调度的顶层逻辑概述作业调度的具体工作流程作业调度的基本流程如下图所示:...原创 2020-02-06 15:29:01 · 379 阅读 · 0 评论 -
MapReduce高级应用——全排序和二次排序
前言尽管现在MapReduce程序在日常开发中已经代码编写已经很少了,但作为大数据Hadoop的三大板块之一,他内在的许多思想也是很多后续框架的基础铺垫。本篇博客,南国重点回顾一下MR中的排序相关知识点。网上关于这个知识点 可能已经有很多的知识介绍,本来不打算写这篇博客。最近一段时间终于抽空看了Hadoop权威指南的大部分内容。于是,本篇博客 南国试着从面试回顾的角度去编写这篇博客。话不多说,...原创 2020-01-11 20:53:20 · 665 阅读 · 0 评论 -
kafka入门
基本概念框架介绍Kafka是一个分布式的、可分区的、可复制的消息系统。它提供了普通消息系统的功能,但具有自己独特的设计。首先让我们看几个基本的消息系统术语:名称说明Topic主题,可以理解为一个队列Partition分区,为了实现扩展性,一个非常大的topic可以分布到多个broker(即服务器)上,一个topic可以分为多个partition,每个parti...原创 2019-06-08 21:24:32 · 194 阅读 · 0 评论 -
spark代码 spark-submit提交yarn-cluster模式
worldcount yarn-cluster集群作业运行上面写的是一个windows本地的worldcount的代码,当然这种功能简单 代码量少的 也可以直接在spark-shell中直接输scala指令。但是在项目开发 企业运用中,因为本地的资源有限 使得无法发挥出spark的真正优势。因此 在这里 我就spark代码在集群中运行 做一些补充讲述。我使用的环境是: idea编译器 jdk...原创 2019-07-15 21:20:10 · 4032 阅读 · 1 评论 -
大数据面试题——Spark篇
1. 简要讲述hadoop和spark的shuffle相同和差异?1)从高层次的的角度来看,两者并没有大的差别。它都是将 mapper(Spark 里是 ShuffleMapTask)的输出进行 partition,不同的 partition 送到不同的 reducer(Spark 里 reducer 可能是下一个 stage 里的 ShuffleMapTask,也可能是 ResultTask...原创 2019-04-18 14:11:35 · 1902 阅读 · 1 评论 -
大数据面试题——Zookeeper篇
前言Zookeeper,中文名又称为动物园管理员。他属于Hadoop生态圈中重要的组件框架之一。主要是起到分布式协调调度的作用,日常中我们可能经常使用到zookeeper,但是他并不像Hadoop Spark会经常进行应用编程的开发,也不像Hive HBase那样进行数据的交互式查询操作等。关于Zookeeper,我们更多的是在集群中搭建Zookeeper集群来进行 配置管理 集群管理 或者是...原创 2019-05-27 11:17:55 · 911 阅读 · 1 评论 -
大数据面试题——Hive篇
1. Hive有哪些方式保存元数据,各有什么特点?Hive支持三种不同的元存储服务器,分别为:内嵌式元存储服务器、本地元存储服务器、远程元存储服务器,每种存储方式使用不同的配置参数。内嵌式元存储主要用于单元测试,在该模式下每次只有一个进程可以连接到元存储,Derby是内嵌式元存储的默认数据库。在本地模式下,每个Hive客户端都会打开到数据存储的连接并在该连接上请求SQL查询。在远程模式下...原创 2019-04-16 19:30:07 · 5881 阅读 · 0 评论 -
大数据面试题——Hadoop篇
前言结合南国 不到一年时间 学习大数据的知识梳理,加上2019年春天找实习的经历,在这里南国写博客的同时会参考一些资料 写出大数据内一些高频的面试知识点。1.Hadoop基础通常是集群的最主要瓶颈:磁盘IOcpu 和内存在大数据集群中都是可以扩充的,磁盘不行。Yarn,ClouderaManager可以作为集群的管理,zookeeper不可以。Zookeeper:是一个开源的分布式应...原创 2019-04-12 17:22:12 · 1561 阅读 · 0 评论 -
大数据面试中经典的案例分析
1. Hadoop会有哪些重大故障,如何应对?1)namenode单点故障:通过zookeeper搭建HA高可用,可自动切换namenode。2)ResourceManager单点故障:可通过配置YARN的HA,并在配置的namenode上手动启动ResourceManager作为Slave,在Master 故障后,Slave 会自动切换为Master。3)reduce阶段内存溢出:是由于单...原创 2019-05-19 14:40:59 · 1278 阅读 · 0 评论 -
Spark Streaming运行架构和运行原理总结
1. SparkStreaming的运行架构Spark Streaming相对其他流处理系统最大的优势在于流处理引擎和数据处理在同一软件栈,其中Spark Streaming功能主要包括流处理引擎的流数据接收与存储以及批处理作业的生成与管理,而Spark Core负责处理Spark Streaming发送过来的作业。Spark Streaming分为Driver端和Client端,运行在Driv...转载 2019-04-21 16:20:45 · 319 阅读 · 0 评论 -
SparkStreamin-DStream的输出操作以及foreachRDD详解
输出操作概览在Spark应用中,外部系统经常需要使用到Spark DStream处理后的数据,因此,需要采用输出操作把DStream的数据输出到数据库或者文件系统中。OutputMeaningprint打印每个batch中的前10个元素,主要用于测试,或者是不需要执行什么output操作时,用于简单触发一下job。saveAsTextFile(prefix, [su...原创 2019-04-21 15:29:29 · 1623 阅读 · 0 评论 -
SparkStreamig——StreamigContext Receiver内部原理剖析
1. StreamingContext初始化过程StreamingContext是很多Streaming功能的入口,如:它提供从多种数据源创建DStream的方法等。在StreamingContext创建时将会创建如下主要组件:1.1 创建DStreamGraph,并为其设置转换成RDD的时间间隔private[streaming] val graph: DStreamGraph = { ...转载 2019-04-19 12:02:39 · 219 阅读 · 0 评论 -
一文了解Zookeeper
前言一直想找时间好好写一篇关于Zookeeper的博客,今夜窗外听取蛙声一片 既上一篇写到了分布式锁的几种实现方式。这里 整理自己的一些理解,写下一篇关于Zookeeper的博文。话不多说,干货送上~Zookeeper概览Zookeeper,中文名是动物园管理员。它是一个开源的分布式协调服务,ZooKeeper 框架最初是在“Yahoo!"上构建的,用于以简单而稳健的方式访问他们的应用程序。...原创 2019-04-26 22:37:42 · 718 阅读 · 0 评论 -
Hadoop(MapReduce)性能优化
前言我们时常谈论说到MapReduce时,我们都会说它是离线计算框架,磁盘IO开销大,job运行比较慢等等。这一篇博客,南国系统回顾下mr程序运行慢的原因,以及如何优化mr程序。MapReduce运行慢的原因我们都知道MapReduce是离线计算框架,不同于Spark内存计算框架模型。一个标准的mr程序由map方法和reduce方法构成,数据源在map方法前输入,map方法的输出结果放在磁...原创 2019-04-14 17:19:04 · 662 阅读 · 0 评论 -
Hive优化
前言Hive系列的第三篇,南国在这里主要是总结归纳一下日常中经常会碰到的Hive的知识点。因为Hive是基于Hadoop的数据仓库,HiveQL内部的执行过程也是基于MapReduce实现的。首先,我们来看看Hadoop的计算框架特性,在此特性下会衍生哪些问题?数据量大不是问题,数据倾斜是个问题。jobs数比较多的作业运行效率相对比较低,比如即使有几百行的表,如果多次关联多次汇总,产生十...原创 2019-03-25 17:14:15 · 408 阅读 · 0 评论 -
Hive初级
Hive的内置函数和基本的UDF函数1.内置函数在Hive中给我们内置了很多函数官方地址也可以在启动hive后输入命令查看函数:SHOW FUNCTIONS;DESCRIBE FUNCTION <function_name>;DESCRIBE FUNCTION EXTENDED <function_name>;查看所有的内置函数hive> show ...原创 2019-03-19 15:11:36 · 265 阅读 · 0 评论 -
Hive入门
Hive基本概念先来谈谈自己的理解:有些人可能会说Hive不就是写SQL的吗,那我们其实可以从另一个角度来理解:Hive就是那么强大啊,只要写SQL就能解决问题,其实这些人说的也没错Hive确实就是写SQL的,对于传统的 DBA人员或者会写SQL就很容易上手了,但是您知道他的底层细节吗,怎么优化呢?和传统的关系型数据库又有什么区别呢?等等一系列问题。Hive是一个构建在Hadoop之上的数据...转载 2019-03-19 10:11:10 · 445 阅读 · 0 评论 -
Spark处理数据倾斜
前言继上一篇写了一篇Hadoop处理数据倾斜,本篇博客针对Spark应用开发 南国在这里参考网上学习的资料和一些日常开发经验,写一篇有关于Spark处理数据倾斜的文章。1. 数据倾斜的基本概念关于这点,其实上一篇博客里面 南国已经做了讲述。这里南国再做个简单的论述,数据倾斜主要就是大数据集群并行进行数据处理的时候,由于数据分布不均,导致大量的数据集中分不到一台或者某几台计算节点上,导致处理速...转载 2019-03-16 19:55:08 · 721 阅读 · 0 评论 -
Yarn架构详细剖析
参考文章:https://blog.youkuaiyun.com/qq_33624952/article/details/79341034https://www.cnblogs.com/wcwen1990/p/6737985.html转载 2019-01-23 23:15:20 · 374 阅读 · 0 评论 -
Hadoop处理数据倾斜
前言南国在最开始学习Hadoop的时候,一直其他人说的数据倾斜 集数据倾斜的解决办法没有完全弄明白。通过这段时间的学习,看了许多资料,这里参考网上资料 以及自己的理解。这篇博客 写一个有关于数据倾斜的归纳总结。话不多说,干货马上送到。。。数据倾斜的定义在弄清什么是数据倾斜之前,我想让大家看看数据分布的概念:正常的数据分布理论上都是倾斜的,就是我们所说的20-80原理:80%的财富集中在20...转载 2019-01-23 21:48:18 · 372 阅读 · 2 评论 -
Hadoop中Join多种应用
今天,南国在网上看到一篇不错的文章总结,也是我之前没有深入学习的一个知识点。在这里,对知识点做一个简要的概括和案例分析。总结:Join: 将两个中的字段,通过公共字段进行关联!MR :①在Reduce端Join1.保证两个文件中的所有字段,都必须达到Reduce!需要将两个文件的所有字段封装为一个Bean2.在Map端,为每个文件,打上标记弊端:如果数据量大,reduce端处理过程耗...转载 2019-01-15 10:40:02 · 625 阅读 · 0 评论 -
面试必备——Spark为什么比Hadoop快
前言大数据工程师都喜欢拿Spark和Hadoop进行对比。在大数据开发面试中,我们也会经常说到Hadoop Spark这两个常用框架。当我们被问到为什么Spark比Hadoop快时,大多数人一般的理解就是:Spark是基于内存的计算,而Hadoop是基于磁盘的计算;Spark是一种内存计算技术。果真如此吗?事实上,不光Spark是内存计算,Hadoop其实也是内存计算。Spark和Hadoop...转载 2019-01-02 16:26:21 · 851 阅读 · 0 评论 -
SparkStreaming入门(DStream ,Receiver,input DStream)
流计算简介数据总体上分为静态数据和流数据。对静态数据和流数据的处理,对应着两种截然不同的计算模式:批量计算和实时计算。批量计算以“静态数据”为对象,可以在很充裕的时间内对海量数据进行批处理,计算得到有价值的信息。Hadoop就是很典型的批处理模型,有HDFS和HBase存放大量的静态数据,由MapReduce负责对海量数据执行批量计算。流数据必须采用实时计算,实时计算最重要的一个需求是能够实时得...原创 2018-12-24 20:39:32 · 2319 阅读 · 2 评论 -
SparkSQL初级(聚合,Parquet,JSON,JDBC,Hive表)
紧接着系列博客上一篇Spark05-SparkSQL入门 的学习,这篇博客 主要讲解一些SparkSQL初级使用。聚合(Aggregations)内置的DataFrames函数提供常见的聚合,如count()、countDistinct()、avg()、max()、min()等。此外,用户并不局限于预定义的聚合函数,还可以创建自己的聚合函数。无用户定义的聚合函数(Untyped User-D...原创 2018-12-15 21:59:01 · 893 阅读 · 0 评论 -
SparkSQL入门(SparkSession,DataFrame,DataSet)
SparkSQL的基本认识Spark SQL是用于结构化数据处理的Spark模块。与基本的Spark RDD API不同,Spark SQL提供的接口为Spark提供了有关数据结构和正在执行的计算的更多信息。在内部,Spark SQL使用此额外信息来执行额外的优化。有几种与Spark SQL交互的方法,包括SQL和Dataset API。在计算结果时,使用相同的执行引擎,与您用于表达计算的API...原创 2018-12-15 20:28:49 · 2900 阅读 · 0 评论 -
SparkCore RDD编程综合案例编程(二次排序 TopN 多维属性的TopN)
这篇博客 我主要是对Spark02中RDD编程写一些简单的小demo综合运用我们之前学到的知识。1.实现基于排序机制的wordcountwordcount是大数据入门的程序,这里我们对Spark01中的入门案例-wordcount详解进行一点优化/** * 实现基于排序机制的wordcount(降序输出) * @author xjh 2018.11.20 */object So...原创 2018-12-08 23:06:12 · 1206 阅读 · 0 评论 -
SparkCore 运行过程剖析(基本运行流程, DAG,Lineage(血缘关系) 宽依赖和窄依赖)
之前的Spark总结,我提到了Spark的学习主要分为四个部分:1.Spark Core用于离线计算;2.Spark SQL用于交互式查询3.Spark Streaming用于实时流式计算4.Spark MLlib用于机器学习这一篇博客我来讲讲Spark内部的运行过程剖析,比较偏理论 但是绝对值得你一看。spark中的专业术语1.Application: 基于Spark的用户程...原创 2018-12-08 20:38:56 · 1258 阅读 · 0 评论 -
Spark学习路线-从入门到精通
Spark是发源于美国加州大学伯克利分校AMPLab的集群计算平台,它立足于内存计算,性能超过Hadoop百倍,从多迭代批量处理出发,兼收并蓄数据仓库、流处理和图计算等多种计算范式,是罕见的全能选手。Spark采用一个统一的技术堆栈解决了云计算大数据的如流处理、图技术、机器学习、NoSQL查询等方面的所有核心问题,具有完善的生态系统,这直接奠定了其一统云计算大数据领域的霸主地位。伴随Spark技...转载 2018-11-22 13:03:31 · 1943 阅读 · 0 评论 -
SparkCore——RDD详解
Spark中的核心编程原理下图从宏观上 简要概述spark的简单应用:RDD详解下图从宏观上 简要描述RDD:Spark中,RDD是基础 ,全称是Resilient Distributed Dataset(弹性分布式数据集)RDD的特点: (1). 它是在集群节点上的不可变的、已分区的集合对象。RDD在抽象上来说是一种元素集合,包含了数据。它是被分区的,分为多个分区,每个分区分布...原创 2018-11-21 21:52:41 · 444 阅读 · 0 评论 -
SparkCore 基础知识(MapReduceVSSpark Spark应用 安装模式 wordcount详解{local模式 yarn-cluster模式})
前面几篇博文我们简述了Hadoop,包括HDFS MapReducede的知识,中间根据案例场景编写几个MR程序的代码实现。因为博主再学习实践的时候,暂时在==yarn(资源调度)==上应用的不多。这方面的知识 ,后续如果有所深刻见解,再写博文及进行总结归纳。读者恶补可以再网上查看其他总结的博客。1.MapReduce VS Spark以下通过我们之前对MapReduce的实践 以及后续Spa...原创 2018-11-21 20:55:01 · 410 阅读 · 0 评论 -
MapReduce编程-新浪微博内容相关(内容 广告有效推荐)
通过之前的几个MR程序的场景样例,我们简单了解了一些MR编程和离线计算的相关知识。这篇博文 我们对MapReduce进行进一步的运用和解读。案例场景:现在我们有一批新浪微博的数据信息(当然,这里的数据集是经过处理的,但并不影响我们的项目样例编写)。数据信息是用户id和其对应的微博内容。现在 我们希望根据原始数据集中的数据,给相对应的微博用户推荐他所感兴趣的内容或者广告。案例的作用是根据根据每...原创 2018-11-17 17:33:08 · 900 阅读 · 0 评论 -
MapReduce编程-类似qq的好友推荐(朋友的朋友)[文章最后 面试相关问题讲解]
1.案例一:好友推荐(朋友的朋友)案例场景:在qq 微博等众多社交平台中,用户a有n位好友,在这n位好友里面的好友中有m位不是a的直接好友(例如用户b)。但是通过朋友的朋友,a与b之间有多位共同好友,换而言之,a是b可能认识的人。那如何得到用户a可能认识的人呢?方法:利用两个map/resuce方法,第一个map/reduce得到朋友的朋友出现的次数,第二个map/reduce得到每个用户 可...原创 2018-11-01 11:11:45 · 1094 阅读 · 0 评论