ماذا يجب أن يكون hadoop.tmp.dir؟
سؤال
Hadoop لديه معلمة التكوين hadoop.tmp.dir
التي ، وفقًا للوثائق ، هي ""قاعدة لأدلة مؤقتة أخرى." أفترض أن هذا المسار يشير إلى نظام الملفات المحلي.
لقد قمت بتعيين هذه القيمة إلى /mnt/hadoop-tmp/hadoop-${user.name}
. بعد تنسيق namenode وبدء جميع الخدمات ، أرى نفس المسار الذي تم إنشاؤه على HDFs تمامًا.
هل هذا يعني ، hadoop.tmp.dir
يشير إلى الموقع المؤقت HDFs?
المحلول
إنه محير ، لكن hadoop.tmp.dir
يستخدم كقاعدة للدلائل المؤقتة محليا ، وكذلك في HDFs. الوثيقة ليست رائعة ، ولكن mapred.system.dir
تم تعيينه افتراضيا ل "${hadoop.tmp.dir}/mapred/system"
, وهذا يحدد المسار على HDFs حيث تخزن الخريطة/تقليل ملفات النظام.
إذا كنت تريد ألا يتم ربطها معًا ، فيمكنك تحرير mapred-site.xml
مثل تعريف mapred.system.dir شيء غير مرتبط به ${hadoop.tmp.dir}
نصائح أخرى
اسمحوا لي أن أضيف أكثر قليلاً إلى إجابة Kkrugler:
هناك ثلاث خصائص HDFS تحتوي hadoop.tmp.dir
في قيمهم
dfs.name.dir
: دليل حيث يخزن Namenode بيانات التعريف الخاصة به ، مع القيمة الافتراضية${hadoop.tmp.dir}/dfs/name
.dfs.data.dir
: دليل حيث يتم تخزين كتل بيانات HDFS ، مع القيمة الافتراضية${hadoop.tmp.dir}/dfs/data
.fs.checkpoint.dir
: دليل حيث تخزن Namenode الثانوي نقاط التفتيش ، القيمة الافتراضية هي${hadoop.tmp.dir}/dfs/namesecondary
.
هذا هو السبب في أنك رأيت /mnt/hadoop-tmp/hadoop-${user.name}
في HDFS الخاص بك بعد تنسيق namenode.
ألقى نظرة حول معلومات حول هذا واحد. الشيء الوحيد الذي يمكن أن أتوصل إليه هو هذا المنشور على Amazon Flastic MapReduce Dev Guide:
في hadoop-site.xml ، قمنا بتعيين hadoop.tmp.dir إلى/mnt/var/lib/hadoop/tmp. /MNT هو المكان الذي نقوم فيه بتركيب أحجام EC2 "الإضافية" ، والتي يمكن أن تحتوي على بيانات أكثر بكثير من وحدة التخزين الافتراضية. (يعتمد المبلغ الدقيق على نوع المثيل.) Hadoop's Runjar.java (الوحدة التي تفصل عن مرورات الإدخال) تفسر Hadoop.tmp.dir كمسار لنظام ملف Hadoop بدلاً من مسار محلي ، لذلك يكتب إلى المسار في HDFs بدلاً من ذلك من مسار محلي. يتم تثبيت HDFS تحت/mnt (على وجه التحديد/mnt/var/lib/hadoop/dfs/. لذا ، يمكنك كتابة الكثير من البيانات إليها.