2017-09-13 1 views
1

저는 지난 몇 주 동안이 문제를 조사해 왔으며 확실한 답을 찾지 못했습니다.hadoop2의 outputCommitterClass 속성을 설정하십시오.

여기 내 문제 : hadoop1x를 들어

(mapred LIB)에, 우리는 사용하여 사용자 정의 출력 커미터을 사용할 수

spark.conf.set(
    "spark.hadoop.mapred.output.committer.class", 
    "some committer" 
) 

하거나를 JobConf.setOutputCommitter를 호출.

그러나 hadoop2x (mapreduce lib에 있음)의 경우 커미터가 OutputFormat.getOutputCommitter에서 가져 오지만, setOutputCommitter에 대한 명확한 대답은 없습니다.

이 속성 (spark.hadoop.spark.sql.sources.outputCommitterClass)을 사용하여 databricks에서 출력 커미터를 설정했습니다.

나는 넷플릭스의 S3 커미터 (com.netflix.bdp.s3.S3DirectoryOutputCommitter)와 그것을 시도하지만, 로그, 스파크는 여전히 기본 커미터 사용

17/09/13 22:39:36 INFO FileOutputCommitter: File Output Committer Algorithm version is 2 
17/09/13 22:39:36 INFO DirectFileOutputCommitter: Nothing to clean up since no temporary files were written. 
17/09/13 22:39:36 INFO CSEMultipartUploadOutputStream: close closed:false s3://xxxx/testtable3/.hive-staging_hive_2017-09-13_22-39-34_140_3769635956945982238-1/-ext-10000/_SUCCESS 

는 기본적에게 FileOutputCommitter을 덮어 쓰기에 내 사용자 커미터를 사용할 수 있는지 궁금 해요을 mapreduce lib?

어떻게해야합니까?

답변

1

쉽지 않음; 그것은 MAPREDUCE-6823을 고치려고 노력하고 있는데, 파일 시스템 스키마 당 커미터를 설정할 수 있습니다. (Hadoop 3.1?)

경로를 확인하더라도 sql 출력 커미터 설정을 해제 할 수 있어야합니다. 아마도 SQL/데이터 프레임 작업에만 사용됩니다. Parquet을 별도로 설정할 수도 있습니다. 단, 선언 한 커미터는 ParquetOutputCommitter의 서브 클래스 여야합니다. 넷플 릭스는 그렇지 않습니다.

+0

커미터 검색 논리를 별도로 사용하기 때문에 마루판 형식을 사용할 수 있지만 비주유 형식으로 SQL 출력 커미터를 설정할 수는 없습니다. – baryonX

관련 문제