spark在处理文件的时候遇到gc的问题

一头大菜鸟 2014-11-17 10:47:41
本人刚开始接触spark的内容。最近做了一个userbased recommdation在处理100M+的文件的时候总是会卡主。需要一行一行的读取操作、我是放到一个ArrayBuffer[String]里面的。。。害怕hashmap占的内存太大所以没敢用。。。
然后又使用spark streaming流操作的时候发现是GC LIMIT的问题。
请问各位前辈 遇到这个问题应该如何解决?后来发现用30M左右的文件就开始出现GC的问题了。。。嗷呜。。。
...全文
409 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
可以如下试试: SPARK_JAVA_OPTS+=" -Dspark.local.dir=/tmp/spark -verbose:gc -XX:+PrintGCDetails -XX:+PrintGCDateStamps -Xloggc:/home/hadoop/software/spark/logs -XX:+UseParallelGC -XX:+UseParallelOldGC -XX:+DisableExplicitGC -Xms1024m -Xmx2048m -XX:MaxPermSize=256m " export SPARK_JAVA_OPTS spark 1.0开始应该是设置 SPARK_DAEMON_JAVA_OPTS 这个值 也可以试试在应用程序中添加: sparkConf.setExecutorEnv("SPARK_JAVA_OPTS"," -verbose:gc -XX:+PrintGCDetails -XX:+PrintGCTimeStamps")
一头大菜鸟 2014-11-19
  • 打赏
  • 举报
回复
现在不用spark streaming改成用spark写的程序之后运行的时候就一直卡主了,但是也不会给om的提示。 14/11/19 10:41:03 INFO BlockManagerInfo: Registering block manager gd103:55890 with 1178.1 MB RAM 14/11/19 10:41:03 INFO BlockManagerInfo: Registering block manager gd106:54518 with 1178.1 MB RAM 能知道其中的代码是否在运行吗?还是系统运行的主要时间都放在内存回收的方面了? 怕每次实验都要等好久都不出结果。。
一头大菜鸟 2014-11-18
  • 打赏
  • 举报
回复
好的 麻烦了 我试试
  • 打赏
  • 举报
回复
可以试试Spark的Kryo序列化方式。也可以在spark-env.sh文件中的SPARK_JAVA_OPTS参数上添加 -verbose:gc -XX:+PrintGCDetails -XX:+PrintGCTimeStamps ,看下GC的详细信息。也可以试试调整下 spark.storage.memoryFraction这个参数。
一头大菜鸟 2014-11-18
  • 打赏
  • 举报
回复
SPARK_JAVA_OPTS="${JAVA_OPTS} -verbose:gc -Xloggc:~/data/gc.log -XX:+PrintGCDetails -XX:+PrintGCDateStamps" 请问在spark-env.sh中添加的内容是这样的吗? 我在worker节点的log中没有找到相应的GC内容/

1,270

社区成员

发帖
与我相关
我的任务
社区描述
Spark由Scala写成,是UC Berkeley AMP lab所开源的类Hadoop MapReduce的通用的并行计算框架,Spark基于MapReduce算法实现的分布式计算。
社区管理员
  • Spark
  • shiter
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧