2016-09-12 12 views
0

나는 the guide 단계별로 따라 왔습니다.보초가있는 구성 하이브 : NullPointerException privilegeObj가 null 인 경우

0: jdbc:hive2://localhost:10000/> GRANT ALL ON SERVER server1 TO ROLE admin_role; 
Error: Error while compiling statement: FAILED: NullPointerException privilegeObj is null for 
TOK_GRANT 
    TOK_PRIVILEGE_LIST 
     TOK_PRIVILEGE 
     TOK_PRIV_ALL 
    TOK_PRINCIPAL_NAME 
     TOK_ROLE 
     admin_role 
    TOK_PRIV_OBJECT 
     TOK_SERVER_TYPE 
     server1 (state=42000,code=40000) 

, 역할은 괜찮 만들고, 내가 역할 볼 수 있습니다 내가 하이브로 직선에 로그인 해요 암호가 올바른지 :

0: jdbc:hive2://localhost:10000/> show roles; 
+-------------+--+ 
| role  | 
+-------------+--+ 
| test  | 
| admin_role | 
+-------------+--+ 
을 내가 역할에 권한을 부여하려고 때 오류가 발생했습니다

하지만 난 얻을 수없는 현재의 역할 :

0: jdbc:hive2://localhost:10000/> show current roles; 
+-------+--+ 
| role | 
+-------+--+ 
+-------+--+ 

답변

0

그 이유를 찾을 수 당신은 그룹 하이브에 부여 된 역할을 확인할 수 있습니다 보초와 하이브의 -exec.jar는 frem이되었습니다. 다른 버전들. 두 개의 jar에있는 TOK_PRIV_OBJECT과 같은 상수는 다른 값을가집니다.

정말 까다 롭습니다!

0

이 쿼리에 할당 된 모든 역할을 나열하는 사용자 그룹 로그인 :

,
SHOW CURRENT ROLES; 

사용자 하이브는 그룹 하이브 (hdfs 권한 의미의 그룹)에 속해 있습니다. 당신이 admin_role이 표시되지 않는 경우

SHOW ROLE GRANT GROUP hive; 

, 당신이 문을 부여 할 수 있습니다 :

하이브 :

GRANT ROLE admin_role TO GROUP hive;