关于在本地idea当中提交spark代码到远程的错误总结(第二篇)
当代码能正常提交到spark集群运行的时候,出现下面的错误:
Exception in thread "main" java.lang.OutOfMemoryError: PermGen spaceat java.lang.ClassLoader.defineClass1(Native Method)at java.lang.ClassLoader.defineClass(ClassLoader.java:800)at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)at java.net.URLClassLoader.defineClass(URLClassLoader.java:449)at java.net.URLClassLoader.access$100(URLClassLoader.java:71)at java.net.URLClassLoader$1.run(URLClassLoader.java:361)at java.net.URLClassLoader$1.run(URLClassLoader.java:355)at java.security.AccessController.doPrivileged(Native Method)at java.net.URLClassLoader.findClass(URLClassLoader.java:354)at java.lang.ClassLoader.loadClass(ClassLoader.java:425)at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)at java.lang.ClassLoader.loadClass(ClassLoader.java:358)at scala.collection.SeqViewLike$AbstractTransformed.<init>(SeqViewLike.scala:43)at scala.collection.SeqViewLike$$anon$4.<init>(SeqViewLike.scala:79)at scala.collection.SeqViewLike$class.newFlatMapped(SeqViewLike.scala:79)at scala.collection.SeqLike$$anon$2.newFlatMapped(SeqLike.scala:635)at scala.collection.SeqLike$$anon$2.newFlatMapped(SeqLike.scala:635)at scala.collection.TraversableViewLike$class.flatMap(TraversableViewLike.scala:160)at scala.collection.SeqLike$$anon$2.flatMap(SeqLike.scala:635)at org.apache.spark.sql.catalyst.planning.QueryPlanner.plan(QueryPlanner.scala:58)at org.apache.spark.sql.execution.QueryExecution.sparkPlan$lzycompute(QueryExecution.scala:48)at org.apache.spark.sql.execution.QueryExecution.sparkPlan(QueryExecution.scala:46)at org.apache.spark.sql.execution.QueryExecution.executedPlan$lzycompute(QueryExecution.scala:53)at org.apache.spark.sql.execution.QueryExecution.executedPlan(QueryExecution.scala:53)at org.apache.spark.sql.execution.QueryExecution.toRdd$lzycompute(QueryExecution.scala:56)at org.apache.spark.sql.execution.QueryExecution.toRdd(QueryExecution.scala:56)at org.apache.spark.sql.DataFrame.withCallback(DataFrame.scala:153)at org.apache.spark.sql.DataFrame.<init>(DataFrame.scala:145)at org.apache.spark.sql.DataFrame.<init>(DataFrame.scala:130)at org.apache.spark.sql.DataFrame$.apply(DataFrame.scala:52)at org.apache.spark.sql.SQLContext.sql(SQLContext.scala:829)at p.JavaSparkPi.main(JavaSparkPi.java:30) Exception in thread "Thread-3" java.lang.OutOfMemoryError: PermGen space Exception in thread "Thread-30" java.lang.OutOfMemoryError: PermGen space Exception in thread "Thread-33" java.lang.OutOfMemoryError: PermGen space
除了出现上面的问题之外还会出现下面这个错误。看到这个错误的第一反应内存溢出
Job aborted due to stage failure: Total size of serialized results of 34 tasks (1033.9 MB) is bigger than spark.driver.maxResultSize (1024.0 MB) Exception in thread "main" Exception: java.lang.OutOfMemoryError thrown from the UncaughtExceptionHandler in thread "main" 2018-12-19 10:42:51,599 WARN [shuffle-client-0] server.TransportChannelHandler : Exception in connection from /10.8.30.108:50610java.io.IOException: Connection reset by peer at sun.nio.ch.FileDispatcherImpl.read0(Native Method) at sun.nio.ch.SocketDispatcher.read(SocketDispatcher.java:39) at sun.nio.ch.IOUtil.readIntoNativeBuffer(IOUtil.java:223) at sun.nio.ch.IOUtil.read(IOUtil.java:192) at sun.nio.ch.SocketChannelImpl.read(SocketChannelImpl.java:379) at io.netty.buffer.PooledUnsafeDirectByteBuf.setBytes(PooledUnsafeDirectByteBuf.java:313) at io.netty.buffer.AbstractByteBuf.writeBytes(AbstractByteBuf.java:881) at io.netty.channel.socket.nio.NioSocketChannel.doReadBytes(NioSocketChannel.java:242) at io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:119) at io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:511) at io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:468) at io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:382) at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:354) at io.netty.util.concurrent.SingleThreadEventExecutor$2.run(SingleThreadEventExecutor.java:111) at java.lang.Thread.run(Thread.java:745)2018-12-19 10:42:51,610 INFO [dispatcher-event-loop-1] yarn.ApplicationMaster$AMEndpoint : Driver terminated or disconnected! Shutting down. tc-20024:506102018-12-19 10:42:51,614 INFO [dispatcher-event-loop-1] yarn.ApplicationMaster : Final app status: SUCCEEDED, exitCode: 02018-12-19 10:42:51,623 INFO [Thread-3] yarn.ApplicationMaster : Unregistering ApplicationMaster with SUCCEEDED2018-12-19 10:42:51,637 INFO [Thread-3] impl.AMRMClientImpl : Waiting for application to be successfully unregistered.2018-12-19 10:42:51,743 INFO [Thread-3] yarn.ApplicationMaster : Deleting staging directory .sparkStaging/application_1545188975663_00022018-12-19 10:42:51,745 INFO [Thread-3] util.ShutdownHookManager : Shutdown hook called
这个种种的迹象都显示是程序的内存溢出造成的,那为什么会内存溢出那,原因是我们队结果集进行collect操作的时候,整的结果作为一个大的集群全部的聚集到了driver 端也就是我们的idea当中。这个时候我们的客户端如果内存不是够大的情况下就会出现内存溢出的情况
你可以调大你的内存。但是这样是治标不治本的操作,在后面的操作过程当中,你也不知道后面的数据量多大,配置多大的driver内存合适那,这个就很难界定了。所以我们在处理数据的时候尽量的减轻对driver端的压力。可以使用foreachpartition的方法将数据全部在excutor端进行
处理。
参考这篇文章执行:https://segmentfault.com/a/1190000005365244?utm_source=tag-newest
这里注意一下,所有的数据都是按照row输出在excutor端的不是我们的控制台。
转载于:https://www.cnblogs.com/gxgd/p/10179052.html
关于在本地idea当中提交spark代码到远程的错误总结(第二篇)相关推荐
- 在window上提交spark代码到远程测试环境上运行
测试代码: package sparkcore import org.apache.spark.{SparkConf, SparkContext} /** * Created by chingy ...
- 规范化流程化提交自己代码到远程gitlab服务器
流程 进入到build目录 使用make命令进行编译 make -j 6,前提是cmake命令已经执行 ../format.py run git add .. 添加文件 git checkout - ...
- 《软技能-代码之外的生存指南》————第二篇 自我营销
针对码农的营销基础课 营销的核心是将一些人所需要的和所期待的产品或服务本身连接起来 自我营销的正确方式就是为他人提供价值 自我营销是学习如何控制好自己要传达的信息,塑造好自己的形象,扩展信息送达的人群 ...
- 本地提交spark_Spark在Windows下运行,本地提交spark到远程yarn集群
[问题]Spark在windows能跑集群模式吗? 我认为是可以的,但是需要详细了解cmd命令行的写法.目前win下跑spark的单机模式是没有问题的. [关键点]spark启动机制容易被window ...
- eclipse使用git提交本地项目,提交至远程github上
准备工作: 目的:eclipse使用git提交本地项目,提交至远程github上 eclipse版本:eclipse4.5 64位 jdk版本:jdk-1.7 64位 项目类型:maven web项 ...
- Git 代码管理(代码提交和代码回退)
Git 代码管理(代码提交和代码回退) Git的主要功能是代码管理,版本管理,分支管理. 在远程代码管理平台上,项目的代码被管理在一个远程代码仓库中,在本地,代码保存在一个本地代码仓库中.通过Git, ...
- 集群提交HBase代码报错:Caused by: java.lang.ClassNotFoundException: org.apache.hadoop.hbase.HBaseConfiguratio
原因分析 HBase官网 已经告诉我们原因以及解决方法了: 原因: 默认情况下,部署到MapReduce群集的MapReduce作业无法访问$ HBASE_CONF_DIR下的HBase配置或HBas ...
- spark系列-应用篇之通过livy提交Spark任务
#前言 上一篇使用yarn api的提交spark任务比较麻烦, 这次我们使用livy来提交spark任务.livy的使用十分简单,功能上比yarn api还要强大,支持提交spark代码片断,ses ...
- spark python 上传代码包_使用 Livy Rest API 提交 spark 批量任务 (jar,Python, streaming)...
Livy是一个开源的REST 接口,用于与Spark进行交互,它同时支持提交执行代码段和完整的程序. image.png Livy封装了spark-submit并支持远端执行. 启动服务器 执行以下命 ...
最新文章
- python接口自动化5-Json数据处理
- (深入理解)matplotlib的交互模式(block,interactive,ion,ioff,draw,show,plot等的区别)
- 2016年软考网络工程师考试命题范围变化之网络设备配置与复习技巧
- windows服务与网页交互_戴尔高级主动式触控笔-PN579X评测:Windows也有好触控
- PL/SQL -- 函数
- Sentinel 规则持久化到 apollo 配置中心
- Python 获取当前文件夹所有文件名并写入到excel文件中
- leetcode 1143. 最长公共子序列(dp)
- Java zset 应用_Java简单使用redis-zset实现排行榜
- WeTool V6.0.0免费版多功能微信好有管理软件
- Flutter Image 图片加载
- 获得显示器设置的分辨率
- 【单片机基础篇】舵机模块使用
- Q132:PBRT-V3,BSSRDF(双向散射表面反射分布函数)(5.6.2章节、11.4章节)
- MyEclipse和Eclipse中修改编码
- 神经网络之BP神经网络
- 怎么使用水经注万能地图下载器制作百度兴趣点个性化地图
- python写android抢票软件,如何用python写一个简单的12306抢票软件
- IPTV的开展在广电企业、电信运营商角度上的异同
- .net输入汉字转拼音