![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Spark
丿沐染烟忱丶
昨夜西风凋碧树,独上高楼,望尽天涯路!
衣带渐宽终不悔,为伊消得人憔悴!
众里寻他千百度。蓦然回首,那人却在灯火阑珊处!
展开
-
Structured Stream--Join Operations
Join Operations自Spark-2.0 Structured Streaming引入的join的概念(inner和一些外连接)。支持和静态或者动态的Dataset/DataFrame做join操作。Stream-static Joinsdef main(args: Array[String]): Unit = { val spark = SparkSession ...原创 2020-03-03 17:41:55 · 344 阅读 · 0 评论 -
Structured Stream(三)--Window Operations on Event Time
Handling Event-time and Late Data(处理事件时间和延迟数据)事件时间是嵌入到数据本身中的时间。对于许多应用程序,您可能希望对这个事件时间进行操作。例如,如果您希望获得物联网设备每分钟生成的事件数,那么您可能希望使用数据生成时的时间(即数据中的事件时间),而不是Spark接收它们的时间。这个事件时间很自然地在这个模型中表示出来,来自设备的每个事件是表中的一行,而事件...原创 2020-03-03 15:31:29 · 246 阅读 · 0 评论 -
Structured Streaming(二)--DataSet和DataFrame API
DataSet和DataFrame API自Spark 2.0以来,DataFrames和数据集可以表示静态的有界数据,也可以表示流式的无界数据。与静态数据集/DataFrames类似,您可以使用公共入口点SparkSession (Scala/Java/Python/R docs)从流数据源创建流数据集/数据集,并对它们应用与静态数据集/数据集相同的操作。Input SourcesFil...原创 2020-03-03 09:31:33 · 259 阅读 · 0 评论 -
Structured Streaming(一)--概念
概述Structured Streaming是基于Spark SQL引擎构建的可伸缩且容错的流处理引擎。使得用户可以像使用Spark SQL操作静态批处理计算一样使用Structured Streaming操作流计算。Spark SQL引擎将负责增量地、连续地运行它,并在流数据不断到达时更新最终结果。您可以使用Scala、Java、Python或R中的Dataset/DataFrame API来...原创 2020-03-02 14:10:01 · 229 阅读 · 0 评论 -
Spark Streaming-Output Operations
Output Operations输出操作允许将DStream的数据推出到外部系统,例如数据库或文件系统。由于输出操作实际上允许外部系统使用转换后的数据,因此它们会触发所有DStream转换的实际执行(类似于RDD的操作)。当前,定义了以下输出操作:输出到KafkaKafka sinkpackage com.baizhi.outputimport java.util.Propert...原创 2020-02-28 19:45:04 · 147 阅读 · 0 评论 -
Spark Streaming-Window Operations
Window OperationsSpark Streaming还提供了窗口计算,可让你在数据的滑动窗口上应用转换。下图说明了此滑动窗口。如图所示,每当窗口在源DStream上滑动时,落入窗口内的源RDD就会合并并且对其进行操作,以生成窗口DStream的RDD。在上图中,该操作将应用于数据的最后3个时间单位,并以2个时间间隔单位滑动。这说明任何窗口操作都需要制定两个参数。窗口长度-窗口...原创 2020-02-28 17:13:24 · 125 阅读 · 0 评论 -
Spark Streaming-Transformations
TransformationsDStream转换与RDD的转换类似,将DStream转换成新的DStream。DStream常见的许多算子使用和Spark RDD保持一致map算子val stream1=ssc.socketTextStream("train",9999)stream1.map(line=>line.split(" ")) .map(words=>...原创 2020-02-28 16:00:04 · 87 阅读 · 0 评论 -
Spark Streaming对接kafka策略分析
LocationStrategies(位置策略)控制特定的主体分区在哪个执行器上消费的(也就是分区根据执行器的位置进行设置)位置的选择是相对的,位置策略有三种方案:LocationStrategies.PreferConsistent()首选一致性多数时候采用该方式,在所有可用的执行器上均匀分配kafka的主题的所有分区。综合利用集群的计算资源。LocationStrateg...原创 2020-02-27 19:27:13 · 439 阅读 · 0 评论 -
Spark Streaming
概述一般流式计算会与批量计算相比较。在流式计算模型中,输入时持续的,可以认为在时间上是无界的,也就意味着,永远拿不到全量数据去做计算。同时,计算结果是持续输出的,也即计算结果在时间上也是无界的。流式计算一般对实时性要求较高,同时一般是先定义目标计算,然后数据到来之后将计算逻辑应用于数据。同时为了提高计算效率,往往尽可能采用增量计算代替全量计算。批量处理模型中,一般先有全量数据集,然后定义计算逻辑...原创 2020-02-27 18:48:19 · 131 阅读 · 0 评论 -
SQL、NoSQL、NewSQL
SQL、NoSQL、NewSQL的优缺点比较SQLSQL是关系型数据库管理系统(RDBMS),顾名思义,它是围绕关系代数和元组关系演算构建的。70年代以来,它一直是主要的数据库解决方案,只是最近才有了其他产品的空间。优点:1.综合统一:集数据定义、数据操纵、数据管理的功能于一体,语言风格统一,可以独立完成数据库的全部操作。2.高度非过程化——提出“做什么”而不是“怎么做”面向集合的...原创 2020-02-26 17:46:14 · 903 阅读 · 0 评论 -
Spark Catalyst-SparkSQL执行流程
工作流程SQL语句首先通过Parser模块被解析为语法树,即未解析的逻辑计划(Unresolved Logical Plan); 然后通过Analyzer模块借助于数据元数据解析为逻辑计划(Logical Plan); 此时再通过各种基于规则的优化策略进行深入优化,得到优化过的逻辑计划(Optimized Logical Plan); 优化后的逻辑计划依然是逻辑的,并不能被Spark系统理解,此...原创 2020-02-26 16:01:52 · 353 阅读 · 0 评论 -
Spark Hive集成
修改hive-site.xml<property> <name>javax.jdo.option.ConnectionURL</name> <value>jdbc:mysql://CentOS:3306/hive?createDatabaseIfNotExist=true</value></property>...原创 2020-02-26 11:49:06 · 117 阅读 · 0 评论 -
Spark SQL-Load/Save
Load/Savepaquet文件saveParquet仅仅是一种存储格式,它是语言、平台无关的,并且不需要和任何一种数据处理框架绑定. var sql = """ |select * from t_user """.stripMargin val result = spark.sql(sql) result....原创 2020-02-26 11:07:57 · 118 阅读 · 0 评论 -
Spark SQL(一)
概述Spark SQL是用于结构化数据处理的一个模块。同Spark RDD 不同地方在于Spark SQL的API可以给Spark计算引擎提供更多地 信息,例如:数据结构、计算算子等。在内部Spark可以通过这些信息有针对对任务做优化和调整。这里有几种方式和Spark SQL进行交互,例如Dataset API和SQL等,这两种API可以混合使用。Spark SQL的一个用途是执行SQL查询。 ...原创 2020-02-25 21:37:14 · 261 阅读 · 0 评论 -
Spark任务计算源码剖析
任务计算源码剖析理论指导Spark在执行任务前期,会根据RDD的转换关系形成一个任务执行DAG。将任务划分成若干个stage。Spark底层在划分stage的依据是根据RDD间的依赖关系划分。Spark将RDD与RDD间的转换分类:ShuffleDependency-宽依赖和NarrowDependency-窄依赖,Spark如果发现RDD与RDD之间存在窄依赖关系,系统会自动将存在窄依赖关...原创 2020-02-21 18:37:00 · 181 阅读 · 0 评论 -
Spark RDD进阶
分析WordCountsc.textFile("hdfs://train:9000/demo/word") //RDD0 .flatMap(_.split(" ")) //RDD1 .map((_,1)) //RDD2 .reduceByKey(_+_) //RDD3 finalRDD .collect() //Array 任务提交...原创 2020-02-21 15:56:06 · 154 阅读 · 0 评论 -
Spark数据写出
Spark数据写出将数据写出到HDFSsc.textFile("file:///root/data/word").flatMap(_.split(" ")).map((_,1)).reduceByKey(_+_).sortBy(_._1,true,1).saveAsSequenceFile("hdfs:///demo/results03")因为saveAsxxx都是将计算结果写入到HDFS...原创 2020-02-20 17:09:37 · 176 阅读 · 0 评论 -
Spark共享变量:广播变量、累加器
共享变量当RDD中的转换算子需要用到定义在Driver中的变量的时候,计算节点在运行该转换算子之前,会通过网络将Driver中定义的变量下载到计算节点。同时如果计算节点在本地修改了下载的变量,该修改对Driver端定义的变量不可变(也就是计算节点的变量修改后并不会修改Driver端的变量)。scala> sc.textFile("file:///root/data/word").fore...原创 2020-02-20 15:28:08 · 105 阅读 · 0 评论 -
Spark Actions
ActionsSpark任何一个计算任务,有且仅有一个动作算子,用于触发job的执行。将RDD中的数据写出到外围系统或者传递给Driver主程序。reduce(func)Aggregate the elements of the dataset using a function func (which takes two arguments and returns one). The fu...原创 2020-02-20 11:02:36 · 141 阅读 · 0 评论 -
Spark RDD Operations
RDD OperationsRDD支持两种类型的操作:transformations-转换,将一个已经存在的RDD转换为一个新的RDD,另外一种称为actions-动作,动作算子一般在执行结束以后,会将结果返回给Driver。在Spark中所有的transformations都是惰性的,所有转换算子并不会立即执行,它们仅仅是记录对当前RDD的转换逻辑。仅当actions要求将结果返回给Drive...原创 2020-02-19 18:04:47 · 185 阅读 · 0 评论 -
Spark RDD详解
常见疑问Spark与Apache Hadoop有何关系?Spark是与Hadoop数据兼容的快速通用处理引擎。它可以通过YARN或Spark的Standalone在Hadoop集群中运行,并且可以处理HDFS、Hbase、Cassandra、Hive和任何Hadoop InputFormat中的数据。它旨在执行批处理(类似于MapReduce)和提供新的工作特性,例如流计算,SparkSQL交...原创 2020-02-18 20:54:39 · 421 阅读 · 0 评论 -
Spark环境搭建
环境搭建Spark On YarnHadoop环境设置CentOS进程数和文件数(重启生效)[root@CentOS ~]# vi /etc/security/limits.conf* soft nofile 204800* hard nofile 204800* soft nproc 204800* hard nproc 204800优化linux性能,修改这个最大...原创 2020-02-17 21:39:28 · 148 阅读 · 0 评论 -
Spark概述
概述Spark是一个快如闪电的统一分析引擎(计算框架)用于大规模数据集的处理。Spark在做数据的批处理计算,计算性能大约是Hadoop MapReduce的10~100倍,因为Spark使用比较先进的基于DAG任务调度,可以将一个任务拆分成若干个阶段,然后将这些阶段分批次交给集群计算节点处理。MapReduce VS SparkMapReduceMapReduce作为第一代大数据处...原创 2020-02-17 21:06:49 · 198 阅读 · 0 评论