DSE Spark Streaming: длинная очередь активных пакетов - PullRequest
0 голосов
/ 24 апреля 2018

У меня есть следующий код:

val conf = new SparkConf()
  .setAppName("KafkaReceiver")
  .set("spark.cassandra.connection.host", "192.168.0.78")
  .set("spark.cassandra.connection.keep_alive_ms", "20000")
  .set("spark.executor.memory", "2g")
  .set("spark.driver.memory", "4g")
  .set("spark.submit.deployMode", "cluster")
  .set("spark.executor.instances", "3")
  .set("spark.executor.cores", "3")
  .set("spark.shuffle.service.enabled", "false")
  .set("spark.dynamicAllocation.enabled", "false")
  .set("spark.io.compression.codec", "snappy")
  .set("spark.rdd.compress", "true")
  .set("spark.streaming.backpressure.enabled", "true")
  .set("spark.streaming.backpressure.initialRate", "200")
  .set("spark.streaming.receiver.maxRate", "500")

val sc = SparkContext.getOrCreate(conf)
val ssc = new StreamingContext(sc, Seconds(10))
val sqlContext = new SQLContext(sc)
val kafkaParams = Map[String, String](
  "bootstrap.servers" -> "192.168.0.113:9092",
  "group.id" -> "test-group-aditya",
  "auto.offset.reset" -> "largest")

val topics = Set("random")
val kafkaStream = KafkaUtils.createDirectStream[String, String, StringDecoder, StringDecoder](ssc, kafkaParams, topics)

Я запускаю код через spark-submit с помощью следующей команды:

dse> bin/dse spark-submit --class test.kafkatesting /home/aditya/test.jar

У меня есть трехузловой кластер Cassandra DSE, установленный на разных компьютерах. Всякий раз, когда я запускаю приложение, оно берет столько данных и начинает создавать очередь активных пакетов, что, в свою очередь, создает отставание и длительную задержку планирования. Как я могу увеличить производительность и управлять очередью так, чтобы она получала новый пакет только после того, как завершит выполнение текущего пакета?

1 Ответ

0 голосов
/ 08 июня 2018

Я нашел решение, провел некоторую оптимизацию в коде.Вместо сохранения RDD попробуйте создать Dataframe, сохраняя DF на Cassandra намного быстрее по сравнению с RDD.Кроме того, увеличьте количество памяти ядра и исполнителя для достижения хороших результатов.

Спасибо,

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