自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 SparkSQL的内置SQL函数大全

SparkSQL的内置函数SparkSQL的SQL API和函数基本都能满足Hive的标准SQL使用,百分之90+的函数在Hive和SparkSQL中都是兼容的,或许有少量的不一样,但是完全ojXk????具体官网函数参考地址:http://spark.apache.org/docs/2.4.0/api/sql...

2020-05-24 19:18:33 1699

原创 SparkStreaming之`共享变量(Accumulator & broadcastVar)`与checkpoint的关系

SparkStreaming之共享变量(Accumulator & broadcastVar)与checkpoint的关系在SparkStreaming中,Accumulator & Broadcast是不能从checkpoint中进行恢复的,如果在程序中同时用到了共享变量与checkpoint操作,那么我们需要为累加器和广播变量创建懒汉式的单例模式,以便在Driver程序发生故障时,重新启动后可以重新实例化它们,实例代码如下:object WordBlacklist { @vol

2020-05-24 11:16:53 270

原创 SparkCore之RDD持久化

SparkCore之RDD持久化RDD的常见持久化方式有3种cache()将RDD持久化在内存中,底层是调用 /** * Persist this RDD with the default storage level (`MEMORY_ONLY`). */ def cache(): this.type = persist()persist()可以为RDD选择不同的持久化存储级别StorageLevels.MEMORY_ONLY等 /** * Set

2020-05-24 10:50:49 157

原创 SparkStraming之Checkpoint

SparkStraming之Checkpointcheckpoint介绍一个流式应用必须7*24小时正常在线,而且能够容忍一些与逻辑处理无关的失败(比如:系统崩溃、JVM的宕掉)为了达到以上这些,SparkStreaming为程序设置足够的信息作为保存点,记录计算的状态、结果等,同时将信息保存在一个容错的存储系统如HDFS,以至于能从失败中恢复,这里有2种数据将会被自动设置检查点元数据的checkpoint将定义数据计算的信息(元数据)保存在容错系统如HDFS上,这被用作恢复Streami

2020-05-24 10:24:18 211

原创 SparkStraming之Checkpoint

SparkStraming之Checkpointcheckpoint介绍一个流式应用必须7*24小时正常在线,而且能够容忍一些与逻辑处理无关的失败(比如:系统崩溃、JVM的宕掉)为了达到以上这些,SparkStreaming为程序设置足够的信息作为保存点,记录计算的状态、结果等,同时将信息保存在一个容错的存储系统如HDFS,以至于能从失败中恢复,这里有2种数据将会被自动设置检查点元数据的checkpoint将定义数据计算的信息(元数据)保存在容错系统如HDFS上,这被用作恢复Streami

2020-05-22 22:10:07 149

原创 SparkStreaming之persist缓存

SparkStreaming之缓存与RDD的缓存类似,DStream也允许用户将数据持久化到内存中,只需要使用DStream.persist()方法,就会自动将DSstream中的数据缓存在内存中,这对需要多次计算的DStream数据是一个很好的优化,对于window操作「比如reduceByWindow,reduceByKeyAndWindow」和state操作算子如「updateStateByKey」,默认就是将数据进行缓存持久化的。一、对于window算子会自动将数据持久化在内存中,不需要手动调

2020-05-22 22:07:17 525

原创 SparkStreaming之foreachRDD的正确使用姿势

SparkStreaming之foreachRDD的正确使用姿势1、错误方式假如connection不支持序列化,那么会报序列化相关的异常,因为connection在Driver端生成,一般的连接是不支持序列化的,需要被序列化之后传递到Executor端,所以这样尽量避免dstream.foreachRDD { rdd => //创建一个连接 val connection = createNewConnection() // 代码在Driver端执行 rdd.foreach {

2020-05-21 19:19:36 295

原创 SparkStreamingReceiver&Direct方式的消息处理方式对比和代码示意

SparkStreaming2种不同的版本集成SparkStreaming与kafka的集成有2套一、Spark-streaming-kafka-0-8二、Spark-streaming-kafka-0-10Spark-streaming-kafka-0-8Spark-streaming-kafka-0-10支持的kafka-Broker版本0.8.2.1 或 更高版本0.10.0 或 更高版本目前是否被遗弃deprecated after spark2.3.0

2020-05-21 18:49:56 186 1

原创 SparkStreaming的普通transform算子和一些特殊的output算子使用

SparkStreaming之特殊算子常见的算子大家还是参考官网:官网SparkStreaming算子其实DStream与RDD的算子大概都差不多,有个别差异,相同的相信大家都懂,比如map()\flatMap()\filter()\reduceByKey()\repartition()\union()\join()等等但是有一些不同的下面我们来一一对比区别算子count()reduce()countByValue()1、count()在RDD的的count是一个执行算子,返回rdd中

2020-05-21 00:10:56 309

原创 RDD&DF&DS的相互转化

RDD&DF&DS的相互转化RDD\DF\DS之间的简单转换,当然可以通过Schema创建对应的DFpackage com.shufang.sparksqlimport com.shufang.beans.Numimport com.shufang.utils.SparkUtilimport org.apache.spark.rdd.RDDimport org.apache.spark._import org.apache.spark.sql._/** * 本垒主要讲解

2020-05-19 20:36:51 1193

原创 SparkStreaming2.4.0的kafka2.0.0数据源&其他基本数据源的深入讲解

SparkStreaming之Source(Kafka等)SparkStreaming的数据源大致可分为3种:Basic普通数据源Advanced高级数据源Custom自定义数据源建议在将逻辑运行分布到Spark集群时,分配给Spark应用的核数必须大于receiver接收器的个数,否则会出现系统能几首数据,但是不能够处理完数据的数据阻塞现象。1、Basic普通数据源官网数据源介绍供参考SparkStreaming的普通数据源有文件系统【HDFS、GFS等】、本地文件目录、RDD队列、S

2020-05-19 17:59:06 759 1

原创 SparkStreaming是什么

SparkStreaming概述SparkStreaming官网简介1、简介SparkStreaming作为Spark的核心API的扩展,同时SparkStreaming具有很强大的特性:1、高扩展性2、高吞吐性3、高容错性4、实时数据处理(micro batch processing)数据能从多种不同的数据源注入到SparkStreaming,常用的数据源有:KafkaFlumeKenesisTCP socketFile同时SparkStreaming提供了许多高级AP

2020-05-19 10:18:35 1132

原创 Spark官网调优解析

SparkCore之-调优建议:大家在读文章的时候尽量先看看文字描述,这样的话可能对大佬们来说更容易理解一些,么么么哒么么么么么大!~由于大多数Spark计算都是基于内存的,Spark程序可能会受到集群中任何资源(Cpu、网络带宽、内存)的瓶颈。通常,如果内存足够那么瓶颈有可能是网络带宽,有时,我们可以通过一些调整:例如序列化存储RDD=>减少内存使用量,以下通过3个方面来介绍Spark调优:**数据序列化 **<减少内存消耗及IO消耗>**内存调优 **<防止OOM等,避

2020-05-19 00:07:14 320

原创 Spark之作业提交

Spark之作业提交Spark常见的集群管理器有:K8s 、Mesos、Yarn、StandAlone# 本地模式./bin/spark-submit \ --class org.apache.spark.examples.SparkPi \ --master local[8] \ /path/to/examples.jar \ 100# standalone集群-客户端模式./bin/spark-submit \ --class org.apache.spark.ex

2020-05-18 14:19:02 211

原创 SparkCore之共享变量(acc\broadcast var)

SparkCore之共享变量在Spark程序中,当一个函数随着算子的分布式计算被传递到远程的机器节点进行执行,为了减少内存占用和通信消耗,spark提供了2种共享变量:BroadCast VariableAccumulator1、BroadCast VariableBroadCast Variable通常是一个只读的封装变量那么为什么需要使用广播变量?1、假如一个变量value需要随着算子被分布到多个Executor节点去进行使用,那么默认的会将value进行序列化,在每个task的线程内

2020-05-18 12:54:48 386

原创 Spark之RDD的持久化

SparkCore之RDD的持久化持久化也是作为Spark程序的一个重要的优化手段官网参考地址Spark的最重要的功能特性之一就是持久化(persisting or caching),当你持久化一个RDD,每个节点都会存储RDD的任何分区在内存中计算的数据并且对这些数据进行reuse重用,这样可以使以后的操作更快,在spark中缓存时用于迭代和交互式使用的关键工具。持久化的方式spark的持久化的方式有2种:一、persist() 可以选择持久化的存储级别二、cache() 默认是持久化在内

2020-05-16 15:51:40 665

原创 SparkCore之shuffle

Spark之shuffle什么是shuffleSpark中的shuffle是指将不同的key重新进行分配的一个中间过程,首先Spark有3种类型的算子会产生shuffle:重新分区操作,例如:repartition&coalesceRDD的join操作, 例如:cogroup&joinbykey操作,例如:reduceByKey…为什么会产生shuffle,shuffle中具体发生了什么事,我们通过reduceByKey()算子进行分析首先我们写一段简单的代码://假如s

2020-05-15 21:19:15 186 2

原创 SPARK-CORE&RDD(概述)

SPARK-CORE&RDD(概述)前言RDD共享变量每个Spark应用都包含一个Driver程序运行在用户的主程序中,而且Spark应用可以通过一个Spark集群并行执行多个操作,Spark在数据层面提供了一个非常重要的抽象RDD(resilient distributed dataset)即弹性分布式数据集,RDD是一个能够并行执行,并切存在与不同节点上的elements的集合,RDD可以从Hadoop文件系统、scala集合等不同的数据源进行创建,主要创建方式有:sc.make

2020-05-15 15:22:23 216

原创 SPARK-SQL性能调优

SPARK-SQL性能调优SparkSQL的官方优化可以参考(本文主要从Spark2.4.0来概述):http://spark.apache.org/docs/2.4.0/sql-performance-tuning.html#caching-data-in-memoryFor some workloads, it is possible to improve performance by either caching data in memory, or by turning on some exp

2020-05-14 16:52:29 459

原创 SparkSQL是什么(概括)

SparkSQL-概括简介SparkSQL是Spark整体架构用来处理结构化数据的模块,SparkSQL的接口为Spark提供了有关数据结构和执行信息,在内部,SparkSQL使用这些额外的信息来优化应用程序,SparkSQL有提供2种不同的数据抽象DataFrameDataSet2种不同的数据抽象分别对应不同的API,有不同的但是类似的算子操作,另外SparkSQL还提供了SQL查询DataSet & DataFrameDataset一个Dataset也属于一个分布式弹性数据集

2020-05-09 18:46:29 1658

原创 SparkSQL数据源解析

SparkSQL数据源解析SparkSQL是Spark用来处理结构化数据的模块,常用的数据源有:常用的结构化文件如:Json、Parquet、Orc、Avro、TextJdbc相关的数据库Hive 表下面介绍不同的数据源简单的代码实现。SparkSQL的常用读取形式:spark.sql()spark.read.format().load()常用的输出形式:spark.write.format("parquet").mode.option().save()Parquet File在

2020-05-09 18:44:07 498

原创 设计模式【单一职责原则】

单一职责原则概念对类来说,即一个类应该之负责一项职责,如果A类负责2个不同的职责:职责1、职责2,当职责1代码变更时,可能造成职责2的执行错误,所以需要将类A的力粒度分解成A1、A2分别负责职责1、职责2单一职责原则的使用注意事项1)降低类的复杂度,一个类只负责一项职责2)提高类的可读性,可维护性3)降低变更引起的风险4)注意:通常情况下,我们应该遵循单一职责原则,只有逻辑足够简单,...

2020-05-05 21:40:27 132

原创 Java设计模式

初识Java设计模式首先,设计模式不寄托于语言,不管java、python、scala、go、php…都能实现设计模式1、设计模式的重要性软件工程中,设计模式(design pattern)是对软件设计中普遍存在(反复出现)的各种问题,所提出的解决方案,在1990年代由建筑设计领域引入到计算机科学的1.1、设计模式的好处1)当一个项目开发完之后,客户提出新功能,设计模式能提高项目的可...

2020-05-05 21:38:51 114

原创 Flink之 SavePoint & Checkpoint

SavePoint & Checkpointsavepoint和checkpoint都是flink为容错提供的强大功能特性,能够自动或手动保存job的运行状态两者区别checkpoint:应用定时触发,用户保存状态,会过期,内部应用失败重启的时候启用,但是手动cancel时,会删除之前的checkpointsavepoint:用户手动置顶,相当于状态的备份,可以在bin/fli...

2020-05-04 17:15:37 517

原创 Flink-kryo序列化方式&类型管理

Flink类型管理与序列化Flink作为一个强大的实时计算引擎,底层大部分源码都是Java编写的,所以flink对pojo有着很好的支持,类似于Spark中DataFrame引入的schema,Flink也能够很好的infer推断数据类型的schema,可以将推断出的schema当作一个database,所以TypeInformation中包含了一个类的很多基本信息。TypeInformatio...

2020-05-04 12:44:57 4300 1

原创 Flink分布式文件缓存实现数据共享

Flink分布式文件缓存类似于广播变量,都是用来广播共享数据的广播变量广播的是DataStream\DataSet,而分布式缓存广播的是一个文件分布式文件的基本概念可以在并行函数中很方便的共享包含静态外部数据的文件类似于广播变量,而不同的是分布式缓存可以广播一个文件可以在并行函数中很方便的读取本地文件,并把它放进taskmanager的节点内存中,方式task重复拉取,当程序执行fl...

2020-05-03 23:37:44 1718

空空如也

空空如也

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

TA关注的人

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