سؤال

أنا جديد في الشرارة.الآن يمكنني تشغيل spark 0.9.1 على الخيوط (2.0.0-cdh4.2.1).ولكن لا يوجد سجل بعد التنفيذ.

يتم استخدام الأمر التالي لتشغيل مثال الشرارة.ولكن لا يتم العثور على السجلات في خادم السجل كما هو الحال في مهمة MapReduce العادية.

SPARK_JAR=./assembly/target/scala-2.10/spark-assembly-0.9.1-hadoop2.0.0-cdh4.2.1.jar \
./bin/spark-class org.apache.spark.deploy.yarn.Client --jar ./spark-example-1.0.0.jar \
--class SimpleApp --args yarn-standalone  --num-workers 3 --master-memory 1g \
--worker-memory 1g --worker-cores 1

أين يمكنني العثور على السجلات/stderr/stdout؟

هل هناك مكان لضبط التكوين؟لقد وجدت مخرجًا من وحدة التحكم يقول:

14/04/14 18:51:52 معلومات العميل:أمر لـ ApplicationMaster:$JAVA_HOME/bin/java -server -Xmx640m -Djava.io.tmpdir=$PWD/tmp org.apache.spark.deploy.yarn.ApplicationMaster --class SimpleApp --jar ./spark-example-1.0.0.jar --args "غزل مستقل" - ذاكرة العامل 1024 - نوى العامل 1 - عدد العمال 3 1> <LOG_DIR>/stdout 2> <LOG_DIR>/stderr

في هذا السطر لاحظ 1> $LOG_DIR/stdout 2> $LOG_DIR/stderr

أين يمكن ضبط LOG_DIR؟

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

المحلول

مقال جميل لهذا السؤال:

تشغيل الشرارة على الغزل - راجع قسم "تصحيح أخطاء التطبيق الخاص بك".شرح لائق مع جميع الأمثلة المطلوبة.

الشيء الوحيد الذي عليك اتباعه للحصول على خادم محفوظات يعمل بشكل صحيح لـ Spark هو إغلاق سياق Spark في تطبيقك.بخلاف ذلك، لا يراك خادم سجل التطبيقات مكتملًا ولا يعرض أي شيء (على الرغم من إمكانية الوصول إلى واجهة مستخدم السجل ولكنها غير مرئية تمامًا).

نصائح أخرى

يمكنك الوصول إلى السجلات من خلال الأمر

yarn logs -applicationId <application ID> [OPTIONS]

الخيارات العامة هي:

  • appOwner <Application Owner> - AppOwner (يُفترض أنه المستخدم الحالي إذا لم يتم تحديده)
  • containerId <Container ID> - حاوية الحاوية (يجب تحديدها في حالة تحديد عنوان العقدة)
  • nodeAddress <Node Address> -NodeAddress بالتنسيق nodename:port (يجب تحديده إذا تم تحديد معرف الحاوية)

أمثلة:

yarn logs -applicationId application_1414530900704_0003                                      
yarn logs -applicationId application_1414530900704_0003 myuserid

// the user ids are different
yarn logs -applicationId <appid> --appOwner <userid>

لا توضح أي من الإجابات بشكل واضح مكان البحث عن السجلات (على الرغم من أنها مقطعة إلى قطع) لذلك أقوم بتجميعها معًا.

إذا تم تشغيل تجميع السجل (باستخدام Yarn.log-aggregation-enable Yarn-site.xml)، فقم بذلك

yarn logs -applicationId <app ID>

ومع ذلك، إذا لم يتم تشغيل هذا، فيجب على المرء الذهاب إلى جهاز Data-Node وإلقاء نظرة عليه

$HADOOP_HOME/logs/userlogs/application_1474886780074_XXXX/

application_1474886780074_XXXX هو معرف التطبيق

يتم تسجيل الدخول إلى:

/var/log/hadoop-yarn/containers/[application id]/[container id]/stdout

توجد السجلات في كل عقدة تعمل عليها مهمة Spark.

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