2017-01-15 23 views
5

मैं एचडीएफएस (टेक्स्टफाइल) पर संग्रहीत डेटासेट को विश्लेषण के लिए हाइव में लोड करने की कोशिश कर रहा हूं। मैं इस प्रकार बाहरी तालिका बनाने का उपयोग कर रहा:हाइव बाहरी तालिका को लेखन पहुंच की आवश्यकता है

CREATE EXTERNAL table myTable(field1 STRING...) 
ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t' 
STORED AS TEXTFILE 
LOCATION '/user/myusername/datasetlocation'; 

यह ठीक काम करता है, लेकिन यह HDFS स्थान पर लेखन पहुँच की आवश्यकता है। ऐसा क्यों है?

सामान्य रूप से, टेक्स्ट डेटा लोड करने का सही तरीका क्या है जिसमें मेरे पास लेखन पहुंच नहीं है? क्या एक 'केवल पढ़ने के लिए' बाहरी तालिका प्रकार है?

संपादित करें: मैंने this issue प्रश्न के बारे में छिद्र पर देखा। ऐसा लगता है कि यह हल नहीं किया गया है।

+0

संबंधित प्रश्न: http://stackoverflow.com/questions/37538487/why-does-the-user-need-write-permission-on-the-location-of-external-hive-table (लेकिन कोई जवाब नहीं ..) – Amir

उत्तर

0

मैं इस के लिए एक समाधान नहीं है, लेकिन एक समाधान के रूप मुझे पता चला है कि लिखने की अनुमति के बिना

CREATE TEMPORARY EXTERNAL TABLE

काम करता है, अंतर तालिका जा रहा है अपने सत्र के बाद गायब हो जाएगा।

+0

बहुत खराब विभाजन कॉलम अस्थायी तालिकाओं पर समर्थित नहीं हैं –

1

आप HDFS के लिए लेखन पहुँच की आवश्यकता होती है फ़ाइलों देना Hadoop DFS -chmod 777/फ़ोल्डर नाम

इसका मतलब है आपके कि विशेष रूप से फाइल करने के लिए सभी पहुँच अनुमतियाँ दे रही है।

+0

यह वही है जो सवाल है। मैं फ़ाइल (और कभी-कभी नहीं) फ़ाइल में लेखन पहुंच प्राप्त नहीं करना चाहता हूं। आम तौर पर डेटा एक और प्रक्रिया का परिणाम है, जिसमें से मेरा कोई नियंत्रण नहीं है। मैंने केवल उस डेटासेट तक पहुंच पढ़ी है, क्योंकि, मुझे केवल इसे पढ़ने की आवश्यकता है। – Amir

+0

ठीक है मैं समझ गया। मैंने हाइव बाहरी क्वेरी का परीक्षण किया है जिसमें एचडीएफएस फ़ाइल में लेखन अनुमति नहीं है। यह मेरे लिए निष्पादित कर रहा है। मैंने जो किया है, मैंने हैडूप स्टोरेज फ़ोल्डर को अनुमतियां दी हैं। सबसे पहले जांचें कि क्या आपके हैडूप फ़ोल्डर में पूर्ण अनुमतियां हैं या नहीं। यदि अनुमति नहीं दे रही है और क्वेरी की जांच नहीं है, तो उसे उस समय काम करना चाहिए। – Yasodhara

3

आंशिक रूप से अपने ही सवाल का जवाब:

वास्तव में यह इस समय छत्ता द्वारा हल किया जा करने के लिए नहीं लगता है। लेकिन यहां एक दिलचस्प तथ्य है: हाइव को फाइलों को लिखने की आवश्यकता नहीं होती है, बल्कि केवल फ़ोल्डर में। उदाहरण के लिए, आपके पास 777 अनुमतियों वाला फ़ोल्डर हो सकता है, लेकिन इसके अंदर की फ़ाइलें, जिन्हें हाइव द्वारा एक्सेस किया जा सकता है, केवल पढ़ने के लिए ही रह सकते हैं, उदा। 644

संबंधित मुद्दे