2018年9月14日

摘要: 1 选择正确的transaction 遇到groupByKey().map(), 替换为reduceByKey() 2 控制shuffle的次数 3 调试并发 阅读全文
posted @ 2018-09-14 03:15 钻研spark 阅读(100) 评论(0) 推荐(0)
摘要: 1 使用Kryo自定义序列化:kryo的性能和压缩率都比java默认的序列化算法高10倍以上,如下为使用方法,如果声明RDD为A类或者B类,在shuffle中会提升运行速度 2 内存调优: executor上的内存会划分成两部分:数据存储和执行计算,执行计算的内存会抢占数据存储的内存. spark. 阅读全文
posted @ 2018-09-14 03:14 钻研spark 阅读(117) 评论(0) 推荐(0)
摘要: 1)jsp -l 列举jvm进程 2)jstat -gc id 250 20 查看jvm进程id的内存使用,列举20次每250ms列举一次 3)jinfo -flag CMSInitiatingOccupancyFraction id 4)jmap 5)jhat 6)jstack 阅读全文
posted @ 2018-09-14 03:00 钻研spark 阅读(92) 评论(0) 推荐(0)
摘要: 1 如何判断对象的生命周期已经结束 java中引用的类型: 1)强引用: String str = new String("abc"); 一个对象被强引用引用的时候,无论何时都不会被释放 2)弱引用 SoftReference<String> softRef=new SoftReference<St 阅读全文
posted @ 2018-09-14 02:59 钻研spark 阅读(108) 评论(0) 推荐(0)
摘要: Java 和 C++之间有一堵墙,墙里的人想出来,墙外的人想进去,这堵墙就是内存分配与垃圾回收(说实话,之前主要用c++,从来不想进去,在美国的一家小公司要用java,不进去也不行了) 1 内存区域的划分,java内存区域的划分远比c++要复杂的多, c++ 中也就分成: 栈 堆 代码区域 数据区域 阅读全文
posted @ 2018-09-14 02:57 钻研spark 阅读(128) 评论(0) 推荐(0)

导航