복붙노트

[HADOOP] Hive / Hadoop 간헐적 인 실패 : 대상을 대상으로 이동할 수 없습니다.

HADOOP

Hive / Hadoop 간헐적 인 실패 : 대상을 대상으로 이동할 수 없습니다.

Hive / Hadoop에 대한 SO 문서가 있습니다. "소스를 이동할 수 없습니다"오류가 발생했습니다. 많은 사람들이 허가 문제를 지적합니다.

그러나, 내 사이트에서 나는 동일한 오류를 보았지만 권한 문제와 관련이 없다고 확신합니다. 이것은 문제가 간헐적이기 때문에 발생합니다. 하루는 효과가 있었지만 다른 날은 실패했습니다.

그래서 나는 오류 메시지를 더 깊게 보았다. 그것은에서 이동하는 것에 대해 불평했다.

.../.hive-stating_hive.../-ext-10000/part-00000-${long-hash}

목적지 경로의 소스 경로

.../part-00000-${long-hash}

폴더. 이 관찰은 누군가와 벨을 울릴 것입니까?

이 오류는 매우 간단한 테스트 쿼리에 의해 트리거되었습니다. 행을 테스트 테이블에 삽입하기 만하면됩니다 (아래 참조)

에러 메시지

org.apache.hadoop.hive.ql.metadata.HiveException: 
Unable to move source 
hdfs://namenodeHA/apps/hive/warehouse/some_db.db/testTable1/.hive-staging_hive_2018-02-02_23-02-13_065_2316479064583526151-5/-ext-10000/part-00000-832944cf-7db4-403b-b02e-55b6e61b1af1-c000 
to destination 
hdfs://namenodeHA/apps/hive/warehouse/some_db.db/testTable1/part-00000-832944cf-7db4-403b-b02e-55b6e61b1af1-c000;

이 오류를 유발 한 쿼리 (단, 간헐적으로 만)

insert into testTable1
values (2);

해결법

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

    1.모든 도움에 감사드립니다. 나는 해결책을 찾았다. 나는 여기에 내 대답을 제공하고있다.

    모든 도움에 감사드립니다. 나는 해결책을 찾았다. 나는 여기에 내 대답을 제공하고있다.

    문제는 파일 시스템의 부적절한 종료로 인해 실패한 삽입 명령을 선행하는 "CTAS"테이블 생성 ... 작업과 관련이 있습니다. 주의 사항은 IOException이 발생한다는 것입니다. 실패한 HiveException : 원본 ...을 대상 작업으로 이동할 수 없음과 함께 파일 시스템 닫힘 메시지가 표시됩니다. (Spark Thrift Server의 로그 메시지가 내 응용 프로그램 로그가 아닙니다.)

    Caused by: java.io.IOException: Filesystem closed
      at org.apache.hadoop.hdfs.DFSClient.checkOpen(DFSClient.java:808)
      at org.apache.hadoop.hdfs.DFSClient.getEZForPath(DFSClient.java:3288)
      at org.apache.hadoop.hdfs.DistributedFileSystem.getEZForPath(DistributedFileSystem.java:2093)
      at org.apache.hadoop.hdfs.client.HdfsAdmin.getEncryptionZoneForPath(HdfsAdmin.java:289)
      at org.apache.hadoop.hive.shims.Hadoop23Shims$HdfsEncryptionShim.isPathEncrypted(Hadoop23Shims.java:1221)
      at org.apache.hadoop.hive.ql.metadata.Hive.moveFile(Hive.java:2607)
    

    솔루션은 실제로 다른 SO 문서에서 왔습니다. https://stackoverflow.com/a/47067350/1168041

    하지만 여기에서는 기사가 없어지는 경우 발췌문을 제공합니다.

    나는 beeline을 사용하지 않았지만 CTAS의 문제는 같았습니다.

    내 테스트 순서 :

    insert into testTable1
    values (11)
    
    create table anotherTable as select 1
    
    insert into testTable1
    values (12)
    

    수정하기 전에 테이블을 만든 후 삽입이 실패했습니다.  수정 후,이 문제는 사라졌습니다.

  2. from https://stackoverflow.com/questions/48592337/hive-hadoop-intermittent-failure-unable-to-move-source-to-destination by cc-by-sa and MIT license