ما هو هادوب؟ Hadoop هي عبارة عن منصة حوسبة موزعة مكتوبة بلغة جافا. وهو يشتمل على ميزات مشابهة لتلك الموجودة في نظام ملفات Google و MapReduce. للحصول على بعض التفاصيل ، راجع HadoopMapReduce. ما هي المنصات ونسخ Java التي تعمل بها Hadoop؟ جافا 1. x أو أعلى ، ويفضل من Sun -see HadoopJavaVersions Linux و Windows هي أنظمة التشغيل المدعومة ، ولكن من المعروف أن BSD و Mac OS / X و OpenSolaris تعمل. ما مدى مقياس Hadoop؟ تم عرض Hadoop على مجموعات تصل إلى 4000 عقدة. أداء الفرز على 900 عقدة جيد (فرز 9TB من البيانات على 900 عقدة يأخذ حوالي 1. 8 ساعات) وتحسين استخدام قيم التكوين غير الافتراضية هذه: dfs. حجم = 131072 فرز العروض على 1400 العقد و 2000 العقد جيدة جدا - فرز 14TB من البيانات على كتلة عقدة 1400 يأخذ 2. ساعاتين؛ فرز 20TB على كتلة عقدة 2000 يأخذ 2. التحديثات على التكوين أعلاه يجري: mapred. أي نوع من موازين الأجهزة أفضل ل Hadoop؟ الإجابة المختصرة هي الأجهزة ثنائية المعالج / ثنائية النواة مع ذاكرة الوصول العشوائي (RAM) بحجم 4-8 جيجابايت باستخدام ذاكرة ECC ، اعتمادًا على احتياجات سير العمل. تشغيل اكثر من عميل على سرعه واحده فقطيجب أن تكون الماكينات آلات سلعة متطورة بدرجة معتدلة لتكون أكثر فعالية من حيث التكلفة ، وعادة ما تكلف 1/2 - 2/3 تكلفة خوادم التطبيقات الإنتاجية العادية ولكنها ليست أجهزة من فئة سطح المكتب. للحصول على مناقشة أكثر تفصيلاً ، راجع صفحة MachineScaling. لدي عقدة جديدة أريد إضافتها إلى نظام تشغيل مجموعة Hadoop؛ كيف أقوم بتشغيل الخدمات على عقدة واحدة فقط؟ ينطبق هذا أيضًا على الحالة التي تعطل فيها جهاز ما وتم إعادة تشغيله ، وما إلى ذلك ، وتحتاج إلى الحصول عليه لإعادة الانضمام إلى المجموعة. لا تحتاج إلى إيقاف التشغيل و / أو إعادة تشغيل الكتلة بأكملها في هذه الحالة. أولاً ، أضف اسم DNS الجديد للعقدة & apos ؛ إلى ملف conf / slaves الموجود على العقدة الرئيسية. ثم قم بتسجيل الدخول إلى عقدة الرقيق الجديدة وتنفيذ: $ cd path / to / hadoop $ بن / hadoop-daemon. وتشمل وظائف ، سوف تحتاج إلى إضافة العقدة إلى DFS بالإضافة إلى ذلك. تضمين الملف ، ثم إصدار hadoop dfsadmin -refreshNodes و hadoop mradmin -refreshNodes حتى يعرف اسم NameNode و JobTracker العقدة الإضافية التي تمت إضافتها. هل هناك طريقة سهلة لمعرفة وضع وصحة مجموعة؟ هناك واجهات على شبكة الإنترنت إلى كل من JobTracker (MapReduce الرئيسية) و NameNode (HDFS الرئيسي) التي تعرض صفحات الحالة عن حالة النظام بأكمله. بشكل افتراضي ، توجد هذه في http: // job. ستعرض صفحة حالة JobTracker حالة جميع العقد ، بالإضافة إلى قائمة انتظار المهام وحالة جميع المهام والمهام التي يتم تشغيلها حاليًا.. ستعرض صفحة حالة NameNode حالة جميع العقد ومقدار المساحة الحرة ، وتوفر القدرة على تصفح DFS عبر الويب. يمكنك أيضًا مشاهدة بعض بيانات الصحة الأساسية لنظام HDFS عن طريق تشغيل: $ bin / hadoop dfsadmin -report1. ما مقدار النطاق الترددي للشبكة الذي قد أحتاج إليه بين الحوامل في الحجم المتوسط (40-80 عقدة) مجموعة Hadoop؟ تعتمد الإجابة الحقيقية على أنواع الوظائف التي تعمل عليها. كخلفية من حساب المغلف ، قد يبدو المرء شيئًا كهذا: 60 عقدة على مجموعتي رفوف = 30 عقدة لكل رف قد تعالج كل عقدة حوالي 100 ميجابايت / ثانية من البيانات في حالة مهمة فرز حيث تكون البيانات المتوسطة بنفس الحجم مثل البيانات المدخلة ، وهذا يعني أن كل عقدة تحتاج إلى خلط 100MB / ثانية من البيانات في مجموع ، ثم تنتج كل رف حول 3GB / ثانية من البيانات ومع ذلك ، نظرا حتى انتشار المخفض عبر الرفوف ، سوف تحتاج كل رف لإرسال 1. تشغيل اكثر من عميل على سرعه واحدة جهازنظرًا لأن الاتصال هو اتصال مزدوج كامل ، فهذا يعني أنك بحاجة إلى 1. 5GB / ثانية من عرض النطاق الترددي للتجزئة لهذه المهمة النظرية. ومع ذلك ، من المحتمل أن تكون الحسابات أعلاه نوعًا ما من الحد الأعلى. هناك عدد كبير من الوظائف التي لديها تخفيض كبير في البيانات خلال مرحلة الخريطة ، إما عن طريق نوع من الترشيح / الاختيار المستمر في مخطط البيانات نفسه ، أو عن طريق الاستخدام الجيد للمجمع. بالإضافة إلى ذلك ، يمكن لضغط البيانات المتوسطة قطع نقل البيانات المتوسطة بواسطة عامل هام. أخيرًا ، على الرغم من أن الأقراص الخاصة بك يمكن أن توفر سعة نقل مستدامة 100 ميجابايت ، فمن النادر رؤية مهمة MR التي يمكنها الحفاظ على سرعة القرص IO عبر خط الأنابيب بأكمله. لذا ، أعتقد أن تقديري هو على الأقل عامل 2 مرتفع جدًا. لذا ، فإن الجواب البسيط هو أن 4-6Gbps هو على الأرجح على ما يرام بالنسبة لمعظم الوظائف العملية. إذا كنت تريد أن تكون أكثر أمانًا ، يمكن أن تعمل العديد من المفاتيح الرخيصة في تكوين 'مكدسة' حيث يكون النطاق الترددي بينهما هو أساسًا سرعة اللوحة الاحتياطية. يجب أن يصل ذلك إلى 96 عقدة مع الكثير من الإرتفاع. تحتوي العديد من مفاتيح جيجابت غير مكلفة أيضًا على منفذ أو اثنين من منافذ 10GigE التي يمكن استخدامها بفعالية للاتصال ببعضها البعض أو إلى 10GE الأساسية. كيف يمكنني المساعدة في جعل Hadoop أفضل؟ إذا واجهتك مشكلة في التعرف على كيفية استخدام Hadoop ، فبمجرد أن تتعرف على شيء ما (ربما بمساعدة القوائم البريدية) ، قم بتمرير هذه المعرفة إلى الآخرين بإضافة شيء إلى هذا الويكي. إذا وجدت شيئًا كنت ترغب في القيام به بشكل أفضل ، وتعرف على كيفية إصلاحه ، فقم بقراءة HowToContribute والمساهمة في التصحيح. كيف يمكنني استكشاف هذا؟ انظر ConnectionRefused 1. اسم تعتمد؟ نحتاج إلى دليل يمكن للمستخدم الكتابة به وعدم التداخل مع المستخدمين الآخرين. تحميل ادوبي فلاش بلاير اخر اصدار للكمبيوتر. إذا لم نقم بتضمين اسم المستخدم ، فحينئذٍ سيشارك المستخدمون المختلفون دليل tmp نفسه. تشغيل اكثر من عميل على سرعة واحدة بيوزر واحديمكن أن يسبب هذا مشاكل في التفويض ، إذا كان الناس و apos؛ الافتراضي umask doesn & apos؛ t allow اكتب من قبل الآخرين. يمكن أن يؤدي أيضا إلى الناس الدوس على بعضهم البعض ، عندما يكونون & أمبير ؛ إعادة ، ه. ، مع اللعب مع HDFS وإعادة تنسيق نظام الملفات الخاصة بهم. هل يتطلب Hadoop SSH؟ قدمت Hadoop مخطوطات (ه. ش) استخدام ssh من أجل بدء وإيقاف مختلف daemons وبعض المرافق الأخرى. يمكن أيضًا تشغيل TaskTracker و DataNode) يدويًا على كل عقدة بدون مساعدة البرنامج النصي. ما هي القوائم البريدية المتوفرة لمزيد من المساعدة؟ يوجد وصف لجميع القوائم البريدية على http: // hadoop. بشكل عام: العام هو للأشخاص المهتمين في adminadrivia من Hadoop (ه. org هو للأشخاص الذين يستخدمون المكونات المختلفة للإطار. -dev القوائم البريدية هي للأشخاص الذين يقومون بتغيير رمز مصدر الإطار. على سبيل المثال ، إذا كنت تقوم بتطبيق نظام ملفات جديد وتريد التعرف على FileSystem API ، فإن hdfs-dev سيكون هو القائمة البريدية المناسبة. ماذا يعني 'NFS: لا يمكن إنشاء تأمين على (بعض dir)' يعني؟ هذا في الواقع ليس مشكلة مع Hadoop ، لكنه يمثل مشكلة في إعداد البيئة التي تعمل بها. عادة ، يعني هذا الخطأ أن ملقم NFS الذي يتم كتابة العملية لا يدعم تأمين نظام الملفات. يتطلب NFS قبل v4 تشغيل خدمة تأمين (عادةً rpc. NFSv4 لديه أقفال نظام الملفات المضمنة في البروتوكول. تشغيل اكثر من عميل علي سرعه واحده مشتركفي بعض الحالات (النادر) ، قد يمثل مشكلة مع بعض نواة لينكس التي لم تنفذ استدعاء النظام () بشكل صحيح. يوصى بشدة أن يكون اتصال NFS الوحيد في إعداد Hadoop هو المكان الذي يكتب فيه NameNode نسخة ثانوية أو ثالثة من سجل fsimage و edits. لا ينصح جميع مستخدمي NFS الآخرين للحصول على الأداء الأمثل. يسمح HadoopStreaming استخدام أي أمر shell كخريطة أو تقليل وظيفة. libhdfs ، واجهة برمجة التطبيقات (API) المعتمدة على JNI للتحدث مع hdfs (فقط). Hadoop Pipes ، واجهة برمجة تطبيقات C ++ متوافقة مع SWIG (غير JNI) لكتابة مهام تخفض الخارطة. كيف أقوم بإرسال محتوى إضافي (جرة ، ملفات ثابتة ، إلخ) لكي أستخدم وظيفتي أثناء وقت التشغيل؟ يتم استخدام ميزة التخزين المؤقت الموزعة لتوزيع ملفات القراءة فقط الكبيرة التي تحتاجها الخريطة / تقليل المهام إلى الكتلة. سيقوم الإطار بنسخ الملفات الضرورية من عنوان URL (إما hdfs: أو http :) إلى العقدة التابعة قبل تنفيذ أية مهام للمهمة على تلك العقدة. يتم نسخ الملفات مرة واحدة فقط لكل وظيفة ، لذلك لا ينبغي تعديلها من قبل التطبيق. للتدفق ، راجع ويكي HadoopStreaming لمزيد من المعلومات. لا ينصح بنسخ المحتوى إلى lib وإحباط شديد. تشغيل اكثر من عميل على سرعة واحدة بيوزر واحدستتطلب التغييرات في هذا الدليل إعادة تشغيل خدمات Hadoop. كيف يمكنني الحصول على برنامج MapReduce Java الخاص بي لقراءة توصيف مجموعة Cluster & apos؛ s وليس فقط الافتراضيات؟ ملفات خصائص التهيئة ({core | mapred | hdfs} -site. xml) المتوفرة في العديد من الدلائل / الأدلة الخاصة بتثبيت Hadoop الخاص بك يجب أن تكون على CLASSPATH الخاص بتطبيق Java الخاص بك لكي يتم العثور عليه وتطبيقه. هناك طريقة أخرى لضمان عدم تجاوز أي إعداد معين من قبل أي مهمة هي تعيين هذه الخصائص على أنها نهائية ؛ على سبيل المثال: mapreduce. ميغابايت 400 خصائص التكوين trueSetting كنهائية هي أمر شائع يفعله المسؤولون ، كما هو موضح في مستندات تهيئة API. من الأفضل أن تكون لديك خدمة تخدم تهيئة نظام المجموعة عند الطلب ، في التعليمات البرمجية. قد تكون org / jira / browse / HADOOP-5670 ذات أهمية في هذا الصدد ، ربما. هل يمكنني كتابة ملفات hdfs إنشاء / كتابة إلى مباشرة من خريطة / تقليل المهام؟ نعم فعلا. (من الواضح أنك تريد هذا لأنك تحتاج إلى إنشاء / كتابة ملفات غير ملف الإخراج المكتوب بواسطة OutputCollector. dir} هو دليل الإخراج النهائي للمهمة (JobConf. $ {taskid} هو المعرّف الفعلي لمحاولة المهام الفردية (e. task_200709221812_0001_m_000000_0) ، TIP عبارة عن مجموعة من $ {taskid} s (e. مع تنفيذ المضاربة على ، يمكن للمرء أن يواجه قضايا مع 2 مثيلات من نفس TIP (يعمل في وقت واحد) في محاولة لفتح / الكتابة إلى نفس الملف (المسار) على hdfs. تشغيل اكثر من عميل على سرعه واحده فقطوبالتالي سيكون على كاتب التطبيق اختيار الأسماء الفريدة (e. task_200709221812_0001_m_000000_0) لكل محاولة مهمة ، وليس فقط لكل TIP. (من الواضح أن هذا يجب أن يتم حتى لو لم يقم المستخدم بإنشاء / كتابة الملفات مباشرة عبر تقليل المهام. ) للالتفاف على هذا الإطار يساعد كاتب التطبيق من خلال الحفاظ على $ mapred خاص. dir} / _ $ {taskid} sub-dir لكل محاولة تقليل مهمة على hdfs حيث ينتهي ناتج محاولة تقليل المهمة. عند الانتهاء بنجاح من محاولة المهمة ، الملفات الموجودة في $ {mapred. dir} / _ $ {taskid} (للمهمة الناجحة فقط) يتم نقلها إلى $ {mapred. بالطبع ، يتجاهل الإطار الدليل الفرعي لمحاولات المهام غير الناجحة. يستطيع كاتب التطبيق الاستفادة من ذلك عن طريق إنشاء أي ملفات جانبية مطلوبة في $ {mapred. dir} أثناء تنفيذ مهام التخفيض الخاصة به ، وسيحركها الإطار بشكل مشابه - وبالتالي لا يتعين عليك اختيار مسارات فريدة لكل محاولة مهمة. dir} أثناء تنفيذ محاولة تقليل مهمة معينة في الواقع $ {mapred. dir} / _ {$ taskid} ، وليس القيمة التي تم تعيينها بواسطة JobConf. تشغيل اكثر من عميل علي سرعه واحده مشتركلذلك ، فقط قم بإنشاء أي ملفات hdfs تريدها في $ {mapred. dir} من مهمتك المخفضة للاستفادة من هذه الميزة. بالنسبة إلى محاولات مهمة الخريطة ، يكون الاستبدال التلقائي لـ $ {mapred. لا يزال بإمكانك الوصول إلى دليل محاولة مهمة الخريطة ، رغم ذلك ، باستخدام FileOutputFormat. getWorkOutputPath (TaskInputOutputContext). سيتم التعامل مع الملفات التي تم إنشاؤها هناك كما هو موضح أعلاه. النقاش بأكمله ينطبق على خرائط الوظائف مع المخفض = NONE (i. يقلل من 0) لأن خرج الخريطة ، في هذه الحالة ، يذهب مباشرة إلى hdfs. كيف يمكنني الحصول على كل من خرائط العمل والمهام للعمل على ملف إدخال واحد كامل وعدم السماح للإطار بتقسيم الملفات؟ بشكل أساسي يتم تمثيل إدخال s الوظيفة بواسطة InputFormat (واجهة) / FileInputFormat (فئة أساسية). لهذا الغرض يحتاج المرء إلى & apos؛ غير قابلة للكسر & apos؛ FileInputFormat i. تنسيق الإدخال الذي يُخبر أساسًا إطار عمل تقليل الخلل بحيث لا يمكن تقسيمه ومعالجته. للقيام بذلك ، تحتاج إلى تنسيق الإدخال الخاص بك لإرجاع false لمكالمة isSplittable. NonSplitableSequenceFileInputFormat in src / test / org / apache / hadoop / mapred / SortValidator. java بالإضافة إلى تنفيذ واجهة InputFormat وامتلاك isSplitable (. تشغيل اكثر من عميل على سرعة واحدة بيوزر واحد) إرجاع false ، من الضروري أيضًا تطبيق واجهة RecordReader لإرجاع المحتوى الكامل لملف الإدخال. (الافتراضي هو LineRecordReader ، والذي يقسم الملف إلى أسطر منفصلة) الخيار الآخر سريع الإصلاح ، هو تعيين mapred. لماذا أرى صورًا مكسورة في تفاصيل المهام. 15 ، خريطة / تقليل الرسومات الانتهاء من المهمة. يتم إنتاج الرسوم البيانية على هيئة صور SVG (Scalable Vector Graphics) ، وهي عبارة عن ملفات xml ، مضمنة في محتوى HTML. يتم اختبار الرسومات بنجاح في Firefox 2 على Ubuntu و MAC OS. ومع ذلك ، بالنسبة للمتصفحات الأخرى ، يجب تثبيت مكون إضافي إضافي للمتصفح لمشاهدة صور SVG. يمكن العثور على عارض SVG Viewer على http: // www. أرى خريطتين كحد أقصى / يقللان من حدوثها بشكل متزامن على كل TaskTracker ، فكيف أقوم بزيادة ذلك؟ استخدم مقبض التكوين: mapred. الحد الأقصى للتحكم في عدد من الخرائط / يقلل من تولد في وقت واحد على TaskTracker. افتراضيًا ، يتم تعيينه إلى 2 ، وبالتالي يرى أحد خريطتين كحد أقصى ويقلل 2 في مثيل محدد على TaskTracker. يمكنك تعيين تلك الموجودة على أساس كل عنصر تراكمي لتعكس الأجهزة بدقة (i. تكمن المشكلة في أنك لم تعمد إلى تهيئة الخريطة / تقليل دليل النظام إلى قيمة ثابتة. يعمل الافتراضي لأنظمة عقدة واحدة ، ولكن ليس للعناقيد 'الحقيقية'. دير / hadoop / mapred / نظام الدليل المشترك حيث يخزن MapReduce الملفات. تشغيل اكثر من عميل على سرعه واحدة جهازلاحظ أن هذا الدليل موجود في نظام الملفات الافتراضي ويجب أن يكون قابلاً للوصول من كل من جهاز العميل والخادم وعادةً ما يكون في HDFS. كيف تقوم بتعيين / تقليل حدود سجل المقياس و apos؛ s بشكل صحيح؟ تقع على مسؤولية RecordReader InputSplit و apos؛ s للبدء والنهاية عند حد السجل. بالنسبة إلى SequenceFile & apos؛ s ، تحتوي كل بايت 2K على علامة تزامن 20 بايت بين السجلات. تسمح علامات المزامنة هذه لـ RecordReader بالسعي إلى بدء InputSplit ، الذي يحتوي على ملف وإزاحة وطول والعثور على أول علامة مزامنة بعد بداية التقسيم. يستمر RecordReader في معالجة السجلات حتى يصل إلى أول علامة مزامنة بعد نهاية الانقسام. يبدأ الانقسام الأول لكل ملف بشكل طبيعي وليس بعد علامة المزامنة الأولى. وبهذه الطريقة ، يتم ضمان أن تتم معالجة كل سجل بواسطة مصمم خرائط واحد بالضبط. يتم التعامل مع الملفات النصية بشكل مشابه ، باستخدام خطوط جديدة بدلاً من علامات المزامنة. كيف أقوم بتغيير اسم ملف الإخراج النهائي بالاسم المطلوب بدلاً من الأجزاء مثل part-00000، part-00001؟ يمكنك تصنيف فئة فرعية في OutputFormat. يمكنك تحديد وتصفح رمز TextOutputFormat ، MultipleOutputFormat. قد تكون الحالة أنك تحتاج فقط إلى إجراء تغييرات بسيطة على أي من فئات تنسيق الإخراج الموجودة. للقيام بذلك ، يمكنك فقط تصنيف فئة فرعية وتجاوز الأساليب التي تحتاج إلى تغييرها. تشغيل اكثر من عميل على سرعه واحدة جهازعند كتابة New InputFormat ، ما هو تنسيق صفيف السلسلة التي تم إرجاعها بواسطة InputSplit #getLocations ()؟ يبدو أن DatanodeID. يعد getHost () هو المكان القياسي لاسترداد هذا الاسم ، ومتغير machineName ، الذي تم ملؤه في DataNode. java #startDataNode ، هو المكان الذي يتم فيه تعيين الاسم لأول مرة. اسم 'من التكوين ؛ إذا كان ذلك غير متوفر ، DNS. كيف يمكنك بهدوء إيقاف تشغيل وظيفة؟ hadoop job -kill JOBID2. كيف أقوم بتحديد (أو زيادة) عدد المهام المتزامنة التي قد تحتوي على وظيفة الإجمالي الكلي في كل مرة؟ 2. كيف أقوم بتحديد (أو زيادة) عدد المهام المتزامنة التي تعمل على العقدة؟ لكل من الإجابات ، راجع LimitingTaskSlotUsage. إذا قمت بإضافة DataNodes جديد إلى الكتلة ، فهل سيقوم HDFS بنقل الكتل إلى العقد المضافة حديثًا من أجل موازنة استخدام مساحة القرص بين العقد؟ لا ، لن يقوم نظام HDFS بنقل الكتل إلى العقد الجديدة تلقائيًا. ومع ذلك ، من المحتمل أن تكون الكتل التي تم إنشاؤها حديثًا موجودة في العقد الجديدة. هناك عدة طرق لإعادة التوازن الكتلة يدوياً. حدد مجموعة فرعية من الملفات التي تستهلك نسبة جيدة من مساحة القرص ؛ نسخها إلى مواقع جديدة في HDFS ؛ إزالة النسخ القديمة من الملفات ؛ إعادة تسمية النسخ الجديدة إلى أسمائها الأصلية. هناك طريقة أبسط ، بدون انقطاع للخدمة ، تتمثل في تشغيل النسخ المتماثل للملفات ، وانتظر حتى تستقر عمليات النقل ، ثم تقوم بإعادة النسخ إلى الأسفل. هناك طريقة أخرى لإعادة توازن الكتل هي إيقاف تشغيل عقدة البيانات ، التي تكون ممتلئة ، وانتظر حتى يتم تكرار الكتل ، ثم أعدها مرة أخرى.. ستتم إزالة الكتل التي تم استنساخها بشكل عشوائي من العقد المختلفة ، بحيث تحصل عليها بالفعل لإعادة التوازن وليس فقط إزالتها من العقدة الحالية. أخيرا ، يمكنك استخدام bin / start-balancer. أمر sh لتشغيل عملية موازنة لنقل كتل حول الكتلة تلقائياً. تشغيل اكثر من عميل على سرعة واحدة بيوزر واحدنرى المصطلح 'عقدة اسم ثانوية' مضلل إلى حد ما. وهي ليست عقدة اسمية بمعنى أنه لا يمكن ربط عقد البيانات بعقدة الاسم الثانوية ، ولا يمكنها في أي حال من الأحوال أن تحل محل عقدة الاسم الأساسي في حالة فشلها.. الغرض الوحيد من عقدة الاسم الثانوي هو إجراء نقاط تفتيش دورية. تقوم عقدة الاسم الثانوية بتنزيل صورة اسم العقدة الحالية وتحرير ملفات السجل ، وتوصيلها إلى صورة جديدة وتحميل الصورة الجديدة مرة أخرى إلى العقدة الاسمية (الأساسية والوحيدة).. لذلك إذا فشلت عقدة الاسم ، ويمكنك إعادة تشغيله على نفس العقدة المادية ، فلا داعي لإغلاق عقد البيانات ، تحتاج فقط عقدة الاسم إلى إعادة التشغيل. إذا لم تستطع استخدام العقدة القديمة ، فستحتاج إلى نسخ أحدث صورة في مكان آخر. يمكن العثور على أحدث صورة إما على العقدة التي كانت أساسية قبل الفشل إذا كانت متوفرة ؛ أو على عقدة الاسم الثانوي. سيكون هذا الأخير هو آخر نقطة تفتيش دون سجلات التحرير اللاحقة ، وهذا هو أحدث تعديلات على مساحة الاسم قد تكون مفقودة هناك. ستحتاج أيضًا إلى إعادة تشغيل المجموعة بأكملها في هذه الحالة. هل تبقى عقدة الاسم في الوضع الآمن إلى أن يتم نسخ كافة الملفات التي تم نسخها دون تكرارها بشكل كامل؟ لا. أثناء النسخ الآمن يتم حظر النسخ المتماثل للكتل. تنتظر عقدة الاسم عندما تقوم جميع نقاط البيانات أو أغلبيتها بالإبلاغ عن كتلها. اعتمادًا على كيفية تهيئة معلمات الوضع الآمن ، ستظل عقدة الاسم في الوضع الآمن حتى يتم نسخ نسبة معينة من كتل النظام dfs. يتم تعيين pct إلى 1 ثم يجب نسخ كافة كتل كافة الملفات كحد أدنى. تشغيل اكثر من عميل على سرعه واحده فقطالحد الأدنى للنسخ المتماثل لا يعني النسخ المتماثل الكامل. قد تكون بعض النسخ المتماثلة مفقودة ومن أجل نسخها نسخًا متماثلاً تحتاج عقدة الاسم إلى ترك الوضع الآمن. تعرف على المزيد حول الوضع الآمن في مستخدمي HDFS & apos؛ يرشد. كيف أقوم بإعداد عقدة hadoop لاستخدام وحدات تخزين متعددة؟ يمكن لعقد البيانات تخزين كتل في دلائل متعددة يتم تخصيصها عادةً على محركات أقراص محلية مختلفة. من أجل إعداد أدلة متعددة ، يحتاج المرء إلى تحديد قائمة مفصولة بفاصلة لأسماء المسارات كقيمة لمعلمة التكوين dfs. ستحاول عقد البيانات وضع كمية متساوية من البيانات في كل من الدلائل. كما تدعم عقدة الاسم عدة أدلة ، والتي في حالة تخزين صورة مساحة الاسم وسجل التعديلات. يتم استخدام دلائل name-node لنسخ بيانات مساحة الاسم بحيث يمكن استعادة الصورة والسجل من وحدات التخزين المتبقية في حالة فشل أحدهما. ماذا يحدث إذا قام أحد عملاء Hadoop بإعادة تسمية ملف أو دليل يحتوي على هذا الملف بينما لا يزال هناك عميل آخر يقوم بالكتابة فيه؟ بدءا من الإفراج hadoop-0. 15 ، سيظهر ملف في مساحة الاسم بمجرد إنشائه. إذا قام كاتب بالكتابة إلى ملف وعميل آخر يقوم بإعادة تسمية الملف نفسه أو أي من مكونات مساره ، فإن الكاتب الأصلي سيحصل على IOException إما عندما ينتهي من الكتابة إلى الكتلة الحالية أو عندما يقوم بإغلاق الملف. أريد أن اجعل كتلة كبيرة أصغر عن طريق أخذ مجموعة من العقد في وقت واحد. كيف يمكن القيام بذلك؟ على كتلة كبيرة ، لن يؤدي إزالة عقدة بيانات أو نقطتين إلى فقدان أي بيانات ، لأن عقدة الاسم ستقوم بنسخ كتلها طالما أنها ستكتشف أن العقد ميتة. تشغيل اكثر من عميل على سرعه واحدهمع عدد كبير من العقد التي يتم إزالتها أو الموت ، فإن احتمال فقدان البيانات يكون أعلى. يوفر Hadoop ميزة الإيقاف للتخلي عن مجموعة من عقد البيانات الموجودة. يجب تضمين العقد المراد سحبها في ملف الاستبعاد ، ويجب تحديد اسم ملف الاستبعاد كمعلمة تكوين dfs. يجب أن يكون قد تم تحديد هذا الملف أثناء بدء تشغيل namenode. يجب عليك استخدام اسم المضيف الكامل أو ip أو ip: المنفذ في هذا الملف. (لاحظ أن بعض المستخدمين يواجهون مشكلة في استخدام اسم المضيف. إذا عرضت namenode بعض العقد في 'Live' و 'Dead' دون إلغاء التفويض ، فحاول استخدام ip: المنفذ الكامل. ) ثم أمر قذيفة الأمر / hadoop dfsadmin -refreshNodesshould ، والذي يفرض عقدة اسم لإعادة قراءة ملف استبعاد وبدء عملية إلغاء التعليق. الإلغاء ليس فوريًا لأنه يتطلب تكرارًا لعدد كبير من الكتل ولا نرغب في أن تطغى الكتلة على هذه الوظيفة الوحيدة. يمكن مراقبة تقدم التفكيك على واجهة المستخدم Web-node. حتى يتم نسخ كافة الكتل ستكون العقدة في حالة 'إلغاء الترخيص قيد التقدم'. عندما يتم إلغاء التفويض ستتغير الحالة إلى 'خرجت من الخدمة'. يمكن إنهاء عملية إلغاء التفويض في أي وقت عن طريق تحرير التكوين أو ملفات الاستثناءات وتكرار الأمر -refreshNodes. لا تعمل أحرف البدل بشكل صحيح في FsShell. عند إصدار أمر في FsShell ، قد تحتاج إلى تطبيق ذلك الأمر على أكثر من ملف واحد. تشغيل اكثر من عميل على سرعه واحدة جهازيوفر FsShell حرف بدل لمساعدتك في القيام بذلك. يمكن استخدام * (العلامة النجمية) لتحل محل أي مجموعة من الأحرف. على سبيل المثال ، إذا كنت ترغب في إدراج جميع الملفات الموجودة في حسابك والتي تبدأ بالحرف x ، فيمكنك استخدام الأمر ls باستخدام * wildcard: bin / hadoop dfs -ls x * في بعض الأحيان ، يؤدي دعم حرف بدل في نظام التشغيل الأصلي إلى حدوث غير متوقع النتائج. لتجنب هذه المشكلة ، قم بتضمين التعبير في علامات اقتباس مفردة أو مزدوجة ويجب أن يعمل بشكل صحيح. bin / hadoop dfs -ls & apos؛ in * & apos؛ 3. هل يمكنني استخدام عدة ملفات في HDFS استخدام أحجام كتل مختلفة؟ نعم فعلا. يوفر HDFS API لتحديد حجم الكتلة عند إنشاء ملف. إنشاء (المسار ، الكتابة ، bufferSize ، النسخ المتماثل ، blockSize ، والتقدم) 3. هل يحدد HDFS الحدود بين السجلات؟ لا ، لا يوفر HDFS واجهة برمجة تطبيقات قياسية ، وبالتالي فهو لا يعرف السجلات والحدود بينها. ماذا يحدث عندما يحاول عميلان الكتابة إلى نفس ملف HDFS؟ يدعم HDFS عمليات الكتابة الحصرية فقط. عندما يتصل العميل الأول بعقدة الاسم لفتح الملف للكتابة ، تمنح عقدة الاسم عقدًا للعميل لإنشاء هذا الملف. عندما يحاول العميل الثاني فتح نفس الملف للكتابة ، ستشاهد عقدة الاسم أن عقد الإيجار للملف تم منحه بالفعل إلى عميل آخر ، وسوف يرفض الطلب المفتوح للعميل الثاني. تشغيل اكثر من عميل على سرعه واحدة جهازكيفية الحد من استخدام القرص عقدة البيانات & apos؛ s؟ استخدم dfs. قيمة التكوين محفوظة في $ HADOOP_HOME / conf / hdfs-site. محجوز 182400 المساحة المحجوزة بالبايت لكل وحدة تخزين. دائما ترك هذا مساحة كبيرة مجانا لاستخدام غير dfs. على عقدة بيانات فردية ، كيف توازن الكتل على القرص؟ لا يوجد لدى Hadoop حاليًا طريقة للقيام بذلك تلقائيًا. للقيام بذلك يدوياً: إيقاف تشغيل DataNode المتضمَّنة استخدم الأمر mV UNIX لنقل أزواج النسخ المتماثلة والمجموعات الفردية من دليل واحد إلى آخر على المضيف المحدد. في الإصدارات التي لديها HDFS-6482 (أباتشي Hadoop 2. 0+) تحتاج أيضاً إلى التأكد من أن بنية الدليل المسماة subdir تبقى تماماً كما هي عند تحريك الكتل عبر الأقراص. على سبيل المثال ، إذا كانت النسخة المتماثلة للكتلة وزوجها التوضيحي تحت / data / 1 / dfs / dn / current / BP-1788246909-172. 202-1412278461680 / current / finalized / subdir0 / subdir1 / ، وأردت نقله إلى / data / 5 / disk ، ثم يجب نقله إلى نفس بنية الدليل الفرعي تحته ،. / البيانات / 5 / DFS / DN / الحالية / BP-1788246909-172. 202-1412278461680 / الحالي / الانتهاء / subdir0 / subdir1 /. إذا لم يتم الحفاظ على ذلك ، لن تتمكن DN من تحديد موقع النسخ المتماثلة بعد النقل. ماذا يعني 'يمكن نسخ الملف فقط إلى عقد 0 ، بدلا من 1' يعني؟ ليس لدى NameNode أي DataNodes متاح. يمكن أن يكون سبب ذلك مجموعة متنوعة من الأسباب. تشغيل اكثر من عميل على سرعه واحدة جهازتحقق من سجلات DataNode ، وسجلات NameNode ، واتصال الشبكة ، . يرجى الاطلاع على الصفحة: CouldOnlyBeReplicatedTo 3. إذا فقدت NameNode نسختها الوحيدة من ملف fsimage ، هل يمكن استعادة نظام الملفات من DataNodes؟ لا. دير للكتابة إلى نظامي ملفات على مضيفين مختلفين ، استخدم SecondaryNameNode ، إلخ. تلقيت تحذيرًا على واجهة الويب على الويب NameNode 'تحذير: هناك 32 قطعة مفقودة. ' ماذا تعني؟ هذا يعني أن 32 كتل في تثبيت HDFS لا تحتوي على نسخة متماثلة واحدة على أي من DataNodes. يمكن العثور على ملفات النسخة المتماثلة على DataNode في أدلة التخزين المحددة بواسطة dfs. إذا لم يتم تعيين المعلمة في hdfs DataNode الصورة. XML ، ثم سيتم استخدام الموقع / tmp الافتراضي. هذا الإعداد الافتراضي مخصص للاستخدام فقط للاختبار. في نظام الإنتاج هذه طريقة سهلة لتفقد البيانات الفعلية ، حيث قد يفرض نظام التشغيل المحلي سياسات إعادة التدوير على / tmp. dir بشكل صحيح يحدد أدلة التخزين على جميع DataNodes ، ثم قد يكون لديك فقدان حقيقي للبيانات ، والتي يمكن أن تكون نتيجة خلل في الأجهزة أو البرامج. إذا كان الملف (الملفات) الذي يحتوي على فدرات مفقودة يمثل بيانات عابرة أو يمكن استعادته من مصدر خارجي ، فإن أسهل طريقة هي إزالة (واستعادة). تشغيل fsck لتحديد الملفات التي تحتوي على كتل مفقودة. إذا كنت ترغب (بتقدير كبير) لإجراء مزيد من التحقيق في سبب فقدان البيانات ، فيمكنك البحث في سجلات NameNode و DataNode. تشغيل اكثر من عميل على سرعه واحدة جهازمن السجلات يمكن تتبع دورة الحياة بأكملها لكتلة معينة والنسخ المتماثلة الخاصة بها. إذا تم استخدام حجم كتلة 64 ميغابايت وتم كتابة ملف يستخدم أقل من 64 ميغابايت ، فسيتم استهلاك مساحة 64 ميجابايت من القرص؟ إجابة مختصرة: لا. إجابة أطول: بما أن HFDS لا تقوم بتخزين كتلة القرص الخام ، فهناك نوعان من أحجام الفدرات المستخدمة عند كتابة ملف في HDFS: حجم كتل HDFS وحجم فدرة نظام الملفات الأساسي. سيقوم HDFS بإنشاء ملفات تصل إلى حجم حجم كتلة HDFS وكذلك ملف تعريف يحتوي على المجموع الاختباري CRC32 لهذه الكتلة. يقوم نظام الملفات الأساسي بتخزين هذا الملف كزيادات من حجم كتلته على القرص الخام الفعلي ، تمامًا كما يفعل أي ملف آخر. ماذا تعني الرسالة 'فئة التشغيل READ / WRITE غير مدعومة في حالة الاستعداد'؟ في كتلة HA- تمكين ، لا تعرف عملاء DFS مسبقاً أي namenode نشطة في وقت محدد. لذلك عندما يتصل أحد العملاء بـ namenode ويحدث أن يكون في وضع الاستعداد ، سيتم رفض عملية READ أو WRITE ويتم تسجيل هذه الرسالة. عندئذٍ سيتصل العميل تلقائيًا بـ namenode الآخر ثم حاول إجراء العملية مرة أخرى. طالما يوجد اسم نشط واحد وواحد في وضع الاستعداد في الكتلة ، يمكن تجاهل هذه الرسالة بأمان. إذا تم تكوين تطبيق للاتصال بـ namenode واحد فقط دائمًا ، تشير هذه الرسالة إلى فشل التطبيق في إجراء أي عملية قراءة / كتابة. في مثل هذه الحالات ، يجب تعديل التطبيق لاستخدام تكوين HA للمجموعة. تتعامل jira HDFS-3447 مع تخفيض شدة هذه الرسالة (وما شابهها) إلى التصحيح وذلك للحد من الضوضاء في السجلات ، ولكن لم يتم حلها اعتبارًا من يوليو 2015. مشاكل في بناء رمز C / C + + في حين تم بناء معظم Hadoop باستخدام جافا ، يتم إعادة كتابة جزء أكبر ومتزايد في C و C ++. تشغيل اكثر من عميل على سرعة واحدة بيوزر واحدونتيجة لذلك ، فإن قابلية الرمز للتنقل بين الأنظمة الأساسية ستنخفض. جزء من المشكلة هو عدم الوصول إلى منصات أخرى غير Linux وميلنا لاستخدام وظائف BSD أو GNU أو System V معينة في الأماكن التي يكون فيها POSIX-use غير موجود أو صعب أو غير مؤثر. ومع ذلك ، فإن أكبر خسارة في الشفرة المجمّعة الأصلية ستكون في الغالب أداء النظام وميزات الأمان الموجودة في الإصدارات الأحدث من Hadoop. ميزات Hadoop الأخرى عادة ما يكون لها نظير جافا التي تعمل وإن كان أبطأ من أبناء عمومتها C. الاستثناء إلى هذا هو الأمان ، والذي يتطلب رمز تجميع بشكل مطلق. 22 وقبل ذلك يتطلب اباتشي فورست لبناء الوثائق. اعتبارا من Snow Leopard ، فإن Apple لم تعد تقوم بشحن Java 1. ويمكن تحقيق ذلك إما عن طريق النسخ / النظام / المكتبة / الأطر / JavaVM. 5 آلة أو استخدام أداة مثل Pacifist لتثبيت من حزمة أبل الرسمية. يوفر com / post / 183013153 / installing-java-1-5-on-snow-leopard بعض الاتجاهات خطوة بخطوة. لماذا تظهر الملفات والدلائل مثل DrWho و / أو أسماء المستخدمين مفقودة / غريبة؟ قبل 0. 22 ، يستخدم Hadoop & apos؛ whoami & apos؛ وأوامر الهوية لتحديد المستخدم ومجموعات العملية قيد التشغيل. whoami السفن كجزء من حزمة التوافق BSD وعادة ليس في المسار. إن الأمر id & apos؛ s هو نمط النظام V بينما تتوقع Hadoop POSIX. يلزم إجراء تغييرين على البيئة لإصلاح هذا: تأكد من تثبيت / usr / ucb / whoami وفي المسار ، إما عن طريق تضمين / usr / ucb عند الطرف الذيل لبيئة PATH أو symlinking / usr / ucb / whoami مباشرة. تشغيل اكثر من عميل على سرعه واحده فقطsh ، غيّر HADOOP_IDENT_STRING بالتالي: تصدير HADOOP_IDENT_STRING = `/ usr / xpg4 / bin / id -u -n`4. قدرات القرص المبلغ عنها خاطئة يستخدم Hadoop du و df لتحديد مساحة القرص المستخدمة. على أنظمة التخزين المجمعة التي تبلغ السعة الإجمالية للمجمع بأكمله (مثل ZFS) بدلاً من نظام الملفات ، فإن Hadoop يتم الخلط بسهولة. أبلغ المستخدمون أن استخدام أحجام الحصص الثابتة لدلائل HDFS و MapReduce يساعد في القضاء على الكثير من هذا الارتباك. بناء / اختبار Hadoop على ويندوز يمكن تشغيل بناء Hadoop على Windows من داخل نافذة موجه أوامر Windows (وليس cygwin). سواء قمت بتعيين متغيرات البيئة في ملف دفعي أو في System-> Properties-> Advanced-> Environment Variables ، يجب تعيين متغيرات البيئة التالية: set ANT_HOME = c: apache-ant-1. 4 قم بتعيين PATH =٪ PATH٪ ؛٪ ANT_HOME٪ binthen افتح نافذة موجه الأوامر ، cd إلى دليل مساحة العمل (في حالتي c: workspace hadoop) وقم بتشغيل النمل. بما أنني مهتم بإدارة حالات اختبار المساهمات ، فأنا أقوم بما يلي: ant -l build. الإخراج = نعم أهداف test- contribother العمل بالمثل. أردت فقط توثيق هذا لأنني قضيت بعض الوقت في محاولة لمعرفة لماذا لن يتم تشغيل بناء النمل من نافذة موجه الأوامر cygwin.
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |