복붙노트

[HADOOP] 하이브 맵리 듀스 작업 분할 된 파일

HADOOP

하이브 맵리 듀스 작업 분할 된 파일

나는 사용자 정의 파일 입력 형식을 읽는 하이브 외부 테이블을 만들었습니다. 파일이 작은 경우에 완벽하게 잘 작동한다. 파일이 큰 경우 그러나 작업은 파일을 분할하고 내 작업이 실패합니다.

나는 IsSplittable 방법에 대한 내 사용자 정의 입력 형식 클래스에서 false를 반환하고 있습니다. 나는 또한 큰 값으로 mapreduce.input.fileinputformat.split.minsize 및 mapred.min.split.size 설정을 시도했습니다. 나는 사용자 정의 InputFormat, OutputFormat과 SerDe 클래스를 생성하고이 테이블을 만드는 동안을 사용했다.

내 작업 로그에서 나는 여전히 일어나는 분할을보고 있어요.

Processing split: Paths:/user/test/testfile1:0+134217728,/user/test/testfile1:134217728+95198924,/user/test/testfile2:0+134217728,/user/test/testfile2:134217728+96092244...

134,217,728 내 HDFS 블록 크기해야 1백28메가바이트입니다. 나는 이런 일이 발생 분할을 방지 할 수있는 방법이 있나요? 그것은이 문제 https://issues.apache.org/jira/browse/HIVE-8630 관련되어 있습니까?

테이블 문 만들기 내 것은 :

CREATE EXTERNAL TABLE test_data(
  key STRING, 
  body map<string, string>  
  )
PARTITIONED BY (year int, month int, day int)  
ROW FORMAT SERDE 'com.hiveio.io.CustomHiveSerde' 
STORED AS INPUTFORMAT 'com.hiveio.io.CustomHiveInputFormat' 
OUTPUTFORMAT 'com.hiveio.io.CustomHiveOutputFormat' 
LOCATION '/user/test/';

해결법

  1. ==============================

    1.Ok..actually, 당신이 언급 https://issues.apache.org/jira/browse/HIVE-8630는 종을 울렸다. 얼마 전에 우리는 매우 비슷한 문제 처리. 버그 CombineHiveInputFormat 여전히 unsplittable 형식을 분할하는 방법을 언급하고있다. CombineHiveInputFormat 기본 HiveInputFormat이고 그것의 목적은 오버 헤드를 줄이기 위해 여러 개의 작은 파일을 결합이다. 당신은 설정을 해제 할 수 있습니다

    Ok..actually, 당신이 언급 https://issues.apache.org/jira/browse/HIVE-8630는 종을 울렸다. 얼마 전에 우리는 매우 비슷한 문제 처리. 버그 CombineHiveInputFormat 여전히 unsplittable 형식을 분할하는 방법을 언급하고있다. CombineHiveInputFormat 기본 HiveInputFormat이고 그것의 목적은 오버 헤드를 줄이기 위해 여러 개의 작은 파일을 결합이다. 당신은 설정을 해제 할 수 있습니다

    set hive.input.format=org.apache.hadoop.hive.ql.io.HiveInputFormat
    

    기본적으로 그것을 원하는 경우에 쿼리하기 전에, 또는 하이브-site.xml 파일에서 XML로 설정합니다 :

    <property>
       <name>hive.input.format</name>
       <value>org.apache.hadoop.hive.ql.io.HiveInputFormat</value>
    </property>
    

    당신이 많은 작은 파일이있는 경우 처리 할 때, 그들은 하나 하나가 매퍼 할게요 있도록의 결합 부분의 기능을 희생됩니다합니다 ....하지만이 작동합니다, 그것은 우리를 위해 일했다.

  2. from https://stackoverflow.com/questions/34296525/hive-mapreduce-job-splitting-up-files by cc-by-sa and MIT license