Мы используем функциональные возможности SQL-сервера Spark SQL для совместной работы и анализа некоторых локальных файлов данных перед их загрузкой в другом месте. Хотя мы довольны функциональностью, мы хотели бы настроить конфигурацию, чтобы выжать дополнительную производительность.Оптимальные конфигурации Spark SQL для процесса с одним узлом?
У нас нет кластера, но у вас, вероятно, будет 5 отдельных узлов, все потоковые файлы из S3, разгладя их (они не полагаются на какие-либо другие внешние файлы) отдельно и загружают их. К сожалению, мы используем Java api.
Это конфигурации, с которыми я экспериментирую, и любая помощь была бы потрясающей.
(Every RDD is being cached)
spark.sql.inMemoryColumnarStorage.compressed true
spark.sql.inMemoryColumnarStorage.batchSize 20000(doubled)
spark.sql.autoBroadcastJoinThreshold 10485760
spark.sql.shuffle.partitions 10(since its a local process, reducing from 200)
Спасибо! Это действительно ускорило мой процесс примерно на 30-50%. Есть ли ресурс, который углубляется в то, что делает обрезка? Еще раз спасибо! – JeffLL
Не уверен в ресурсе, но вы можете проверить исходный код Искры, конкретно следуя классу и другим вращающимся классам: - https://github.com/apache/spark/blob/branch-1.2/sql/core/src/main/scala/ орг/Apache/искровой/SQL/столбчатый/InMemoryColumnarTableScan.scala # L297 – DexterMorgan