首页 > 数据库 > > spark的排错和调优
The version of scala library found in the build path of TestSpark (2.10.5) is prior to the one provided by scala IDE (2.11.7). Setting a Scala Installation Choice to match. TestSpark Unknown Scala Version Problem
复制代码
新建scala工程
1.在工程中移除自带的scala版本库
1.添加spark 库spark-assembly-1.1.0-cdh5.2.0-hadoop2.5.0-cdh5.2.0.jar
3.修改工程中的scala编译版本
4.右击 –> Scala –> set the Scala Installation
也可以
右击工程–> Properties –> Scala Compiler –> Use project Setting 中选择spark对应的scala版本,此处选择Lastest2.10 bundle
###4、问题: 不设置spark.local.dir 这是spark写shuffle输出的地⽅
解决: 设置⼀一组磁盘 spark.local.dir=/mn1/spark, /mnt2/spar, /mnt3/spark
增加IO即加快速度
解决: 需要按照实际情况调整
太多的reducer,造成很多的小任务,以此产⽣生很多启动任 务的开销。
太少的reducer,任务执⾏行慢!
reduce的任务数还会影响到内存
解决 : 直接输出到分布式⽂文件系统
兼容性好,体积大,速度慢
解决: 使⽤用Kryo serialization
产生错误的背景描述: 发送一个请求到netty server,netty server启动一个spark 程序,spark 程序的执行结果返回给netty client,关闭netty client,再起一个netty client,就出现上面的情况。
分析:spark应用程序提交的时候是首先从4040端口开始的,如果被占用,会使用4041,如果还被占用,就使用4042,一直轮询下去。也可以在程序中配置 spark.ui.port 属性使用指定端口。上述案例中由于上一个spark 程序没有正常结束,才导致端口一直被占用。
解决方法:sparkConf.set(“spark.driver.allowMultipleContexts”,“true”);
在通过spark-submit提交任务时,可以通过添加配置参数来指定
–j ars 外部jar包
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/26692020/viewspace-3121097/ ,如需转载,请注明出处,否则将追究法律责任。