복붙노트

[HADOOP] Hiveserver2는 : 777 / 만들 변경 scratchdir 권한을 실패 : FileClient를 만들 수 없습니다

HADOOP

Hiveserver2는 : 777 / 만들 변경 scratchdir 권한을 실패 : FileClient를 만들 수 없습니다

나는 MapR 커뮤니티 에디션 하둡 클러스터 (M3)를 실행하고 있습니다.

불행하게도, /opt/mapr/hive/hive-0.13/logs/mapr/hive.log에서 로그 파일을 따라 HiveServer2 서비스가 충돌하고, 스크래치 디렉토리에 대한 사용 권한에 문제가있다 :

2015-02-24 21:21:08,187 WARN  [main]: server.HiveServer2 (HiveServer2.java:init(74)) - Failed to create/change scratchdir permissions to 777: Could not create FileClient java.io.IOException: Could not create FileClient

나는 하이브 -e를 사용하여 스크래치 디렉토리에 대한 설정 확인 '설정을;' | 그렙 처음 :

hive.exec.scratchdir=/user/mapr/tmp/hive/
hive.scratch.dir.permission=700

나는 /mapr/my.cluster.com/user/mapr/tmp가, hive.scratch.dir.permission 700로 설정하고 오류 메시지가이 파일 시스템에 따라, 그러나 777로 변경하고자 제안 통지 777 권한과는 mapr 사용자에 속한다.

mapr@hadoop01:/mapr/my.cluster.com/user/mapr/tmp$ ls -al
total 2
drwxr-xr-x  3 mapr mapr  1 Feb 22 10:39 .
drwxr-xr-x  5 mapr mapr  3 Feb 24 08:40 ..
drwxrwxrwx 56 mapr mapr 54 Feb 23 10:20 hive

파일 시스템 권한에 의해 판단, 나는 mapr 사용자가 오류 메시지를 이해하지 않도록이 폴더에 원하고 무엇이든 할 것으로 기대한다.

그래서 경우, 당신이 그것을 어떻게 해결 되었습니까 전에 사람이 본 것 알고 궁금 하군요?

최신 정보:

나는 소스 코드를 살펴 있었고, 경고 직전에 몇 가지 관련 의견주의 사항 :

// When impersonation is enabled, we need to have "777" permission on root scratchdir, because
// query specific scratch directories under root scratchdir are created by impersonated user and
// if permissions are not "777" the query fails with permission denied error.

나는 하이브-site.xml 파일에서 다음 속성을 설정 추가했습니다 :

<property>
  <name>hive.scratch.dir.permission</name>
  <value>777</value>
</property>

<property>
  <name>hive.exec.scratchdir</name>
  <value>/tmp/hive/</value>
</property>

... 그리고 777 권한으로 HDFS에서 / tmp를 / 하이브 / 폴더를 생성 :

mapr@hadoop01:~$ hadoop fs -ls -d /tmp/hive
drwxrwxrwx   - mapr mapr          0 2015-02-27 08:38 /tmp/hive

이 유망한 보였지만, 나는 아직도 hive.log에서 같은 경고를 받았습니다.

해결법

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

    1.777로 설정하려면 / tmp를 / 하이브 HDFS 디렉토리의 권한을 업데이트 :

    777로 설정하려면 / tmp를 / 하이브 HDFS 디렉토리의 권한을 업데이트 :

      hadoop fs -chmod 777 /tmp/hive
    

    당신이 그들을 삭제할 때 또는 / tmp를 / 하이브를 제거, 임시 파일은 어쨌든도 생성됩니다.

    hadoop fs -rm -r /tmp/hive;  
    rm -rf /tmp/hive
    
  2. from https://stackoverflow.com/questions/28753538/hiveserver2-failed-to-create-change-scratchdir-permissions-to-777-could-not-cr by cc-by-sa and MIT license