Spark调优与调试
1.使用SparkConf配置Spark
SparkConf conf =new SparkConf();
//设置应用名称
conf.set("spark.app.name",",my spark app");
//设置master
conf.set("spark.master","local");
//设置ui端口号
conf.set("spark.ui.port","36000");
//使用这个配置对象创建一个SparkContext
JavaSparkContext sc =new JavaSparkContext(conf);
SparkConf conf =new SparkConf();
conf.setAppName("my spark app");
conf.setMaster("local");
JavaSparkContext sc =new JavaSparkContext(conf);
bin/spark-submit--class com.example.myapp--master local--name myspp--conf spark.ui.port=36000myApp.jar
bin/spark-submit--class com.example.myapp--properties-file my-config.confmyApp.jar##Content of my-config.conf ##spark.master local[4]spark.app.name "my spark app"spark.ui.port 360000
| 常用的Spark配置项的值 | 默认值 | 描述 |
| spark.executor.memory (--executor-memory) |
512M | 为每个执行器进程分配的内存,格式与JVM内存字符串格式一样。 |
| spark.executor.cores (--executor-cores) spark.core.max (--total-executor-cores) |
1(无) | 限制应用使用的核心个数的配置项。在YARN模式下,spark.executor.cores会为每个任务分配指定书目的核心。在独立模式和Mesos模式下,spark.core.max设置了所有执行器进程使用的核心总数的上限。 |
| spark.speculation | false | 设为true时开启任务预测执行机制。当出现比较慢的任务是,这种机制会在另外的节点上也尝试执行该任务的一个副本。打开此选项会帮助减少大规模集群中个别慢的任务带来的影响。 |
| spark.storage.blockMan agerTimeoutIntervalMs |
45000 | 内部用来通过超时机制追踪执行器进程是否存活的阀值。对于会引发长时间垃圾回收暂停的作业,需要把这个值调到100秒以上来放置失败。在Spark将来的版本中,这个配置项可能会被一个统一的超时设置所替代。 |
| spark.executor.extraJava Options spark.executor.extra ClassPath spark.executor.extra Library |
空 | 这三个参数用来自动以如何启动执行器进程的JVM,分别用来添加额外的Java参数,classpath以及程序库路径。使用字符串来设置这些参数。推荐使用--jars标记来添加依赖。 |
| spark.serizlizer | org.apache.spark.serializer.JavaSerializer | 指定用来进行序列化的类库,包含通过网络传输数据或缓存数据时的徐泪花。默认的Java序列化对于任何可以被徐泪花的Java独享都适用,但是速度很慢。我们推荐在追求速度时适用org.apache.spark.serializer.KryoSerializer并且对Kyro进行适当的调优。该项可以配置为任何org.apache.serializer的子类。 |
| spark.eventLog.enabled | false | 设为true时,开启时间日志机制,这样已完成的Saprk作业就可以通过历史服务器查看。 |
| spark.eventLog.dir | file///tmp/spark-event | 值开启事件日志机制时,事件日志文件的存储位置。这个值指向的路径需要设置一个全局可见的文件系统中,比如HDFS |
import com.esotericsoftware.kryo.Kryo;
import org.apache.spark.serializer.KryoRegistrator;
/**
* Created by Administrator on 2015/11/30.
*/
public class MyRegistrator implements KryoRegistrator{
public void registerClasses(Kryo kryo) {
//注册需要使用KryoSerizlizer的类
kryo.register(javaBean.class);
}
}
public class javaBean implements Serializable {
public int i;
//构造函数
public javaBean(int i){
this.i=i;
}
//getter
public int getI() {
return i;
}
//setter
public void setI(int i) {
this.i = i;
}
public String toString(){
return "this is the "+i+"th element!";
}
}
import org.apache.spark.SparkConf;
import org.apache.spark.api.java.JavaRDD;
import org.apache.spark.api.java.JavaSparkContext;
import java.util.ArrayList;
import java.util.List;
/**
* Created by Administrator on 2015/11/30.
*/
public class main {
public static void main(String args[]){
SparkConf conf =new SparkConf();
conf.setAppName("my spark app");
conf.setMaster("local");
//设置序列化类
conf.set("spark.serializer","org.apache.spark.serializer.KryoSerializer");
//注册要使用KryoSerializer的类
conf.set("spark.kryo.registrator","MyRegistrator");
JavaSparkContext sc =new JavaSparkContext(conf);
List<javaBean> list =new ArrayList<javaBean>();
for(int i=0;i<10000;i++){
javaBean bean =new javaBean(i);
list.add(bean);
}
JavaRDD<javaBean> rdd =sc.parallelize(list);
for(javaBean bean:rdd.collect())
System.out.println(bean);
}
}
Spark调优与调试的更多相关文章
- Spark学习之Spark调优与调试(7)
Spark学习之Spark调优与调试(7) 1. 对Spark进行调优与调试通常需要修改Spark应用运行时配置的选项. 当创建一个SparkContext时就会创建一个SparkConf实例. 2. ...
- Spark学习之Spark调优与调试(二)
下面来看看更复杂的情况,比如,当调度器进行流水线执行(pipelining),或把多个 RDD 合并到一个步骤中时.当RDD 不需要混洗数据就可以从父节点计算出来时,调度器就会自动进行流水线执行.上一 ...
- Spark学习之Spark调优与调试(一)
一.使用SparkConf配置Spark 对 Spark 进行性能调优,通常就是修改 Spark 应用的运行时配置选项.Spark 中最主要的配置机制是通过 SparkConf 类对 Spark 进行 ...
- Spark学习笔记6:Spark调优与调试
1.使用Sparkconf配置Spark 对Spark进行性能调优,通常就是修改Spark应用的运行时配置选项. Spark中最主要的配置机制通过SparkConf类对Spark进行配置,当创建出一个 ...
- spark调优经验(待续)
spark调优是须要依据业务须要调整的,并非说某个设置是一成不变的,就比方机器学习一样,是在不断的调试中找出当前业务下更优的调优配置.以下零碎的总结了一些我的调优笔记. spark 存储的时候存在严重 ...
- Spark调优 | Spark Streaming 调优
Spark调优 | Spark Streaming 调优 1.数据序列化 2.广播大变量 3.数据处理和接收时的并行度 4.设置合理的批处理间隔 5.内存优化 5.1 内存管理 5.2优化策略 5.3 ...
- 【Spark学习】Apache Spark调优
Spark版本:1.1.0 本文系以开源中国社区的译文为基础,结合官方文档翻译修订而来,转载请注明以下链接: http://www.cnblogs.com/zhangningbo/p/4117981. ...
- 【Spark调优】提交job资源参数调优
[场景] Spark提交作业job的时候要指定该job可以使用的CPU.内存等资源参数,生产环境中,任务资源分配不足会导致该job执行中断.失败等问题,所以对Spark的job资源参数分配调优非常重要 ...
- 【Spark调优】大表join大表,少数key导致数据倾斜解决方案
[使用场景] 两个RDD进行join的时候,如果数据量都比较大,那么此时可以sample看下两个RDD中的key分布情况.如果出现数据倾斜,是因为其中某一个RDD中的少数几个key的数据量过大,而另一 ...
随机推荐
- acm的第一场比赛的总结
6.4-6.5号很激动的去湖南湘潭打了一场邀请赛,这是第一次acm的旅程吧.毕竟大一上册刚开始接触c,然后现在就能抱着学长的大腿(拖着学长的后腿)打比赛,也是有一点小小的激动. 第一天很早就起床了,由 ...
- 第一个元素<flout>写了,想在他的旁边加一个元素.IE6会出现缝隙. 不要用margin撑开,要用flout
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...
- Robot Framework用法总结
今天总结下Robot Framework最基本的用法,一来呢,希望自己以后看到这篇总结,很快能回忆起如何使用Robot Framework.二来呢,以初学者的姿态总结Robot Framework,希 ...
- Go语言实现列出排列组合
今天,隔壁坐的小朋友给我一串数字: 1 6 21 55 让我观察规律,然后帮他推导公式. 尼玛,当我是神呢?!! 想了半天没看出个原委, 于是看了他那边具体需要才发现他那边是对N个数字进行5个数字的组 ...
- VS2015安装提示出现“安装包丢失或损坏”解决方法
原因:microsoft root certificate authority 2010.microsoft root certificate authority 2011证书未安装,导致文件校验未通 ...
- base库
/* * 跨浏览器基础库=============================================== * */ //浏览器检测 (function () { window.sys = ...
- SVN MERGE 和冲突
摘要:最佳做法是避免冲突.冲突时,不要把branch merge到trunk. 先由最新版本的trunk得到branch,然后再修改文件,直接merge过去就行.这样不会有冲突.先用svn merge ...
- Struts2--Result类型
4种 result类型: dispatcher, redirect, chain, redirectAction dispatcher, redirect只能跳转到jsp等页面 chain,redir ...
- Oracle case 关键字的使用
select e.salary, --case 语句开始 case then salary else salary end new_salary --case 语句结束,可见也和存储过程等结束方式一样 ...
- [Java]局域网五子棋
提示: 下面给的代码有问题哦,可以自己去调试 可用版下载 请点击这里 密码:x6ve(退出程序,端口并没有被关闭,可自行修改代码实现) img