
spark
没有合适的昵称
个人工作学习笔记
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Spark 核心组件解析
BlockManager数据存储与管理机制BlockManager是整个Spark底层负责数据存储与管理的一个组件,Driver和Executor的所有数据都由对应的BlockManager进行管理。Driver上有BlockManagerMaster,负责对各个节点上的BlockManager内部管理的数据的元数据进行维护,比如block的增删改等操作,都会在这里维护好元数据的变更。每个节...原创 2020-07-02 22:03:11 · 1329 阅读 · 0 评论 -
Spark 内存管理
在执行Spark 的应用程序时,Spark 集群会启动 Driver 和 Executor 两种 JVM 进程,前者为主控进程,负责创建 Spark 上下文,提交 Spark 作业(Job),并将作业转化为计算任务(Task),在各个 Executor 进程间协调任务的调度,后者负责在工作节点上执行具体的计算任务,并将结果返回给 Driver,同时为需要持久化的 RDD 提供存储功能。由于 Dri...原创 2020-07-02 22:03:53 · 1455 阅读 · 0 评论 -
spark shuffle解析
ShuffleMapStage与ResultStage在划分stage时,最后一个stage称为finalStage,它本质上是一个ResultStage对象,前面的所有stage被称为ShuffleMapStage。ShuffleMapStage的结束伴随着shuffle文件的写磁盘。ResultStage基本上对应代码中的action算子,即将一个函数应用在RDD的各个partitio...原创 2020-07-02 22:04:23 · 1288 阅读 · 0 评论 -
spark源码----Spark任务划分、调度、执行
从RDD的创建开始讲起把它当做入口,然后点进去主要关注hadoopFile,进去会发现new了一个HadoopRDD以上其实就是一个RDD的构建过程又比如我们看flatMap,它一样会去构建一个新的RDD,把之前的RDD给传进去了又比如我们看map,它一样会去构建一个新的RDD,把之前的RDD给传进去了在换一个算子reduceByKey,点进去,包含一个默认的分区器然后再...原创 2020-03-01 09:25:09 · 1712 阅读 · 0 评论 -
spark源码----Spark 通讯架构
Spark通信架构概述Spark2.x版本使用Netty通讯框架作为内部通讯组件。spark 基于netty新的rpc框架借鉴了Akka的中的设计,它是基于Actor模型,如下图所示:Spark通讯框架中各个组件(Client/Master/Worker)可以认为是一个个独立的实体,各个实体之间通过消息来进行通信。具体各个组件之间的关系图如下:Endpoint(Client/Master...原创 2020-02-29 17:37:55 · 1497 阅读 · 0 评论 -
spark源码---部署的流程
spark的参数与提交的流程前言:个人读源码的一次记录首先,SparkSubmit的入口在:org.apache.spark.deploy.SparkSubmit,下面会有一个main方法点进SparkSubmitArguments(封装命令行参数):是否很熟悉?接着往下看,解析,参数是先将scala的数组转成java的数组,然后往下传点进parse,会有一个handle方法,在S...原创 2020-02-29 15:46:16 · 1474 阅读 · 0 评论 -
spark RDD相关总结(一)
Value类型map(func)案例作用:返回一个新的RDD,该RDD由每一个输入元素经过func函数转换后组成需求:创建一个1-10数组的RDD,将所有元素2形成新的RDD(1)创建scala> var source = sc.parallelize(1 to 10)source: org.apache.spark.rdd.RDD[Int] = ParallelCollec...原创 2020-05-04 19:25:02 · 1651 阅读 · 0 评论 -
sparkSQL用JDBC连接Oracle写数据
主要是需要用Oracle的序列,而sparkSQL的jdbc是没有函数去实现的,所以只有用Oracle本身的表名.nextval来实现核心代码部分:object Grade { Class.forName("oracle.jdbc.driver.OracleDriver") val connection: Connection = DriverManager.getConnection...原创 2020-02-21 10:02:24 · 2476 阅读 · 0 评论 -
Cannot overwrite table portrayal.FrequentlyStopAddr that is also being read from;
背景原因:spark SQL select 一个表,然后在overwrite 一个表解决://将结果保存在临时表中 spark.sql("select * from result_tab").write.mode(SaveMode.Overwrite).saveAsTable("tmp_tab")// 计算逻辑........//将临时表覆盖结果表spark.sql("s...原创 2020-01-09 16:53:24 · 2477 阅读 · 1 评论 -
关于spark SQL读取传统数据库的效率问题
配置的方式: val readOpts = Map[String, String]("numPartitions" -> "3", "partitionColumn" -> "id", "lowerBound" -> "3", "upperBound" -> "8", "fetchsize" -> "100") val jdbcDF = s...原创 2019-10-29 22:11:12 · 1479 阅读 · 0 评论 -
如何优雅的停止sparkstreaming程序
直接kill -9?不好吧,万一我这个程序还在处理数据呢?还没处理完呢?在处理的数据丢失了呢?但是我又想让它先停一下呢?好了,直接上代码吧(语言组织不好)~import org.apache.hadoop.conf.Configurationimport org.apache.hadoop.fs.{FileSystem, Path}import org.apache.spark.strea...原创 2019-09-15 11:09:51 · 1639 阅读 · 0 评论 -
使用Spark SQL合并小文件的一个例子
小文件的危害完我就不在多说,请见:https://blog.youkuaiyun.com/qq_34341930/article/details/89031661import org.apache.spark.sql.{SaveMode, SparkSession}/** * 使用Spark SQL合并小文件 */object SmallFileMerger { def main(args...原创 2019-09-15 11:02:17 · 3008 阅读 · 1 评论 -
Spark Streaming程序怎么才能做到不丢数据
Spark Streaming在接收数据的时候有两种模式,第一种是基于Receiver模式,第二种是Kafka Direct模式,两者不丢数据的处理方式不一样,下面我们就来聊聊这两种模式不丢数据的处理策略基于Receiver模式在这种模式下,我们可以使用checkpoint + WAL + ReliableReceiver的方式保证不丢失数据,就是说在driver端打开chechpoint,用...原创 2019-09-15 10:50:42 · 2969 阅读 · 0 评论 -
关于本地运行spark程序报错的问题(持续更新)
java.io.IOException: Could not locate executable null\bin\winutils.exe in the Hadoop binaries.在本地运行spark程序,按照网上的方法,进行配置后任然无法解决的,可以尝试在程序中加入:System.setProperty("hadoop.home.dir", "D:\\hadoop-common-2....原创 2019-07-24 10:12:34 · 2764 阅读 · 0 评论 -
spark环境的搭建
安装scala网上百度一个,很简单,就不重复了 注意版本的选择安装java可以参考我以前的一篇文章,或者百度 注意需要1.8+Hadoop 安装如果需要源码编译spark,spark源码编译scala,java,Hadoop等版本的选择很重要,否则编译安装几天,你会发现各种报错,网上有人贡献了版本列表,可以考参考他们的,对于源码编译spark,Hadoop环境是必不可少的,可以参考我以前...原创 2019-07-29 13:58:46 · 1605 阅读 · 0 评论 -
正确提交spark应用
standalone+client模式spark-submit --class com.jrq.submit.WordCount –name “SimpleWordCount” –master spark://master:7077 –deploy-mode client –driver-memory 512m –executor-memory 512m –total-executo...原创 2019-08-03 22:08:49 · 1646 阅读 · 0 评论 -
spark schedulers on driver
DAG调度 - Dependency窄依赖: 父亲RDD的一个分区数据只能被子RDD的一个分区消费:map, filter, flatMap等宽依赖:父亲RDD的一个分区的数据同时被子RDD多个分区消费reduceByKey, groupByKey, coalesce, combineByKey等DAG调度 – stage调度调度流程图如下:任务调度 – taskset内部task...原创 2019-08-04 21:24:44 · 1690 阅读 · 0 评论 -
关于sparkSQL JDBC接口读取注意点
jdbc的简单操作 val spark = SparkSession .builder() .appName("JdbcDatasourceTest") .master("local") .getOrCreate() //url: // jdbc:mysql://master:3306/test // jdbc:or...原创 2019-08-08 10:39:47 · 2291 阅读 · 0 评论 -
谈谈spark java的api
不知道怎么说开场白,直接上代码吧,以下的new Function<String, String>等代码都不需要你自己写,在你用spark api的时候,编辑器会有提示出来,你只需要去实现核心代码就行了一、RDD的三种创建方式1.从稳定的文件存储系统中创建RDD,比如local fileSystem或者hdfs等,如下: //初始化JavaSparkContext ...原创 2019-08-06 15:05:31 · 1801 阅读 · 0 评论 -
关于sparkSQL读json和csv文件的一些问题点
读json格式的数据和文件 import spark.implicits._ // spark的一个隐式转换 val spark = SparkSession .builder() .master("local") .appName("JsonFileTest") .getOrCreate() / /读取json文件数据 ...原创 2019-08-07 11:53:26 · 3231 阅读 · 0 评论 -
SQL内置函数
别问博主哪里来的,呕心沥血,整理来当做字典查看就好了,所有的内置函数名参考:org.apache.spark.sql.catalyst.analysis.FunctionRegistry特别说明:内置函数过多,记住常用的,其他的有点映像就行了,收藏我的这个文章,到时候来查字典就好了聚合函数准备点数据:val spark = SparkSession .builder() ...原创 2019-08-10 09:36:56 · 5247 阅读 · 0 评论 -
spark steaming的性能问题
1.Steaming 的数据处理大致流程Receiving(数据的接收器) —> Transforming(你写的数据处理代码) --> Outputing(把处理的数据保存起来)那么问题来了:1.数据的发送速率突然间急剧变化,怎么处理?2.数据转化处理的速度每天都不一样,怎么办?3.当写外部数据库或者HDFS文件的时候突然间速度慢了下来,怎么解决?以上三个问题,的...原创 2019-08-12 22:18:48 · 1611 阅读 · 0 评论 -
spark RDD汇总(一)
collect val listRDD = sc.parallelize[Int](Seq(1, 2, 4, 3, 3, 6), 2) listRDD.collect() // 收集rdd的所有数据take listRDD.take(2) // 取前两toplistRDD.top(2) // 取最大的两个firstlistRDD.first() // 取第一个...原创 2019-12-21 15:22:55 · 2469 阅读 · 0 评论 -
spark执行时的踩坑(持续更新)
回顾以前的知识点,重新走一次,结合工作中遇到的问题,做一些总结笔记start-thriftserver.shspark需要连hive,那么就需要启动这个,利用命令:$SPARK_HOME/sbin/start-thriftserver.sh \--hiveconf hive.server2.thrift.port=10000 \--hiveconf hive.server2.thrift...原创 2019-08-28 13:21:28 · 2751 阅读 · 0 评论