hadoop - ويندوز - كيفية قراءة سجل التي يتم تقسيمها إلى خطوط متعددة وأيضا كيفية التعامل مع السجلات المكسورة أثناء تقسيم المدخلات




مشكلة تقسيم الهارد ويندوز 7 (2)

سوف تحتاج إلى كتابة تنسيق الإدخال الخاص بك وقارئ سجل لضمان تقسيم الملف الصحيح حول محدد السجل الخاص بك.

في الأساس القارئ سجل الخاص بك سوف تحتاج إلى السعي إلى انها تقسيم البايت تعويض، مسح إلى الأمام (قراءة خطوط) حتى يجد إما:

  • خط Begin ...
    • قراءة خطوط تصل إلى end ... المقبل end ... خط وتوفير هذه الخطوط بين بداية ونهاية كإدخال للسجل التالي
  • فإنه يمسح المعاجين نهاية الانقسام أو يجد إوف

هذا هو مماثل في خوارزمية لكيفية التعامل مع شملينتفورمات ماهوت متعدد الخط شمل كمدخلات - في الواقع قد تكون قادرة على تعديل هذه التعليمات البرمجية المصدر مباشرة للتعامل مع الوضع الخاص بك.

كما ذكر في إيرو @ إجابة، NLineInputFormat هو خيار آخر إذا السجلات الخاصة بك لديها عدد ثابت من خطوط لكل سجل، ولكن غير فعالة حقا لملفات أكبر كما لديها لفتح وقراءة الملف بأكمله لاكتشاف إزاحة خط في getSplits() تنسيق الإدخال getSplits() .

لدي ملف سجل على النحو التالي

Begin ... 12-07-2008 02:00:05         ----> record1
incidentID: inc001
description: blah blah blah 
owner: abc 
status: resolved 
end .... 13-07-2008 02:00:05 
Begin ... 12-07-2008 03:00:05         ----> record2 
incidentID: inc002 
description: blah blah blahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblahblah
owner: abc 
status: resolved 
end .... 13-07-2008 03:00:05

أريد استخدام مابريدوس لمعالجة هذا. وأريد أن استخراج هوية الحادث، والوضع، وكذلك الوقت الذي يستغرقه لهذا الحادث

كيفية التعامل مع كل من السجلات كما أن لها أطوال قياسية متغيرة وماذا يحدث إذا انقسام المدخلات قبل انتهاء السجل.


في الأمثلة الخاصة بك كل سجل لديه نفس العدد من الخطوط. إذا كان هذا هو الحال يمكنك استخدام نلينسينبوتفورمات، إذا كان من المستحيل معرفة عدد من الخطوط قد يكون أكثر صعوبة. (مزيد من المعلومات حول نلينسينبوتفورمات: http://hadoop.apache.org/docs/current/api/org/apache/hadoop/mapred/lib/NLineInputFormat.html )







input-split