Linux tabanlı HDInsight üzerinde Apache Hadoop YARN uygulama günlüklerine erişme
Azure HDInsight'taki bir Apache Hadoop kümesinde Apache Hadoop YARN (Ancak Başka Bir Kaynak Müzakerecisi) uygulamalarının günlüklerine nasıl erişeceğinizi öğrenin.
Apache YARN nedir?
YARN, kaynak yönetimini uygulama zamanlama/izlemeden ayırma yoluyla birden çok programlama modelini (Apache Hadoop MapReduce bunlardan biri) destekler. YARN genel ResourceManager
(RM), çalışan düğümü başına NodeManagers (NM) ve uygulama başına ApplicationMasters (AM) kullanır. Uygulama başına AM, uygulamanızı RM ile çalıştırmak için kaynakları (CPU, bellek, disk, ağ) belirler. RM, kapsayıcı olarak verilen bu kaynakları vermek için NM'lerle birlikte çalışır. AM, RM tarafından kendisine atanan kapsayıcıların ilerleme durumunu izlemekle sorumludur. Bir uygulama, uygulamanın doğasına bağlı olarak birçok kapsayıcı gerektirebilir.
Her uygulama birden çok uygulama denemelerinden oluşabilir. Bir uygulama başarısız olursa, yeni bir deneme olarak yeniden denenebilir. Her deneme bir kapsayıcıda çalışır. Bir anlamda kapsayıcı, bir YARN uygulaması tarafından yapılan temel iş birimi bağlamını sağlar. Kapsayıcı bağlamında yapılan tüm işler, kapsayıcının verildiği tek çalışan düğümünde yapılır. Daha fazla başvuru için bkz . Hadoop: YARN Uygulamaları Yazma veya Apache Hadoop YARN .
Kümenizi daha büyük işleme aktarım hızını destekleyecek şekilde ölçeklendirmek için, birkaç farklı dil kullanarak Otomatik Ölçeklendirme'yi kullanabilir veya Kümelerinizi el ile ölçeklendirin.
YARN Zaman Çizelgesi Sunucusu
Apache Hadoop YARN Zaman Çizelgesi Sunucusu tamamlanmış uygulamalar hakkında genel bilgiler sağlar
YARN Zaman Çizelgesi Sunucusu aşağıdaki veri türünü içerir:
- Uygulamanın benzersiz tanımlayıcısı olan uygulama kimliği
- Uygulamayı başlatan kullanıcı
- Uygulamayı tamamlamak için yapılan girişimlerle ilgili bilgiler
- Belirli bir uygulama girişimi tarafından kullanılan kapsayıcılar
YARN uygulamaları ve günlükleri
Sorunlu Hadoop uygulamalarında hata ayıklamada uygulama günlükleri (ve ilişkili kapsayıcı günlükleri) kritik öneme sahiptir. YARN, Günlük Toplama ile uygulama günlüklerini toplamak, toplamak ve depolamak için güzel bir çerçeve sağlar.
Günlük Toplama özelliği, uygulama günlüklerine erişimi daha belirleyici hale getirir. Bir çalışan düğümündeki tüm kapsayıcılardaki günlükleri toplar ve bunları çalışan düğümü başına bir toplu günlük dosyası olarak depolar. Uygulama bittikten sonra günlük varsayılan dosya sisteminde depolanır. Uygulamanız yüzlerce veya binlerce kapsayıcı kullanabilir, ancak tek bir çalışan düğümünde çalıştırılan tüm kapsayıcıların günlükleri her zaman tek bir dosyaya toplanır. Bu nedenle, uygulamanız tarafından çalışan düğümü başına yalnızca bir günlük kullanılır. HDInsight kümeleri sürüm 3.0 ve üzerinde Günlük Toplama varsayılan olarak etkinleştirilir. Toplanan günlükler küme için varsayılan depolama alanında yer alır. Aşağıdaki yol, günlüklerin HDFS yoludur:
/app-logs/<user>/logs/<applicationId>
Yolda, user
uygulamayı başlatan kullanıcının adıdır. applicationId
, YARN RM tarafından bir uygulamaya atanan benzersiz tanımlayıcıdır.
Toplanan günlükler, kapsayıcı tarafından dizine alınan bir TFile
ikili biçimde yazıldığı için doğrudan okunamaz. Bu günlükleri, ilgilendiğiniz uygulamalar veya kapsayıcılar için düz metin olarak görüntülemek için YARN ResourceManager
günlüklerini veya CLI araçlarını kullanın.
ESP kümesindeki Yarn günlükleri
Ambari'deki özel mapred-site
öğeye iki yapılandırma eklenmelidir.
Bir web tarayıcısından adresine gidin
https://CLUSTERNAME.azurehdinsight.net
; buradaCLUSTERNAME
kümenizin adıdır.Ambari kullanıcı arabiriminden MapReduce2>Yapılandırmaları>Gelişmiş>Özel mapred-site'ye gidin.
Aşağıdaki özellik kümelerinden birini ekleyin:
1'i ayarla
mapred.acls.enabled=true mapreduce.job.acl-view-job=*
2'i ayarla
mapreduce.job.acl-view-job=<user1>,<user2>,<user3>
Değişiklikleri kaydedin ve etkilenen tüm hizmetleri yeniden başlatın.
YARN CLI araçları
Kümenize bağlanmak için ssh komutunu kullanın. CLUSTERNAME değerini kümenizin adıyla değiştirip komutunu girerek aşağıdaki komutu düzenleyin:
ssh sshuser@CLUSTERNAME-ssh.azurehdinsight.net
Şu anda çalışmakta olan Yarn uygulamalarının tüm uygulama kimliklerini aşağıdaki komutla listeleyin:
yarn top
Günlükleri indirilecek olan sütundaki
APPLICATIONID
uygulama kimliğini not edin.YARN top - 18:00:07, up 19d, 0:14, 0 active users, queue(s): root NodeManager(s): 4 total, 4 active, 0 unhealthy, 0 decommissioned, 0 lost, 0 rebooted Queue(s) Applications: 2 running, 10 submitted, 0 pending, 8 completed, 0 killed, 0 failed Queue(s) Mem(GB): 97 available, 3 allocated, 0 pending, 0 reserved Queue(s) VCores: 58 available, 2 allocated, 0 pending, 0 reserved Queue(s) Containers: 2 allocated, 0 pending, 0 reserved APPLICATIONID USER TYPE QUEUE #CONT #RCONT VCORES RVCORES MEM RMEM VCORESECS MEMSECS %PROGR TIME NAME application_1490377567345_0007 hive spark thriftsvr 1 0 1 0 1G 0G 1628407 2442611 10.00 18:20:20 Thrift JDBC/ODBC Server application_1490377567345_0006 hive spark thriftsvr 1 0 1 0 1G 0G 1628430 2442645 10.00 18:20:20 Thrift JDBC/ODBC Server
Aşağıdaki komutlardan birini çalıştırarak bu günlükleri düz metin olarak görüntüleyebilirsiniz:
yarn logs -applicationId <applicationId> -appOwner <user-who-started-the-application> yarn logs -applicationId <applicationId> -appOwner <user-who-started-the-application> -containerId <containerId> -nodeAddress <worker-node-address>
<Bu komutları çalıştırırken applicationId>, <user-who-started-the-application>, <containerId> ve <worker-node-address> bilgilerini belirtin.
Diğer örnek komutlar
Aşağıdaki komutla tüm uygulama yöneticileri için Yarn kapsayıcı günlüklerini indirin. Bu adım, adlı
amlogs.txt
günlük dosyasını metin biçiminde oluşturur.yarn logs -applicationId <application_id> -am ALL > amlogs.txt
Aşağıdaki komutla yalnızca en son uygulama yöneticisi için Yarn kapsayıcı günlüklerini indirin:
yarn logs -applicationId <application_id> -am -1 > latestamlogs.txt
aşağıdaki komutla ilk iki uygulama yöneticisi için YARN kapsayıcı günlüklerini indirin:
yarn logs -applicationId <application_id> -am 1,2 > first2amlogs.txt
Aşağıdaki komutla tüm Yarn kapsayıcı günlüklerini indirin:
yarn logs -applicationId <application_id> > logs.txt
Aşağıdaki komutla belirli bir kapsayıcı için yarn kapsayıcı günlüğünü indirin:
yarn logs -applicationId <application_id> -containerId <container_id> > containerlogs.txt
YARN ResourceManager
Kullanıcı Arabirimi
YARN ResourceManager
kullanıcı arabirimi küme baş düğümünde çalışır. Ambari web kullanıcı arabirimi aracılığıyla erişilir. YARN günlüklerini görüntülemek için aşağıdaki adımları kullanın:
Web tarayıcınızda adresine
https://CLUSTERNAME.azurehdinsight.net
gidin. CLUSTERNAME değerini HDInsight kümenizin adıyla değiştirin.Soldaki hizmetler listesinden YARN'ı seçin.
Hızlı Bağlantılar açılan listesinden küme baş düğümlerinden birini seçin ve ardından öğesini seçin
ResourceManager Log
.SIZE YARN günlüklerinin bağlantılarının bir listesi sunulur.
Sonraki adımlar
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin