Hive Erstellen Multi-kleine Dateien, die für die einzelnen insert-HDFS

folgenden ist bereits erreicht

  1. Kafka Producer-Daten von twitter mit Spark Streaming.
  2. Kafka Verbraucher Einlesen von Daten in Externen Hive-Tabelle(HDFS).

während dies gut funktioniert, so weit.
es gibt nur ein Problem ich bin vor, während meine app einfügen von Daten in Hive-Tabelle, erstellt er kleine Datei, in der jede Zeile die Daten pro Datei.

unten ist der code

//Define which topics to read from
  val topic = "topic_twitter"
  val groupId = "group-1"
  val consumer = KafkaConsumer(topic, groupId, "localhost:2181")

//Create SparkContext
  val sparkContext = new SparkContext("local[2]", "KafkaConsumer")

//Create HiveContext  
  val hiveContext = new org.apache.spark.sql.hive.HiveContext(sparkContext)

  hiveContext.sql("CREATE EXTERNAL TABLE IF NOT EXISTS twitter_data (tweetId BIGINT, tweetText STRING, userName STRING, tweetTimeStamp STRING,   userLang STRING)")
  hiveContext.sql("CREATE EXTERNAL TABLE IF NOT EXISTS demo (foo STRING)")

Hive demo-Tabelle bereits gefüllt mit einem einzelnen Datensatz.
Kafka Verbraucher loop-thru werden die Daten für Thema ="topic_twitter" in process jeder Zeile und füllen Sie in der Hive-Tabelle

val hiveSql = "INSERT INTO TABLE twitter_data SELECT STACK( 1," + 
    tweetID        +","  + 
    tweetText      +"," + 
    userName       +"," +
    tweetTimeStamp +","  +
    userLang + ") FROM demo limit 1"

hiveContext.sql(hiveSql)

unten sind die Bilder von meinem Hadoop-Umgebung. twitter_data, demo
Hive Erstellen Multi-kleine Dateien, die für die einzelnen insert-HDFS

letzten 10 erstellten Dateien in HDFS
Hive Erstellen Multi-kleine Dateien, die für die einzelnen insert-HDFS

wie Sie sehen können ist die Dateigröße nicht mehr als 200KB, gibt es eine Möglichkeit, die ich Zusammenführen dieser Dateien in einer Datei?

Schreibe einen Kommentar