복붙노트

[HADOOP] hadoop BlockMissingException

HADOOP

hadoop BlockMissingException

아래 오류가 발생합니다.

Diagnostics: org.apache.hadoop.hdfs.BlockMissingException: Could not obtain block: BP-467931813-10.3.20.155-1514489559979:blk_1073741991_1167 file=/user/oozie/share/lib/lib_20171228193421/oozie/hadoop-auth-2.7.2-amzn-2.jar
Failing this attempt. Failing the application.

/ user / oozie / share / lib / 디렉토리에 대해 복제 요소 3을 설정했지만 이 경로 아래의 모든 jar은 3 개의 데이터 노드에서 사용 가능하지만 누락 된 jar는 거의 없습니다. 신체가 왜 이런 일이 일어나고 어떻게 예방할 수 있는지 제안 할 수 있습니까?

해결법

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

    1.hdfs에서 파일을 읽으려고 할 때 동일한 예외가 발생했습니다. 이 링크의 "데이터 노드에 연결할 때 클라이언트가 호스트 이름을 사용합니다"섹션의 해결책이 저에게 효과적이었습니다. https://hadoop.apache.org/docs/r2.7.2/hadoop-project-dist/hadoop-hdfs/HdfsMultihoming.html#Clients_use_Hostnames_when_connecting_to_DataNodes

    hdfs에서 파일을 읽으려고 할 때 동일한 예외가 발생했습니다. 이 링크의 "데이터 노드에 연결할 때 클라이언트가 호스트 이름을 사용합니다"섹션의 해결책이 저에게 효과적이었습니다. https://hadoop.apache.org/docs/r2.7.2/hadoop-project-dist/hadoop-hdfs/HdfsMultihoming.html#Clients_use_Hostnames_when_connecting_to_DataNodes

    이 XML 블록을 "hdfs-site.xml"에 추가하고 데이터 노드 및 네임 노드 서버를 다시 시작했습니다.

    <property>
        <name>dfs.client.use.datanode.hostname</name>
        <value>true</value>
        <description>Whether clients should use datanode hostnames when
          connecting to datanodes.
        </description>
    </property>
    
  2. from https://stackoverflow.com/questions/48107616/hadoop-blockmissingexception by cc-by-sa and MIT license