[HADOOP] Hive HDFS의 각 삽입에 대한 다중 작은 파일 만들기
HADOOPHive HDFS의 각 삽입에 대한 다중 작은 파일 만들기
다음은 이미 달성되었다.
이것은 지금까지 잘 작동하는 동안. 내 응용 프로그램은 하이브 테이블에 데이터를 삽입하는 동안, 그것은 하나의 파일 당 각 행 데이터가있는 작은 파일을 만들면서 직면 한 유일한 문제가 있습니다.
아래 코드는
// 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)")
하이브 데모 테이블이 이미 하나의 레코드로 채워져 있습니다.
해결법
-
==============================
1.[take 2] OK, 당신은 Hive에 데이터를 적절하게 "스트리밍"할 수 없습니다. 하지만 정기 압축 후 처리 작업을 추가 할 수 있습니다 ...
[take 2] OK, 당신은 Hive에 데이터를 적절하게 "스트리밍"할 수 없습니다. 하지만 정기 압축 후 처리 작업을 추가 할 수 있습니다 ...
마지막 문장 : 하이브가 각 압축 작업에 너무 많은 파일을 생성하는 경우 세션의 일부 매개 변수를 INSERT 직전에 조정 해보십시오.
set hive.merge.mapfiles =true; set hive.merge.mapredfiles =true; set hive.merge.smallfiles.avgsize=1024000000;
-
==============================
2.Hive는 트랜잭션이 아닌 대규모 일괄 처리를 위해 설계되었습니다. 그래서 각 LOAD 또는 INSERT-SELECT 명령에 대해 적어도 하나의 데이터 파일을 가지고 있습니다. 또한 INSERT-VALUES 명령이없는 이유이기도합니다. 따라서 필요한 해결 방법으로 게시물에 불완전한 구문이 표시됩니다.
Hive는 트랜잭션이 아닌 대규모 일괄 처리를 위해 설계되었습니다. 그래서 각 LOAD 또는 INSERT-SELECT 명령에 대해 적어도 하나의 데이터 파일을 가지고 있습니다. 또한 INSERT-VALUES 명령이없는 이유이기도합니다. 따라서 필요한 해결 방법으로 게시물에 불완전한 구문이 표시됩니다.
음 ... 거래 지원이 도입 될 때까지는 사실이었습니다. 간단히 말해서 (a) Hive V0.14 이상 (b) 해당 테이블에서 활성화 된 ORC 테이블 (c) 트랜잭션 지원 (즉, 잠금, 주기적 배경 압축 등)
하이브에서 스트리밍 데이터 수집에 대한 위키가 좋은 시작일 수 있습니다.
-
==============================
3.이 옵션들을 함께 사용할 수 있습니다.
이 옵션들을 함께 사용할 수 있습니다.
from https://stackoverflow.com/questions/32096347/hive-create-multi-small-files-for-each-insert-in-hdfs by cc-by-sa and MIT license
'HADOOP' 카테고리의 다른 글
[HADOOP] HBase REST 필터 (SingleColumnValueFilter) (0) | 2019.06.14 |
---|---|
[HADOOP] 하나의 블록에 여러 개의 파일이 저장되어 있습니까? (0) | 2019.06.14 |
[HADOOP] HDFS에서 로컬 머신으로 파일 복사하기 (0) | 2019.06.14 |
[HADOOP] hadoop의 시퀀스 파일은 무엇입니까? (0) | 2019.06.14 |
[HADOOP] 기록중인 파일에 액세스 중 (0) | 2019.06.14 |