你好我刚刚创建了我的第一个spark应用程序,现在我可以访问一个集群(12个节点,每个节点有2个处理器Intel(R)Xeon(R)CPU E5-2650 2.00GHz,每个处理器有8个核心),我想知道什么是帮助我调整应用程序并观察其性能的标准。
我已经访问过spark的官方网站,它正在谈论数据序列化,但我无法确切地知道它是什么或如何指定它。
它也在谈论"内存管理","并行水平"但我不明白如何控制这些。
还有一件事,我知道数据的大小有效,但是我的所有files.csv都有小尺寸,我怎样才能获得大尺寸的文件(10 GB,20 GB,30 GB,50 GB ,100 GB,300 GB,500 GB)
请尝试为我解释一下,因为群集计算对我来说很新鲜。
答案 0 :(得分:1)
要调整应用程序,您需要了解一些事情
1)您需要监控您的应用程序,无论您的群集是否未被利用,或者您创建的应用程序使用了多少资源
可以使用各种工具进行监控,例如。神经节 从Ganglia你可以找到 CPU,内存和网络使用。
2)基于对CPU和内存使用情况的观察,您可以更好地了解应用程序需要何种调整
形成你的Spark点
在spark-defaults.conf
中您可以指定应用程序所需的驱动程序内存和执行程序内存的类型序列,即使您可以更改垃圾收集算法。
以下是一些示例,您可以根据需要调整此参数
spark.serializer org.apache.spark.serializer.KryoSerializer
spark.driver.memory 5g
spark.executor.memory 3g
spark.executor.extraJavaOptions -XX:MaxPermSize=2G -XX:+UseG1GC
spark.driver.extraJavaOptions -XX:MaxPermSize=6G -XX:+UseG1GC
有关详细信息,请参阅http://spark.apache.org/docs/latest/tuning.html
希望这有助于!!