Hive Crie vários arquivos pequenos para cada inserção no HDFS
o seguinte já foi alcançado
Produtor Kafka que extrai dados do twitter usando o Spark Streaming.Consumidor Kafka que ingere dados na tabela Hive External (no HDFS).enquanto isso está funcionando bem até agora. há apenas um problema que estou enfrentando, enquanto meu aplicativo insere dados na tabela Hive, ele criou um pequeno arquivo com cada linha de dados por arquivo.
abaixo está o código
// 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)")
Colmeia tabela de demonstração já preenchida com um único registro. Kafka loop do consumidor através dos dados para topic = "topic_twitter" no processo de cada linha e preenchido na tabela Hive
val hiveSql = "INSERT INTO TABLE twitter_data SELECT STACK( 1," +
tweetID +"," +
tweetText +"," +
userName +"," +
tweetTimeStamp +"," +
userLang + ") FROM demo limit 1"
hiveContext.sql(hiveSql)
abaixo estão as imagens do meu ambiente Hadoop.twitter_data, demo
últimos 10 arquivos criados no HDFS
Como você pode ver, o tamanho do arquivo não é superior a 200 KB, existe uma maneira de mesclar esses arquivos em um arquivo?