जब सुअर लिपियों कि स्टोर आदेश का उपयोग विकासशील मैं हर रन के लिए उत्पादन निर्देशिका को हटाना होगा या स्क्रिप्ट बंद हो जाता है और प्रदान करता है:डुबकी में एचडीएफएस को स्टोर (ओवरराइट) कैसे मजबूर करें?
2012-06-19 19:22:49,680 [main] ERROR org.apache.pig.tools.grunt.Grunt - ERROR 6000: Output Location Validation Failed for: 'hdfs://[server]/user/[user]/foo/bar More info to follow:
Output directory hdfs://[server]/user/[user]/foo/bar already exists
तो मैं कर रहा हूँ खोज करने के लिए एक में सुअर समाधान के लिए स्वचालित रूप से निर्देशिका को हटा दें, जो कि कॉल समय पर मौजूद नहीं है, तो यह भी दबाता नहीं है।
पिग लैटिन संदर्भ में मुझे शेल कमांड चालक एफएस मिला। दुर्भाग्यवश जब भी कुछ भी त्रुटि उत्पन्न करता है तो पिग स्क्रिप्ट टूट जाती है। इसलिए मैं उपयोग कर सकते हैं नहीं
fs -rmr foo/bar
(मैं। ई। रिकर्सिवली निकालने के लिए) के बाद से यह टूट जाता है, तो निर्देशिका मौजूद नहीं है। एक पल के लिए मैंने सोचा कि मैं
fs -test -e foo/bar
जो एक परीक्षण है और मुझे तोड़ना नहीं चाहिए या इसलिए मैंने सोचा था। हालांकि, सुअर फिर से एक गैर-मौजूदा निर्देशिका पर असफलता कोड और ब्रेक के रूप में test
का रिटर्न कोड व्याख्या करता है।
सुअर परियोजना मेरी समस्या को संबोधित है और एक वैकल्पिक पैरामीटर अधिलेखित या FORCE_WRITEस्टोर आदेश के लिए सुझाव देने के लिए एक JIRA ticket नहीं है। वैसे भी, मैं आवश्यकता से बाहर सुअर 0.8.1 का उपयोग कर रहा हूं और ऐसा कोई पैरामीटर नहीं है।
के लिए: किसी एक फ़ाइल के लिए, मैं यह मेरी स्क्रिप्ट की शुरुआत में जोड़ने से समापन।मैं इसे तीन चरणों में करूँगा: 1) 'foobar-tmp' में स्टोर 2) आरएमएफ फू/बार 3) एमओ 'foobar-tmp' foo/bar –
@MiguelPing: ऐसा लगता है जैसे आपका दृष्टिकोण चलाना चाहिए मेरी प्रारंभिक समस्या लेकिन 'foo/bar' के बजाय' foobar-tmp' के लिए। पहले स्टोर करना उस छिपी हुई त्रुटि का उत्पादन भी कर सकता है जिसे मैंने मानचित्र/कम करने के लिए जिम्मेदार ठहराया है। यदि आपका समाधान आपकी तरफ काम करता है तो क्या आप इसे एक उदाहरण स्क्रिप्ट के साथ जवाब में बदल सकते हैं और अपना सुअर संस्करण संख्या प्रदान कर सकते हैं? – valid
@ valid मेरा समाधान आपके जैसा ही है, मैंने अभी गारंटी देने के लिए एक अतिरिक्त कदम जोड़ा है कि अगर 'आरएमएफ' और' स्टोर '(कहें, अपवाद) के बीच कुछ होता है तो आप डेटा खोना नहीं चाहते हैं। सुअर स्क्रिप्ट किसी भी समय असफल हो सकती हैं, इसलिए मेरा समाधान परमाणु नहीं है, लेकिन कम से कम आप डेटा खोने का जोखिम नहीं चलाते हैं। –