The best practice of optimizing Spark job performance by deep dive into clusters, job, data etc