كيف يمكنني التحكم في اسم ملفات الإخراج ومحتوى وظيفة تدفق Hadoop؟

StackOverflow https://stackoverflow.com/questions/887835

سؤال

هل هناك طريقة للتحكم في أسماء ملفات الإخراج لوظيفة دفق هادوب؟ على وجه التحديد، أود أن يتم تنظيم محتوى ملفات إخراج وظيفتي التي سيتم تنظيمها بواسطة Ket مخرجات المخفض - سيحتوي كل ملف فقط على قيم لمفتاح واحد وسوف يكون اسمه هو المفتاح.

تحديث: وجدت فقط الإجابة - باستخدام فئة Java التي تستمد من SPALUTPTPOLFORMAT لأن تنسيق إخراج الوظائف يسمح للتحكم في أسماء ملفات الإخراج.http://hadoop.apache.org/core/docs/current/api/org/apache/hadoop/mapred/lib/multipleoutputformat.html.

لم أر أي عينات لهذا الغرض منها ... هل يمكن لأي شخص أن يشير إلى عينة بث Hadoop تستخدم فئة Java بتنسيق إخراج مخصص؟

هل كانت مفيدة؟

المحلول

باستخدام فئة Java التي تستمد من SightOutPtFormat حيث يسمح بتنسيق إخراج الوظائف التحكم في أسماء ملفات الإخراج. http://hadoop.apache.org/core/docs/current/api/org/apache/hadoop/mapred/lib/multipleoutputformat.html.

عند استخدام Hadoop Streaming، نظرا لأن جرة واحدة فقط يتم دعمك في الواقع لإرساء جرة البث ووضع فئات تنسيق الإخراج الجديدة فيها لتدفق الوظائف لتكون قادرة على الرجوع إليها ...

تعديل:اعتبارا من 0.20.2 من Hadoop، تم إهمال هذه الفئة ويجب عليك الآن استخدامها:http://hadoop.apache.org/docs/mapreduce/current/api/org/apache/hadoop/mapreduce/lib/upput/multipleoutputs.html

نصائح أخرى

بشكل عام، سيكون لديك Hadoop تفكر في الدليل بأكمله ليكون الإخراج، وليس ملف فردي. لا توجد طريقة للتحكم مباشرة في اسم الملف، سواء استخدم وظائف بث أو Java العادية.

ومع ذلك، لا شيء يمنعك من القيام بذلك وإعادة تسمية نفسك، بعد انتهاء المهمة. يمكنك الحصول على مسار Hadoop DFS -CAT / To / To / Directory / Directory / Part- * *، والأنابيب إلى برنامج نصي لك ينفصل عن المحتوى بواسطة المفاتيح ويكتبه إلى ملفات جديدة.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top