unix - एक दूरस्थ फ़ाइल को स्थानीय डिस्क पर कॉपी किए बिना हडूप में डालें




ssh hadoop (3)

जैसे ही वे उत्पन्न होते हैं, डेटा को हडूप में डेटा रखने के लिए एक शेल स्क्रिप्ट लिख रहा हूं। मैं अपने मास्टर नोड को एसएसएच कर सकता हूं, फाइलों को वहां एक फ़ोल्डर में कॉपी कर सकता हूं और फिर उन्हें हडूप में डाल सकता हूं। मैं फ़ाइल को स्थानीय नोड पर स्थानीय डिस्क पर कॉपी करने से छुटकारा पाने के लिए एक शेल कमांड की तलाश में हूं। मुझे जो कुछ चाहिए, उसे बेहतर तरीके से समझाने के लिए, नीचे आप जो भी प्राप्त कर सकते हैं, वह नीचे मिल सकता है:

1) फ़ाइल को मास्टर नोड की स्थानीय डिस्क पर कॉपी करें:

scp test.txt [email protected]:/folderName/

मैं पहले से ही चाबियों का उपयोग कर एसएसएच कनेक्शन स्थापित कर चुका हूं। तो ऐसा करने के लिए कोई पासवर्ड की आवश्यकता नहीं है।

2) मैं एसएसएच का उपयोग दूरस्थ रूप से hadoop put कमांड निष्पादित करने के लिए कर सकता हूं:

ssh [email protected] "hadoop dfs -put /folderName/test.txt hadoopFolderName/"

जो मैं खोज रहा हूं वह है कि इन दो चरणों को पाइप / गठबंधन कैसे करें और मास्टर नोड की स्थानीय डिस्क पर फ़ाइल की स्थानीय प्रतिलिपि को छोड़ दें।

धन्यवाद

दूसरे शब्दों में, मैं कई आदेशों को इस तरह से पाइप करना चाहता हूं कि मैं कर सकता हूं


(Untested)

चूंकि जिस नोड में आप अपना डेटा बनाते हैं, उसके पास इंटरनेट तक पहुंच है, तो शायद आप हैडऑप क्लाइंट नोड सॉफ़्टवेयर इंस्टॉल कर सकते हैं, फिर इसे क्लस्टर में जोड़ें - सामान्य हैडऑप एफएस -पुट के बाद, फिर डिस्कनेक्ट करें और अपने अस्थायी नोड को हटा दें - हैडऑप सिस्टम को तब करना चाहिए अपने हडूप क्लस्टर के अंदर स्वचालित रूप से अपने फाइल ब्लॉक की प्रतिकृति बनाते हैं


इसे आजमाएं (अवांछित):

cat test.txt | ssh [email protected] "hadoop dfs -put - hadoopFoldername/"

मैंने निर्देशिकाओं की प्रतिलिपि बनाने के लिए समान चाल का उपयोग किया है:

tar cf - . | ssh remote "(cd /destination && tar xvf -)"

यह रिमोट- tar के इनपुट में स्थानीय- tar का आउटपुट भेजता है।


हैडोप कुछ आरईएसटी इंटरफेस प्रदान करता है। Hoop और WebHDFS जांच करें। आप गैर-हडोप वातावरण से फ़ाइल का उपयोग कर मास्टर को फ़ाइल कॉपी किए बिना फ़ाइल की प्रतिलिपि बनाने में सक्षम होना चाहिए।





piping