码迷,mamicode.com
首页 > 其他好文 > 详细

spark的一些经验

时间:2017-08-03 00:53:49      阅读:221      评论:0      收藏:0      [点我收藏+]

标签:ase   executor   bug   批量   自己   使用   search   sea   arc   

1,如果写sql语句能实现的操作,最好就不要用dataframe了;spark会自己做优化,性能和稳定性都会比较高

2,中间过程存成parquet文件而不是HIVE表

3,能用reduceByKey就不要用groupByKey

4,在数据量很大或者存在倾斜的时候,可以考虑先repartition后在forEachPartition操作

5,将dataframe注册成临时表的代价很小

6,在spark内做一些output操作时,最好在forEachPartition内操作;比如每个partition内批量写Hbase或者elastic search

7,Hbase还是很脆弱的,批量写入时,尽量控制写入的速度

8,序列化可以使用json或者kyro;前者比较好理解,后者性能更好

9,批量读取HBase时,使用newAPIHadoopRdd比较高效

10,不要用流的思维写批处理程序

11,不要乱用cache,除非后续会多次重复使用

12,Hbase内rowkey最好不要设计成列不固定的形式

13,Hbase内rowkey设计成json的形式还是蛮好使的

14,一些中间的数据结构可以选择存在redis内,而不是存在Hbase内反复读写

15,多使用sparkUI进行分析,可能改几个配置,性能就上去了,Bug就解决了

16,写代码时,留一些基于用户的打印信息,方便后续测试;

17,测试的一些套路:用local模式在driver上看输出、在sparkUi上看executor的log或者自己做单机测试

 

spark的一些经验

标签:ase   executor   bug   批量   自己   使用   search   sea   arc   

原文地址:http://www.cnblogs.com/kernel521/p/7277223.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!