Hadoop이 설치된Google Cloud에서 하이브를 실행하려고합니다. 하이브는 잘 취임시키다 것 같다,하지만 난 hive
을 실행할 때 나는 다음과 같은 잘못된 출력을 얻을 :Google Cloud의 Hive는/tmp에 대한 권한을 원하지만 권한을 변경할 방법이 없습니다.
Logging initialized using configuration in jar:file:/home/michael_w_sherman_gmail_com/apache-hive-0.14.0-bin/l
ib/hive-common-0.14.0.jar!/hive-log4j.properties
SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/home/hadoop/hadoop-install/share/hadoop/common/lib/slf4j-log4j12-1.7.5.jar!
/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/home/michael_w_sherman_gmail_com/apache-hive-0.14.0-bin/lib/hive-jdbc-0.14.
0-standalone.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
SLF4J: Actual binding is of type [org.slf4j.impl.Log4jLoggerFactory]
Exception in thread "main" java.lang.RuntimeException: java.lang.RuntimeException: The root scratch dir: /tmp/
hive on HDFS should be writable. Current permissions are: rwx------
at org.apache.hadoop.hive.ql.session.SessionState.start(SessionState.java:444)
at org.apache.hadoop.hive.cli.CliDriver.run(CliDriver.java:672)
at org.apache.hadoop.hive.cli.CliDriver.main(CliDriver.java:616)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at org.apache.hadoop.util.RunJar.main(RunJar.java:212)
Caused by: java.lang.RuntimeException: The root scratch dir: /tmp/hive on HDFS should be writable. Current per
missions are: rwx------
at org.apache.hadoop.hive.ql.session.SessionState.createRootHDFSDir(SessionState.java:529)
at org.apache.hadoop.hive.ql.session.SessionState.createSessionDirs(SessionState.java:478)
at org.apache.hadoop.hive.ql.session.SessionState.start(SessionState.java:430)
... 7 more
나의 첫번째 수정 hdfs-site.xml
을 확인하고 dfs.permissions.enabled
설정을 변경했지만, 그것은 이미 false
로 설정했다. 다음으로, 나는 chmod
권한을 시도했다. 그러나 chmod 변경 사항을 가져 가지 않습니다.
$의 하둡 FS는
15/01/28 23시 3분 13초 정보 gcs.GoogleHadoopFileSystemBase
을 -ls : 버전 GHFS : 1.2.9-hadoop2찾을 수 8 개 항목을 을 ....
¹ 록 drwx은 ------ - xxxx_gmail_com xxxx_gmail_com 0 2015년 1월 28일 21시 54분 tmp를
$의 하둡 FS는 -R 777/tmp를
을 -chmod15/01/28 23시 3분 31초 정보 gcs.GoogleHadoopFileSystemBase는 :
$의 하둡 FS가 15/01/28 23시 9분 35초 정보 gcs.GoogleHadoopFileSystemBase을 -ls 1.2.9-hadoop2 : 버전 GHFS : GHFS 버전 : 1.2.9-hadoop2
찾을 수 8 개 항목 ....
은 drwx ------ - xxx_gmail_com xxx_gmail_com 0 2015년 1월 28일 21시 54분 tmp를
다른 chmod
옵션 (예 : a+w
) 사용 권한을 변경하지 못합니다. 그리고 파일의 소유자/그룹은 항상 ssh 사용자와 동일합니다 (위의 로그는 이메일을 사용자 이름으로 사용하는 Google 클라우드의 콘솔에서 시작된 ssh 터미널에서 가져온 것입니다). 그러나 내가 ssh에 들어가면 같은 문제가 발생합니다.
권한을 변경하거나 Hive가 오류를 발생시키지 않게하려면 어떻게합니까?
감사합니다.
어떤 버전의 Hive를 설치 했습니까? –
또한, "stacked by ...."조각을 포함한 * 전체 스택 추적을 제공 할 수 있습니까? 근본 원인을 http://grepcode.com/file/repo1.maven.org/maven2/org.apache.hive/hive-exec/0.14.0/org/apache/hadoop/hive/에서 추적 할 필요가 있습니다. ql/session/SessionState.java # 444 –
@DennisHuo 수정 사항을 참조하십시오. 도움을 주셔서 감사 드리며 다른 것이 필요한지 알려주세요. –