2015-09-22 13 views
9

Aniden, YARN kümem çalışmayı durdurdu, gönderdiğim her şey "Çıkış kodu 1" ile başarısız oluyor. Bu sorunu izlemek istiyorum, ancak bir uygulama başarısız olursa, YARN günlük dosyalarını siler. Bu günlük dosyalarını saklamak için YARN için ayarlamam gereken yapılandırma ayarı nedir?YARN'in günlük dosyaları nasıl saklanır?

cevap

18

Bu sizin konteyner çıkış kodu ile çıkılıyor görünüyor 1.

varsayılan olarak, günlük toplama devre dışı olduğu için, UI üzerindeki günlükleri göremiyorsunuz. Aşağıdaki parametre günlük kümelenmesini belirler: "yarn.log-aggregation-enable" (günlük kaydı devre dışı bırakılmışsa "false" olarak ayarlanmıştır). "yarn.nodemanager.log-dizinleri" Bu "yanlış", o zaman tüm düğüm yöneticileri, aşağıdaki konfigürasyon parametreleri ile belirlenir yerel bir dizin, konteyner saklayabilmektedir ayarlanırsa

.

Örneğin;

<property> 
    <name>yarn.nodemanager.log-dirs</name> 
    <value>e:\hdpdata\hadoop\logs</value> 
    </property> 

Yani, belirli bir uygulama için tüm konteyner günlükleri, klasörde bulunacaktır "e: benim durumumda, bu ayarlandığında \ hdpdata Hadoop \ günlükleri \ \ {uygulama id} \ { Uygulama Yöneticisi'nin çalıştığı Düğüm Yöneticisi makinesinde container-id} ".

Uygulamamın "application_1443377528298_0010" hatası olduğunu varsayalım. YARNRM'nin UI'sinde (yarn.resourcemanager.webapp.address yapılandırma parametresi ile belirlenir), Uygulama Yöneticisi'nin çalıştığı düğüm hakkında bilgi alabilirsiniz. Aşağıdaki şekilde, Uygulama Yöneticisi "120243" makinesinde çalıştırılmıştır. Eğer bu makineye giriş ve klasördeki arama yaparsanız enter image description here

"e: \ hdpdata Hadoop \ günlükleri \ \ application_1443377528298_0010 \", uygulama "application_1443377528298_0010" tüm konteynerler için günlüklere görebilirsiniz.

Ancak, şimdi günlükleri YARN RM web kullanıcı arayüzünden görmek istiyorsanız, günlük kümelemeyi etkinleştirmeniz gerekir. Bunun için, iplik-site.xml dosyasını olarak aşağıdaki parametreleri ayarlamak gerekir: Yukarıdaki ayarları ile

<property> 
     <name>yarn.log-aggregation-enable</name> 
     <value>true</value> 
    </property> 
    <property> 
    <name>yarn.nodemanager.remote-app-log-dir</name> 
    <value>/app-logs</value> 
    </property> 
    <property> 
     <name>yarn.nodemanager.remote-app-log-dir-suffix</name> 
     <value>logs</value> 
    </property> 

, günlüklerimde de HDF'ler toplayan "/ app-günlükleri/{username}/günlükleri /" . Bu klasör altında, şu ana kadar çalıştırılan tüm uygulamalar için günlükleri bulabilirsiniz. Yine log tutulması, "yarn.log-aggregation.retain-seconds" konfigürasyon parametresi ile belirlenir (toplanmış günlükleri ne kadar süreyle tutacağı).

MapReduce uygulamaları çalışırken, günlüklere YARN'in web kullanıcı arayüzünden erişebilirsiniz. Uygulama tamamlandığında, günlükler İş Geçmişi Sunucusu aracılığıyla sunulur.

Sizin durumunuzda, Web arabirimindeki günlükleri görmek isterseniz, uygulama sonlandırıldıktan sonra, MapReduce İş Geçmişi sunucusunu da çalıştırmaya başlamanız gerekir.

<property> 
    <name>mapreduce.jobhistory.address</name> 
    <value>{job-history-hostname}:10020</value> 
    </property> 
    <property> 
    <name>mapreduce.jobhistory.webapp.address</name> 
    <value>{job-history-hostname}:19888</value> 
    </property> 

Ve set iplik yerinde yapılandırma parametresi aşağıdaki: Etkinleştirmek için mapred-site.xml dosyasını aşağıdaki yapılandırma parametrelerini ayarlayın.xml:

<property> 
    <name>yarn.log.server.url</name> 
    <value>http://{job-history-hostname}:19888/jobhistory/logs</value> 
    </property> 

Windows'ta HDP yüklemesinden çoğaltma ayarlarını yaptım ve bu ayarlar benim için çalışıyor. Bunlar sizin için de çalışmalıdır.

https://hadoop.apache.org/docs/r2.4.1/hadoop-yarn/hadoop-yarn-common/yarn-default.xml

https://hadoop.apache.org/docs/current/hadoop-mapreduce-client/hadoop-mapreduce-client-core/mapred-default.xml

: Bu, yukarıda belirtilen biçimlerin her birinin tanımı için bakınız bağlantılar