복붙노트

[HADOOP] 모든 쿼리의 하이브 오류 : 작업 핸들과 관련된 로그를 찾을 수 없습니다.

HADOOP

모든 쿼리의 하이브 오류 : 작업 핸들과 관련된 로그를 찾을 수 없습니다.

Hadoop에서 실행중인 모든 하이브 쿼리에 오류 발생.

존재하는 테이블에서 select 문을 실행하고 다음 결과를 얻습니다.

Fetching results ran into the following error(s):

Couldn't find log associated with operation handle: 
OperationHandle[opType=EXECUTE_STATEMENT,
getHandleIdentifier()=263df9c3-c076-454f-a025-23f5b919e957]

그리고 해당 쿼리에 대한 로그는 다음과 같습니다.

해결법

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

    1.이 오류는 즉 ( "hive.server2.logging.operation.log.location") 로그를 작성하지 않는 위치를 가리키는 경우에 발생할 수 있습니다.

    이 오류는 즉 ( "hive.server2.logging.operation.log.location") 로그를 작성하지 않는 위치를 가리키는 경우에 발생할 수 있습니다.

    OperationManager.java의 코드를 보라.

    OperationLog operationLog = getOperation(opHandle).getOperationLog();
    if (operationLog == null) {
      throw new HiveSQLException("Couldn't find log associated with operation handle: " + opHandle);
    }
    
  2. ==============================

    2.색조를 사용할 때 Cloudera 배포판에서이를 볼 수 있다면 Cloudera Manager의 hive-site.xml에 대한 하이브 서비스 고급 구성 미리보기 (안전 밸브)에 다음을 추가하십시오 (또는 hive-site.xml을 다른 배포판) :

    색조를 사용할 때 Cloudera 배포판에서이를 볼 수 있다면 Cloudera Manager의 hive-site.xml에 대한 하이브 서비스 고급 구성 미리보기 (안전 밸브)에 다음을 추가하십시오 (또는 hive-site.xml을 다른 배포판) :

    <property>
        <name>hive.server2.logging.operation.enabled</name>
        <value>true</value>
    </property>
    
  3. ==============================

    3.AWS EMR을 사용하는 경우 hive-site.xml 파일 (/etc/hive/conf.dist/hive-site.xml)에 다음을 추가하십시오.

    AWS EMR을 사용하는 경우 hive-site.xml 파일 (/etc/hive/conf.dist/hive-site.xml)에 다음을 추가하십시오.

    <property>
        <name>hive.server2.logging.operation.enabled</name>
        <value>true</value>
    </property>
    

    그런 다음 마스터 노드에 로그인하고 색조 및 하이브 서버를 다시 시작하십시오.

    sudo stop hive-server2
    sudo stop hue
    sudo start hue
    sudo start hive-server2
    

    이것은 나를 위해 고쳤습니다 (릴리스 레이블 emr-4.6.0에서 테스트 됨).

  4. ==============================

    4.쉘 스크립트 또는 자바 프로그램으로 인해이 문제가 발생하는 경우 연결 문자열을 먼저 확인해야합니다. 몇 달 전에 비슷한 문제가 생겼습니다. 스크립트에서 이러한 방식으로 쿼리를 실행했을 때 :

    쉘 스크립트 또는 자바 프로그램으로 인해이 문제가 발생하는 경우 연결 문자열을 먼저 확인해야합니다. 몇 달 전에 비슷한 문제가 생겼습니다. 스크립트에서 이러한 방식으로 쿼리를 실행했을 때 :

    beeline -u  jdbc:hive2:// -e "show databases;"
    

    이것은 연결 문자열을 수정하고 쿼리를 실행하면 적절한 하이브 연결 문자열이 누락되어서 발생했지만 아무런 문제없이 실행되었습니다.

    beeline -u  jdbc:hive2://server.enterprise.org:10000/default -e "show databases;"
    

    이 답변은 Hue / Cloudera 배포판의 스크립트 나 코드를 사용하는 개발자에게만 해당되며 친절하게도 위의 답변을 참조하십시오.

    건배!

  5. ==============================

    5.Windows 8.1에서는 하이브 쿼리 파트 내부에서도 같은 문제가 발생했습니다.

    Windows 8.1에서는 하이브 쿼리 파트 내부에서도 같은 문제가 발생했습니다.

    org.apache.hive.service.cli.HiveSQLException: Couldn't find log associated with operation handle: OperationHandle [opType=EXECUTE_STATEMENT, getHandleIdentifier()=230485c4-a1be-4a17-94c8-a1ebce426319]
    

    따라서 % HIVE_HOME % / conf / hive-site.xml에 가서 hive.server2.logging.operation.log.location 속성 이름을 이전 값 $ {system : user.name} / operation_logs로 변경했습니다.

      <property>
        <name>hive.server2.logging.operation.log.location</name>
        <value>/tmp/${user.name}/operation_logs</value>
        <description>Top level directory where operation logs are stored if logging functionality is enabled</description>
      </property>
    

    또한 $ {system : user.name}을 포함하는 모든 값을 /tmp/${user.name}에 바꿔 놓았습니다. 그러면 하이브의 작업 로깅 문제로 인해 나를 데려옵니다.

  6. ==============================

    6.Azure에서는 다음을 사용할 수 있습니다.

    Azure에서는 다음을 사용할 수 있습니다.

        beeline -u 'jdbc:hive2://headnodehost:10001/;transportMode=http'
    
  7. from https://stackoverflow.com/questions/32090918/hive-error-on-all-queries-couldnt-find-log-associated-with-operation-handle by cc-by-sa and MIT license