Разница между запущенным искровым приложением в качестве автономного и искрового запуска / искровой пусковой установки? - PullRequest
0 голосов
/ 18 февраля 2019

Я изучаю различные варианты упаковки приложения Spark, и меня смущает, какой режим является лучшим и в чем различия между следующими режимами?

  1. Отправка банку приложения Spark в spark-submit
  2. Создайте толстую банку из проекта spark gradle и запустите банку как отдельное java-приложение.

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

Не могли бы вы сообщить нам ваши входные данные

Можно ли программно настроить спарк-кластер, включая драйвер и исполнителей?

val conf = new SparkConf()
conf.setMaster("local")
conf.set("deploy-mode", "client")
conf.set("spark.executor.instances", "2")
conf.set("spark.driver.bindAddress", "127.0.0.1")
conf.setAppName("local-spark-kafka-consumer")
val sparkSession = SparkSession
  .builder()
  .master("local[*]")
  .config(conf)
  .appName("Spark SQL data sources example")
  .getOrCreate()

val sc = sparkSession.sparkContext

val ssc = new StreamingContext(sparkSession.sparkContext, Seconds(5))
val kafkaParams = Map[String, Object](
    "bootstrap.servers" -> "localhost:9092,localhost:9093",
    "key.deserializer" -> classOf[LongDeserializer],
    "value.deserializer" -> classOf[StringDeserializer],
    "group.id" -> "consumerGroup10",
    "auto.offset.reset" -> "earliest",
    "max.poll.records" -> "1",
    "enable.auto.commit" -> (false: java.lang.Boolean))

val topics = Array("topic1")
val stream = KafkaUtils.createDirectStream[String, String](...)
ssc.start()
ssc.awaitTermination()
} catch {
  case e: Exception => println(e)
}
...