Обработайте Spark Streaming rdd и сохраните в один файл HDFS

Я использую Kafka Spark Streaming для потоковой передачи данных.

val lines = KafkaUtils.createDirectStream[Array[Byte], String, DefaultDecoder, StringDecoder](ssc, kafkaConf, Set(topic)).map(_._2)

Я использую этот DStream и обрабатываю RDD

val output = lines.foreachRDD(rdd => 
        rdd.foreachPartition { partition => 
            partition.foreach { file => runConfigParser(file)}
})

runConfigParser это метод JAVA, который анализирует файл и производит вывод, который я должен сохранить в HDFS. Таким образом, несколько узлов будут обрабатывать RDD и записывать вывод в один файл HDFS. Как я хочу загрузить этот тьфу в HIVE.

я должен вывести результатrunConfigParser и использоватьsc.parallze(output).saveAsTextFile(path) так, что все мои узлы будут записывать выходные данные RDD в один файл HDFS. Эффективен ли этот дизайн?

Я загружу этот единственный файл HDFS (который будет постоянно обновляться в виде потоковых данных) в HIVE и буду запрашивать его с помощью Impala.

Ответы на вопрос(2)

Ваш ответ на вопрос