
spark
文章平均质量分 65
longlovefilm
这个作者很懒,什么都没留下…
展开
-
几种数据倾斜处理
1、 count(distinct ) 倾斜处理分三层处理with t1 as ( select 1 as f1, 2 as f2 union all select 1 as f1, 21 as f2 union all select 1 as f1, 22 as f2 union all select 1 as f1, 23 as f2 union all select 1 as f1, 24 as f2 union all selec原创 2021-12-21 20:15:17 · 150 阅读 · 0 评论 -
Spark SQL参数调优指南
目录1 运行行为1.1 动态生成分区1.2 broadcast join使用hint强制做broadcastjoin:1.3 动态资源分配1.4 Shuflle相关1.5 读ORC表优化2 executor能力2.1内存2.2 executor并发度2.3 executor读取hive表时单task处理数据量/无shuffle作业小文件合并2.4 GC优化(使用较少,当尝试其他调优方法均无效时可尝试此方法)3 driver指标:3.1 内存3.2原创 2021-11-19 11:06:54 · 10891 阅读 · 0 评论 -
mac idea spark运行报错WARN Utils: Service ‘sparkDriver‘ could not bind on port 0. Attempting port 1.
报错截图如下:在hosts里加入 本机ip 机器名如:192.168.22.22 centos7解决...原因是sparkDriver会根据主机名去找地址,找不到就报错..增加环境变量即可SPARK_LOCAL_IP=127.0.0.1也可以在idea Edit Configurations里修改即可...原创 2021-11-14 19:35:02 · 1468 阅读 · 0 评论 -
spark应用tips
1 正常sprkui会在scan和exchange都有数据显示,前者是条数,后者是存储。如果不显示说明这个阶段没有数据。原创 2021-10-19 16:00:17 · 283 阅读 · 0 评论 -
spark内存模型
Spark 1.6 开始使用了统一内存管理模块(UnifiedMemoryManager),并引入了堆外内存(Off-heap memory),1.6之前的内存管理就不进行介绍了。spark堆内和堆外内存模型的示意图(注意:堆外内存是依赖于worker的,而不是executor)spark堆外:(之所以叫spark堆外,是因为后续要和jvm堆外进行区别,也是大家容易弄混淆的地方),为了进一步优化内存的使用以及提高 Shuffle 时排序的效率,Spark 引入了堆外(Off-heap)内原创 2021-09-19 16:30:12 · 1834 阅读 · 0 评论 -
Spark Hive 小文件合并
背景小文件带来的问题对于HDFS从 NN RPC请求角度,文件数越多,读写文件时,对于NN的RPC请求就越多,增大NN压力。从 NN 元数据存储角度,文件数越多,NN存储的元数据就越大。对于下游流程下游流程,不论是MR、Hive还是Spark,在划分分片(getSplits)的时候,都要从NN获取文件信息。这个过程的耗时与文件数成正比,同时受NN压力的影响。在NN压力大,上游小文件多的情况下,下游的getSplits操作就会比较慢。作业生成的文件数为了简化问题,假设:原创 2021-09-18 18:05:11 · 3165 阅读 · 0 评论 -
spark 参数
输入:1、 spark.hadoop.hive.exec.orc.split.strategy含义:参数控制在读取ORC表时生成split的策略:BI策略以文件为粒度进行split划分;ETL策略会将文件进行切分,多个stripe组成一个split;HYBRID策略当文件的平均大小大于hadoop最大split值(默认256M)时使用ETL策略,否则使用BI策略。建议: 由于读orc文件时默认按文件划分task(BI模式), 有数据倾斜的表(这里的数据倾斜指大量stripe存原创 2021-08-16 16:14:24 · 2165 阅读 · 0 评论 -
spark参数配置
参考链接https://spark.apache.org/docs/2.2.0/configuration.html 分类 参数 含义 平台默认值 建议 资源申请&并行度 spark.executor.cores 一个Executor中同时可以执行的task数目(在Executor内存不变的情况下,executor-cores数越大,平.原创 2021-07-28 20:08:39 · 1104 阅读 · 0 评论 -
spark adaptive shuffle
https://www.sohu.com/a/344074120_315839原创 2021-06-16 18:01:12 · 597 阅读 · 3 评论 -
Adaptive Execution如何让Spark SQL更高效更好用?
文章目录背景 动态设置 Shuffle Partition Spark Shuffle 原理 原有 Shuffle 的问题 自动设置 Shuffle Partition 原理 使用与优化方法 动态调整执行计划 固定执行计划的不足 SortMergeJoin 原理 BroadcastJoin 原理 动态调整执行计划原理 使用与优化方法 自动处理数据倾斜 解决数据倾斜典型方案 自动解决数据倾斜 使用与优化方法 本文转发自技术世界,原文原创 2021-01-31 15:35:20 · 148 阅读 · 0 评论 -
spark启动流程1
1 standalone模式1.Driver端启动SparkSubmit进程,启动后开始向Master进行通信,此时创建了一个对象(SparkContext),接着向Master发送任务消息2.Master接收到任务信息后,开始资源调度,此时会和所有的Worker进行通信,找到空闲的Worker,并通知Worker来拿取任务和启动相应的Executor3.Executor启动后,开始与Driver进行反向注册,接下来Driver开始把任务发送给相应的Executor,Executor开始计算任.原创 2020-12-04 14:07:47 · 1315 阅读 · 1 评论 -
sparkstreamming 消费kafka(3)
direct方式读取数据offset放在哪里呢?1) checkpoint生产环境不推荐,因为:官网内容:you cannot recover from a checkpoint if your application code has changed. For planned upgrades, you can mitigate this by running the new code at the same time as the old code (since outputs need to b原创 2020-09-19 18:35:29 · 188 阅读 · 0 评论 -
sparkstreamming 消费kafka(2)
spark streaming提供了两种获取方式,一种是同storm一样,实时读取缓存到内存中;另一种是定时批量读取。这两种方式分别是: Receiver-base Direct 一 、Receiver-base:Spark官方最先提供了基于Receiver的Kafka数据消费模式。不过这种方式是先把数据从kafka中读取出来,然后缓存在内存,再定时处理。如果这时候集群退出,而偏移量又没处理好的话,数据就丢掉了,存在程序失败丢失数据的可能,后在Spark 1.2时引入一个配.原创 2020-09-19 15:13:01 · 301 阅读 · 0 评论 -
sparkstreamming 消费kafka(1)
pom<!--<dependency> <groupId>org.apache.spark</groupId> <artifactId>spark-streaming-kafka-0-8_2.11</artifactId> <version>${spark.version}</version></dependency>--><dependency>原创 2020-09-19 14:08:35 · 167 阅读 · 1 评论 -
sparkstreamming flink区别联系
一 spark1 rdd是通过装饰者模式形成的一系列函数的依赖关系,可分区、并行;其实不是数据而是计算,只不过通常还是叫数据集。2 窄依赖是指一个父rdd的partition做多被一个子rdd 的partition引用,独生子女。3 application 初始化一个sparkContext即生成一个Application。job 一个action算子会生成一个job。stag...原创 2020-03-08 00:08:00 · 441 阅读 · 0 评论 -
spark mysql读取写入
https://blog.youkuaiyun.com/zuochang_liu/article/details/97398209SparkSession ss = SparkSession.builder().config(conf).enableHiveSupport().getOrCreate()//读取方式1String sql = "(select * from xxx) as tmp;...原创 2019-11-24 18:14:47 · 128 阅读 · 0 评论 -
spark初始运行环境创建
首先,使用 ScalaIDE 或 IDEA 创建 Scala 的 Maven 工程。需要用到 spark-core,spark-sql,spark-streaming 的 jar 包,pom 文件如下:<properties> <spark.version>2.1.0</spark.version> <scala.version>2.11&...原创 2019-11-24 16:51:57 · 505 阅读 · 0 评论