Spark запрашивает 100 миллиардов строк данных изasticsearch очень медленно - PullRequest
0 голосов
/ 25 июня 2018

Недавно я использовал spark 2.2 для запроса огромного кластера эластичного поиска с 3 узлами и 1000 миллиардами строк данных. И я использовал org.elasticsearch :asticsearch-spark-20_2.11: 5.5.0 для интеграции spark-es.

Однако результирующий набор слишком велик (содержит 100 миллиардов строк данных), и для завершения задания «спарк» потребуется 2 часа.

Я подтвердил, что все поля являются простыми строковыми типами, и моя программа верна (без установки некоторых параметров оптимизации), и spark сделал pushDown, чтобы помочь минимизировать вывод, но все же он слишком велик. Ниже приведены мои настройки при использовании spark, какие-либо предложения по оптимизации?

es.scroll.size="10000"
pushdown="true" 
es.scroll.keepalive="10m"

My spark sql code:

val conf = new SparkConf()
    .setAppName("Simple Example")
    .set("es.resource", "myIndex/info")
    .set("es.read.field","field1, field2, field3")
    .set("es.scroll.size","10000")
    .set("es.scroll.keepalive","10m")
    .set("es.nodes","192.168.12.12")
    .set("es.port","9200")
    .set("pushdown","true");
val sc = new SparkContext(conf);
val df = sc.sql("select * from myIndex where name = 'exampleName'")

И я проверяю интерфейс искры, временная шкала подразумевает, что Executor compute time слишком длинный.

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...