2014-11-18 11 views
5

शुरू नहीं मैं Hadoop 1.2.1 है और मैं एक नोड पर छत्ता 0.14.0 स्थापितहाइव 0.14.0

$ hive 

Logging initialized using configuration in jar:file:/usr/local/hive/lib/hive-common-0.14.0.jar!/hive-log4j.properties 

Exception in thread "main" java.lang.RuntimeException: java.lang.RuntimeException: The root scratch dir: /tmp/hive on HDFS should be writable. Current permissions are: rwxrwxr-x 

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:160) 
Caused by: java.lang.RuntimeException: The root scratch dir: /tmp/hive on HDFS should be writable. Current permissions are: rwxrwxr-x 
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 

जड़ खरोंच dir है:/tmp/HDFS पर छत्ता लिखने योग्य होना चाहिए। वर्तमान अनुमतियां हैं: rwxrwxr-x।

मैं hadoop fs -chmod g+w /tmp/hive का उपयोग करता हूं लेकिन काम नहीं कर रहा हूं।

उत्तर

8

अद्यतन निम्न आदेश

hadoop fs -chmod 777 /tmp/hive 

तो आप को दूर कर सकते हैं/tmp/दोनों स्थानीय और HDFS पर छत्ता का उपयोग कर अपने को/tmp/छत्ता HDFS निर्देशिका की अनुमति।

hadoop fs -rm -r /tmp/hive; 
rm -rf /tmp/hive 

इस स्थान पर केवल अस्थायी फ़ाइलें रखी गई हैं। कोई समस्या नहीं है, भले ही हम इसे हटा दें, उचित अनुमतियों के साथ आवश्यक होने पर बनाया जाएगा।

+0

मैंने वह किया, लेकिन अभी भी काम नहीं कर रहा। – Amit

+0

कृपया अद्यतन उत्तर – sachin

+0

धन्यवाद! मेरे लिए काम किया –

2

मैंने इस के साथ थोड़ा सा प्रयोग किया और सोचा कि यह किसी के लिए उपयोगी हो सकता है।

जब छत्ता 0.14.0 पहले बनाने/tmp/HDFS में छत्ता के बिना शुरू कर दिया है, कि निर्देशिका मोड के बजाय एक मोड 755 करने के लिए hadoop dfs -mkdir /tmp/hive यह चूक के माध्यम से निर्देशिका बनाता है 711.

drwx--x--x - hadoop supergroup   0 2014-12-08 18:47 /tmp/hive 

तो साथ बनाया जाता है।

drwxr-xr-x - hadoop supergroup   0 2014-12-09 11:13 /tmp/hive 

न्यूनतम अनुमतियों त्रुटियों के बिना शुरू करने के लिए छत्ता अनुमति देने के लिए आवश्यक 733.

hadoop dfs -chmod 733 /tmp/hive 
0 है

निम्नलिखित में परिणाम और उत्थान सफलतापूर्वक शुरू हो रहा है।

drwx-wx-wx - hadoop supergroup   0 2014-12-09 11:13 /tmp/hive 

इससे मुझे विश्वास होता है कि 0.14.0 उस निर्देशिका को बनाता है जब यह गलत चीज कर रहा है।

+0

मैं सहमत हूं। मैंने उपर्युक्त पोस्ट में सुझावों की कोशिश की लेकिन कोई किस्मत नहीं। तब मैंने स्वयं/tmp/hive निर्देशिका बनाई और इसे 755 के साथ बनाया गया था। हालांकि, हाइव अभी भी शुरू नहीं होता है। मेरे मामले में, हाइव 0.14 कहता है- 'रनटाइम अपवाद: रूट स्क्रैच डीआईआर: एचडीएफएस पर/टीएमपी/हाइव लिखने योग्य होना चाहिए। वर्तमान अनुमतियां हैं: rwxr-xr-x'। वास्तव में अजीब !! :-( – sgsi

+0

दिलचस्प दिलचस्प, इसने मेरी हाइव अनुमति समस्या हल की: 'हैडोप डीएफएस -चमोद 777/टीएमपी/हाइव'। इससे पहले, मैंने केवल ** एफएस ** किया था: 'हैडोप एफएस -चोड 777/टीएमपी/हाइव' – sgsi

0

चेक छत्ता-site.xml पर निम्न टैग के लिए मूल्य है, तो बदल फ़ोल्डर के लिए अनुमति का उल्लेख

<property> 
<name>hive.exec.local.scratchdir</name> 
<value>/tmp/mydir</value> 
<description>Local scratch space for Hive jobs</description> 
</property> 

hadoop fs -rmr /tmp/mydir; 
hadoop fs -mkdir /tmp/mydir; 
hadoop fs -chmod 777 /tmp/mydir; 
hadoop fs -chmod -R 777 /tmp/mydir;