spark程序运行缓慢
原因一:在map ,reducebykey ,transform 等算子里进行耗时操作
耗时操作包括: 读取配置文件,打印,读取数据库的数据 对象
boolean local =ConfigurationManager.getBoolean(Constants.SPARK_LOCAL);
总结:在spark的算子中,只能执行对数据的处理逻辑,其间不要加载其他配置文件(读取配置文件),调用jvm的系统api(打印)等等
原因二:在算子中执行mysql 的select 操作 ,查询的数据库,没有索引(key)
当表的数据为100万的时候,没有索引的查询大概需要1秒钟,有索引的查询只需要0.001秒, 1000倍! 所以需要查询的表,一定要建立索引