![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Spark
文章平均质量分 54
微步229
这个作者很懒,什么都没留下…
展开
-
Spark性能优化指南——高级篇
前言继基础篇讲解了每个Spark开发人员都必须熟知的开发调优与资源调优之后,本文作为《Spark性能优化指南》的高级篇,将深入分析数据倾斜调优与shuffle调优,以解决更加棘手的性能问题。数据倾斜调优调优概述有的时候,我们可能会遇到大数据计算中一个最棘手的问题——数据倾斜,此时Spark作业的性能会比期望差很多。数据倾斜调优,就是使用各种技术方案解决不同类型的数据倾斜问题,以保证Spark作业的...转载 2018-06-19 10:01:50 · 455 阅读 · 0 评论 -
Spark SQL/DataFrame/DataSet操作(四)-----Join
数据准备,先构建两个DataFramescala> val df1 = spark.createDataset(Seq(("a", 1,2), ("b",2,3) )).toDF("k1","k2","k3")df1: org.apache.spark.sql.DataFrame = [k1: string, k2: int ... 1 more field]scala&g原创 2018-09-06 18:04:28 · 2406 阅读 · 0 评论 -
Spark Locality Level
分布式计算系统的精粹在于移动计算而非移动数据,但是在实际的计算过程中,总存在着移动数据的情况。移动数据,将数据从一个节点移动到另一个节点进行计算,不但消耗了网络IO,也消耗了磁盘IO,降低了整个计算的效率。Spark UI可以查看取数据情况 下面是Spark webUI监控Stage的一个图: PROCESS_LOCAL是指读取缓存在本地节点的数据 NODE_LOCAL是指读...原创 2018-09-14 09:56:45 · 1474 阅读 · 0 评论 -
Spark SQL详解
转自:https://mp.weixin.qq.com/s/SGhYBxGd5qCVfeM70DRFTw发家史熟悉spark sql的都知道,spark sql是从shark发展而来。Shark为了实现Hive兼容,在HQL方面重用了Hive中HQL的解析、逻辑执行计划翻译、执行计划优化等逻辑,可以近似认为仅将物理执行计划从MR作业替换成了Spark作业(辅以内存列式存储等各种和Hive关...转载 2018-09-26 09:06:17 · 3688 阅读 · 0 评论 -
Spark 堆外内存
转自:https://blog.csdn.net/bitcarmanlee/article/details/787938231.堆外内存有哪些前面提到spark中的堆内存溢出,除了堆内存,还有堆外内存。该部分内存主要用于程序的共享库、Perm Space、 线程Stack和一些Memory mapping等, 或者类C方式allocate object.堆外内存在Spark中可以从逻辑...转载 2018-09-26 09:29:18 · 4505 阅读 · 0 评论 -
解决Spark OOM
spark任务在调试过程中,OOM是非常讨厌的一种情况。本文针对Heap OOM的情况先做一定分析,告诉大家如何调参。1.Heap OOM的现象如果在Spark UI或者在spark.log中看到如下日志:java.lang.OutOfMemoryError: GC overhead limit exceededjava.lang.OutOfMemoryError: java he...转载 2018-09-26 10:33:11 · 4180 阅读 · 0 评论 -
记一个Spark Excutor Dead问题解决过程(memory.TaskMemoryManager: Failed to allocate a page)
一、问题现象通过Spark UI查看Excutors,发现存在Excutor Dead的情况 进一步查看dead Excutor stderr日志,发现如下报错信息WARN memory.TaskMemoryManager: Failed to allocate a page (67108864 bytes), try again 二、解决过程打开GC日志...原创 2018-12-10 17:43:01 · 10418 阅读 · 0 评论 -
HiveServer2(Spark ThriftServer)自定义权限认证
Hive除了为我们提供一个 CLI 方式来查询数据之外,还给我们提供了基于 JDBC/ODBC 的方式来连接Hive,这就是HiveServer2(HiveServer)。但是默认情况下通过 JDBC 连接 HiveServer2 不需要任何的权限认证(hive.server2.authentication = NONE);这意味着任何知道 ThriftServer 地址的人都可以连接我们的...转载 2019-04-03 10:32:27 · 5798 阅读 · 0 评论 -
ERROR executor.CoarseGrainedExecutorBackend: RECEIVED SIGNAL TERM的一种解决方案
问题现象:spark应用能正常计算得到结果,但是查看executor有很多是dead,如下图查看executorstderr日志发现有错误日志:ERROR executor.CoarseGrainedExecutorBackend: RECEIVED SIGNAL TERM除此之外没有其他任何错误信息问题原因:由于使能动态资源分配executors数(spark.dy...原创 2019-05-08 11:11:57 · 32009 阅读 · 2 评论 -
Spark SQL合并小文件的一种方法
小文件问题原因:spark.sql.shuffle.partitions=200 sparksql默认shuffle分区是200个,如果数据量比较小时,写hdfs时会产生200个小文件。可通过如下调整,使其自适应的合并小文件(本人测试环境从原来的200个小文件合并成一个文件)解决方法:spark-sql> set spark.sql.adaptive.enabled=t...原创 2019-05-07 17:20:19 · 12820 阅读 · 7 评论 -
spark-submit提交报错: java.sql.SQLException: No suitable driver解决方法
一、问题出现背景:spark-submit提交程序运行时报错User class threw exception: java.sql.SQLException: No suitable driver,写入oracle代码如下:/*写入Oracle,采用追加模式*/dataFrame.write().format("jdbc") .option("url", "jdb...原创 2019-08-21 16:23:08 · 3424 阅读 · 1 评论 -
Spark SQL/DataFrame/DataSet操作(三)-----分组聚合groupBy
分组函数groupBy(1)分组计数select address,count(1) from people group by address; 等价的算子如下scala> peopleDF.show()+--------+---+--------+| name|age| address|+--------+---+--------+|zhangsan| 22| ...原创 2018-09-06 16:26:46 · 18667 阅读 · 1 评论 -
Spark SQL/DataFrame/DataSet操作(二)-----算子filter和sort
一、过滤算子filter(filter等价于where算子)DF.col("id")等价于$"id",取列ColumnNameDF.filter("name=''") 过滤name等于空的行DF.filter($"age" > 21).show() 过滤age大于21的行,必须增加语句:import spark.implicits._,否则$表达式会报错DF.f...原创 2018-09-06 15:07:56 · 8174 阅读 · 0 评论 -
Spark SQL/DataFrame/DataSet操作(一)-----读数据
所有示例代码均在spark-shell上运行,我使用的是spark 2.2,其它版本方法类似 。示例代码中的spark为Spark session变量 一、读取数据源(1)读取json ,使用spark.read。注意:路径默认是从HDFS,如果要读取本机文件,需要加前缀file://,如下scala> val people = spark.read.format("...原创 2018-09-06 14:05:20 · 1901 阅读 · 0 评论 -
Spark性能优化指南——基础篇
前言在大数据计算领域,Spark已经成为了越来越流行、越来越受欢迎的计算平台之一。Spark的功能涵盖了大数据领域的离线批处理、SQL类处理、流式/实时计算、机器学习、图计算等各种不同类型的计算操作,应用范围与前景非常广泛。在美团•大众点评,已经有很多同学在各种项目中尝试使用Spark。大多数同学(包括笔者在内),最初开始尝试使用Spark的原因很简单,主要就是为了让大数据计算作业的执行速度更快、...转载 2018-06-19 10:04:02 · 402 阅读 · 0 评论 -
[Spark性能调优] Spark Shuffle 中 JVM 内存使用及配置内幕详情
本课主题 JVM 內存使用架构剖析Spark 1.6.x 和 Spark 2.x 的 JVM 剖析Spark 1.6.x 以前 on Yarn 计算内存使用案例Spark Unified Memory 的运行原理和机制 引言Spark 从1.6.x 开始对 JVM 的内存使用作出了一种全新的改变,Spark 1.6.x 以前是基于静态固定的JVM内存使用架构和运行机制,如果你不知道 Spark 到...转载 2018-07-04 14:30:54 · 1666 阅读 · 0 评论 -
Spark 2 内存管理之源码剖析
本课主题 Static MemoryManager 的源码鉴赏 Unified MemoryManager 的源码鉴赏 引言从源码的角度了解 Spark 内存管理是怎么设计的,从而知道应该配置那个参数让程序运行更适合你的实际需要,我们为什么要把 Spark Memory 这块内存调大,原因很简单,理论上讲你调得愈来,你占用的空间愈大,程序运行时所产生的 IO 就会愈来愈少,理论可以参考第四章 :...转载 2018-07-04 14:37:35 · 380 阅读 · 0 评论 -
cloudera 针对Apache Spark Jobs 性能调优(一)
原文地址:http://blog.cloudera.com/blog/2015/03/how-to-tune-your-apache-spark-jobs-part-1/Apache Spark Jobs 性能调优(一)Spark 是如何执行程序的选择正确的 Operator什么时候不发生 Shuffle什么情况下 Shuffle 越多越好二次排序结论当你开始编写 Apache Spark 代码或...转载 2018-07-06 08:38:48 · 524 阅读 · 0 评论 -
cloudera 针对Apache Spark Jobs 性能调优(二)
原文地址:http://blog.cloudera.com/blog/2015/03/how-to-tune-your-apache-spark-jobs-part-2/Apache Spark Jobs 性能调优(二)调试资源分配调试并发压缩你的数据结构数据格式在这篇文章中,首先完成在 Part I 中提到的一些东西。作者将尽量覆盖到影响 Spark 程序性能的方方面面,你们将会了解到资源调优,...转载 2018-07-06 08:41:53 · 727 阅读 · 0 评论 -
Spark 2.2 内存占用计算公式
在Spark内存管理调优中,我们需要重点关注的有两类内存:ExecutionMemory and storageMemory。ExecutionMemory用于spark计算中的shuffles、 joins、sorts 、 aggregations这些操作,storageMemory用于缓存数据和保存广播变量数据Spark内存空间计算:ExecutionMemory = spark.shuffl...原创 2018-07-06 13:49:53 · 7612 阅读 · 1 评论 -
错误Could not locate executable null\bin\winutils.exe in the Hadoop binaries的解决方案(带hadoop下载地址)
问题描述:Windows IDEA在进行spark 开发的时候,运行报错Could not locate executable null\bin\winutils.exe in the Hadoop binaries(注:这个错误一般不用管,但是如果SparkSession 要enableHiveSupport(),则必须解决,否则运行会报错) 解决步骤:步骤一、下载Win...原创 2018-08-03 10:47:54 · 2637 阅读 · 1 评论 -
Windows 上IDEA Spark 支持Hive的方法
在Windows IDEA进行Spark开发的时候,只要enableHiveSupport()就会报错,网上找了很多文章均不能解决问题,折腾了半天终于解决了,做一个记录 一、需要集群中Hive的配置hive-site.xml和hdfs-site.xml放到工程的resource目录下如果是cdh则hive的配置在/etc/hive/conf路径下,如下图:IDEA resour...原创 2018-08-03 11:11:35 · 2619 阅读 · 0 评论 -
spark慢task解决方法--推测式执行原理
参考:https://blog.csdn.net/uuffo/article/details/78288921概述1、spark推测执行开启,设置 spark.speculation=true即可额外设置1. spark.speculation.interval 100:检测周期,单位毫秒;2. spark.speculation.quantile 0.75:完成task的百分...原创 2018-08-19 09:54:05 · 5107 阅读 · 0 评论 -
Spark SQL在100TB上的自适应执行实践
作者:汪愈舟 俞育才 郭晨钊 程浩(英特尔),李元健(百度)责编:钱曙光(qianshg@csdn.net) Spark SQL是Apache Spark最广泛使用的一个组件,它提供了非常友好的接口来分布式处理结构化数据,在很多应用领域都有成功的生产实践,但是在超大规模集群和数据集上,Spark SQL仍然遇到不少易用性和可扩展性的挑战。为了应对这些挑战,英特尔大数据技...转载 2018-09-03 11:11:56 · 1625 阅读 · 0 评论 -
记一次Spark中 Container killed by YARN for exceeding memory limits的解决过程
一、问题现象:使用sparksql调用get_json_object函数后,报如下错误:yarn容器被kill,导致任务失败,查看日志:Container killed by YARN for exceeding memory limits使用spark命令:/opt/software/spark-2.2.0-bin-hadoop2.6/bin/spark-sql \--mas...原创 2019-09-16 10:57:24 · 22429 阅读 · 7 评论