EMR 하이브 처리결과가 파일로 저장될 때 파일명은
EMR에서 임의의 값으로 설정해 준다.
hdfs://location/175508f3-1524-46ee-88c2-24722c5d5749-000XXX
이로 인하여 같은 파티션에 파일이 저장되면 어떤 잡이 해당 파일을 썻는지 알 수가 없다.
이럴때는 하이브 잡로그를 확인하여 결과를 확인해야 한다.
하이브 테이블 로케이션을 s3로 잡은 경우 파일은 최종적으로
'com.amazon.ws.emr.hadoop.fs.s3n.Jets3tNativeFileSystemStore'
클래스를 이용하여 파일이 쓰여진다.
또한 'org.apache.hadoop.hive.ql.exec.FileSinkOperator' 클래스도 파일 쓰기에 관여하기 때문에
이 클래스의 정보를 grep 으로 찾아보아도 된다.
따라서 로그에서 이 클래스관련 정보를 grep 해서 찾아보면 파일의 최종위치를 알 수 있다.
<로그 확인>
yarn logs -applicationId application_XXXX_xxxx | grep com.amazon.ws.emr.hadoop.fs.s3n.Jets3tNativeFileSystemStore
반응형
'빅데이터 > hive' 카테고리의 다른 글
[hive] 하이브 테이블의 null 값 표현 (0) | 2016.10.24 |
---|---|
[hive][error] MetaException(message:Metastore contains multiple versions) 처리 (0) | 2016.10.07 |
[hive] 하이브의 가상 컬럼(virtual column)을 이용하여 파일 내용 삭제 (0) | 2016.09.30 |
[하이브] 매니지드 테이블과 익스터널 테이블 변경하기 (0) | 2016.09.23 |
[hive] skewed 테이블 (0) | 2016.09.12 |