首页 > 代码库 > spark的一些经验
spark的一些经验
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的一些经验
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。