Aracılığıyla paylaş


HDInsight kümesi için günlükleri yönetme

HDInsight kümesi çeşitli günlük dosyaları oluşturur. Örneğin, Apache Hadoop ve Apache Spark gibi ilgili hizmetler ayrıntılı iş yürütme günlükleri oluşturur. Günlük dosyası yönetimi, iyi durumdaki bir HDInsight kümesini korumanın bir parçasıdır. Günlük arşivleme için mevzuat gereksinimleri de olabilir. Günlük dosyalarının sayısı ve boyutu nedeniyle günlük depolama ve arşivlemenin iyileştirilmesi hizmet maliyeti yönetimine yardımcı olur.

HDInsight küme günlüklerini yönetme, küme ortamının tüm yönleriyle ilgili bilgilerin saklanmasını içerir. Bu bilgiler ilişkili tüm Azure Hizmeti günlüklerini, küme yapılandırmasını, iş yürütme bilgilerini, hata durumlarını ve gerektiğinde diğer verileri içerir.

HDInsight günlük yönetimindeki tipik adımlar şunlardır:

  • 1. Adım: Günlük saklama ilkelerini belirleme
  • 2. Adım: Küme hizmeti sürümleri yapılandırma günlüklerini yönetme
  • 3. Adım: Küme işi yürütme günlük dosyalarını yönetme
  • 4. Adım: Günlük birimi depolama boyutlarını ve maliyetlerini tahmin edin
  • 5. Adım: Günlük arşiv ilkelerini ve işlemlerini belirleme

1. Adım: Günlük saklama ilkelerini belirleme

HDInsight kümesi günlük yönetimi stratejisi oluşturmanın ilk adımı, iş senaryoları ve iş yürütme geçmişi depolama gereksinimleri hakkında bilgi toplamaktır.

Küme ayrıntıları

Aşağıdaki küme ayrıntıları, günlük yönetimi stratejinizde bilgi toplamaya yardımcı olmak için yararlıdır. Bu bilgileri belirli bir Azure hesabında oluşturduğunuz tüm HDInsight kümelerinden toplayın.

  • Küme adı
  • Küme bölgesi ve Azure kullanılabilirlik bölgesi
  • Son durum değişikliğinin ayrıntıları da dahil olmak üzere küme durumu
  • Ana, çekirdek ve görev düğümleri için belirtilen HDInsight örneklerinin türü ve sayısı

Bu üst düzey bilgilerin çoğunu Azure portalını kullanarak alabilirsiniz. Alternatif olarak, HDInsight kümeleriniz hakkında bilgi almak için Azure CLI'yı kullanabilirsiniz:

az hdinsight list --resource-group <ResourceGroup>
az hdinsight show --resource-group <ResourceGroup> --name <ClusterName>

Bu bilgileri görüntülemek için PowerShell'i de kullanabilirsiniz. Daha fazla bilgi için bkz . Azure PowerShell kullanarak HDInsight'ta Apache Hadoop kümelerini yönetme.

Kümelerinizde çalışan iş yüklerini anlama

Her tür için uygun günlük stratejileri tasarlamak için HDInsight kümelerinizde çalışan iş yükü türlerini anlamanız önemlidir.

  • İş yükleri deneysel mi (geliştirme veya test gibi) yoksa üretim kalitesi mi?
  • Üretim kalitesindeki iş yükleri normalde ne sıklıkta çalışır?
  • İş yüklerinden herhangi biri yoğun kaynak kullanıyor ve/veya uzun süre çalışıyor mu?
  • İş yüklerinden herhangi biri, birden çok günlük türünün oluşturulduğu karmaşık bir Hadoop hizmetleri kümesi kullanıyor mu?
  • İş yüklerinden herhangi birinin ilişkili mevzuat yürütme kökeni gereksinimleri var mı?

Örnek günlük saklama desenleri ve uygulamaları

  • Her günlük girdisine bir tanımlayıcı ekleyerek veya diğer tekniklerle veri kökeni izlemesini korumayı göz önünde bulundurun. Bu, verilerin özgün kaynağını ve işlemi izlemenize ve tutarlılığını ve geçerliliğini anlamak için her aşamada verileri izlemenize olanak tanır.

  • Kümeden veya birden fazla kümeden günlükleri nasıl toplayabileceğinizi ve bunları denetim, izleme, planlama ve uyarı gibi amaçlarla nasıl harmanlayabileceğinizi düşünün. Günlük dosyalarına düzenli olarak erişmek ve bunları indirmek ve bunları birleştirip analiz ederek bir pano görüntüsü sağlamak için özel bir çözüm kullanabilirsiniz. Güvenlik veya hata algılama için uyarı için başka özellikler de ekleyebilirsiniz. PowerShell, HDInsight SDK'ları veya klasik Azure dağıtım modeline erişen kodu kullanarak bu yardımcı programları oluşturabilirsiniz.

  • İzleme çözümünün veya hizmetin yararlı bir avantaj olup olmayacağını göz önünde bulundurun. Microsoft System Center bir HDInsight yönetim paketi sağlar. Günlükleri toplamak ve merkezileştirmek için Apache Chukwa ve Ganglia gibi üçüncü taraf araçları da kullanabilirsiniz. Birçok şirket Hadoop tabanlı büyük veri çözümlerini izlemek için hizmetler sunar; örneğin: Centerity, Compuware APM, Sematext SPM ve Zettaset Orchestrator.

2. Adım: Küme hizmeti sürümlerini yönetme ve günlükleri görüntüleme

Tipik bir HDInsight kümesi çeşitli hizmetler ve açık kaynak yazılım paketleri (Apache HBase, Apache Spark vb.) kullanır. Biyoinformatikler gibi bazı iş yüklerinde, iş yürütme günlüklerine ek olarak hizmet yapılandırma günlüğü geçmişini tutmanız gerekebilir.

Ambari kullanıcı arabirimiyle küme yapılandırma ayarlarını görüntüleme

Apache Ambari, web kullanıcı arabirimi ve REST API sağlayarak HDInsight kümesinin yönetimini, yapılandırmasını ve izlenmesini basitleştirir. Ambari, Linux tabanlı HDInsight kümelerine dahil edilir. Azure portalı HDInsight sayfasında Küme Panosu bölmesini seçerek Küme Panoları bağlantı sayfasını açın. Ardından, Ambari kullanıcı arabirimini açmak için HDInsight kümesi pano bölmesini seçin. Küme oturum açma kimlik bilgileriniz istenir.

Hizmet görünümlerinin listesini açmak için HDInsight için Azure portalı sayfasında Ambari Görünümleri bölmesini seçin. Bu liste, yüklediğiniz kitaplıklara bağlı olarak değişir. Örneğin YARN Kuyruk Yöneticisi, Hive Görünümü ve Tez Görünümü'nü görebilirsiniz. Yapılandırma ve hizmet bilgilerini görmek için herhangi bir hizmet bağlantısını seçin. Ambari UI Yığını ve Sürümü sayfası, küme hizmetlerinin yapılandırması ve hizmet sürümü geçmişi hakkında bilgi sağlar. Ambari kullanıcı arabiriminin bu bölümüne gitmek için Yönetici menüsünü ve ardından Yığınlar ve Sürümler'i seçin. Hizmet sürümü bilgilerini görmek için Sürümler sekmesini seçin.

Apache Ambari admin Stack and Versions.

Ambari kullanıcı arabirimini kullanarak kümedeki belirli bir konakta (veya düğümde) çalışan tüm (veya tüm) hizmetlerin yapılandırmasını indirebilirsiniz. Konaklar menüsünü ve ardından ilgili konağın bağlantısını seçin. Bu konağın sayfasında Konak Eylemleri düğmesini ve ardından İstemci Yapılandırmalarını İndir'i seçin.

Apache Ambari download host client configs.

Betik eylem günlüklerini görüntüleme

HDInsight betik eylemleri , el ile veya belirtildiğinde bir kümede betik çalıştırır. Örneğin, betik eylemleri kümeye başka yazılımlar yüklemek veya yapılandırma ayarlarını varsayılan değerlerden değiştirmek için kullanılabilir. Betik eylem günlükleri, küme kurulumu sırasında oluşan hatalara ve ayrıca yapılandırma ayarlarının küme performansını ve kullanılabilirliğini etkileyebilecek değişikliklerine ilişkin içgörüler sağlayabilir. Betik eyleminin durumunu görmek için Ambari kullanıcı arabiriminizdeki ops düğmesini seçin veya varsayılan depolama hesabındaki durum günlüklerine erişin. Depolama günlüklerine adresinden /STORAGE_ACCOUNT_NAME/DEFAULT_CONTAINER_NAME/custom-scriptaction-logs/CLUSTER_NAME/DATEulaşabilirsiniz.

Ambari uyarıları durum günlüklerini görüntüleme

Apache Ambari uyarı durumu değişikliklerini öğesine ambari-alerts.logyazar. Tam yol şeklindedir /var/log/ambari-server/ambari-alerts.log. Günlükte hata ayıklamayı etkinleştirmek için Değiştir'deki /etc/ambari-server/conf/log4j.properties. bir özelliği değiştirin ve şunun altındaki girdiyi yazın # Log alert state changes :

log4j.logger.alerts=INFO,alerts

to

log4j.logger.alerts=DEBUG,alerts

3. Adım: Küme işi yürütme günlük dosyalarını yönetme

Sonraki adım, çeşitli hizmetler için iş yürütme günlüğü dosyalarını gözden geçirmektir. Hizmetler Apache HBase, Apache Spark ve daha birçok hizmet içerebilir. Hadoop kümesi çok sayıda ayrıntılı günlük oluşturur, bu nedenle hangi günlüklerin yararlı olduğunu (ve hangilerinin yararlı olmadığını) belirlemek zaman alabilir. Günlük sisteminin anlaşılması, günlük dosyalarının hedefli yönetimi için önemlidir. Aşağıdaki görüntü örnek bir günlük dosyasıdır.

HDInsight example log file sample output.

Hadoop günlük dosyalarına erişme

HDInsight, günlük dosyalarını hem küme dosya sisteminde hem de Azure Depolama depolar. Kümeye bir SSH bağlantısı açıp dosya sistemine göz atarak veya uzak baş düğüm sunucusundaki Hadoop YARN Durum portalını kullanarak kümedeki günlük dosyalarını inceleyebilirsiniz. Azure Depolama'dan verilere erişebilen ve verileri indirebilen araçlardan herhangi birini kullanarak Azure Depolama günlük dosyalarını inceleyebilirsiniz. AzCopy, CloudXplorer ve Visual Studio Sunucu Gezgini buna örnek olarak verilebilir. Azure blob depolamadaki verilere erişmek için PowerShell ve Azure Depolama İstemci kitaplıklarını veya Azure .NET SDK'larını da kullanabilirsiniz.

Hadoop, kümedeki çeşitli düğümlerde görev denemesi olarak işlerin çalışmasını çalıştırır. HDInsight, önce tamamlanmayan diğer görev girişimlerini sonlandırarak kurgusal görev girişimleri başlatabilir. Bu, denetleyici, stderr ve syslog günlük dosyalarına anında kaydedilen önemli bir etkinlik oluşturur. Ayrıca, aynı anda birden çok görev denemesi çalıştırılır, ancak günlük dosyası sonuçları yalnızca doğrusal olarak görüntüleyebilir.

Azure Blob depolamaya yazılan HDInsight günlükleri

HDInsight kümeleri, Azure PowerShell cmdlet'leri veya .NET iş gönderim API'leri kullanılarak gönderilen herhangi bir iş için Azure Blob depolama hesabına görev günlükleri yazacak şekilde yapılandırılır. İşleri SSH aracılığıyla kümeye gönderirseniz, yürütme günlüğü bilgileri önceki bölümde açıklandığı gibi Azure Tablolarında depolanır.

HDInsight tarafından oluşturulan çekirdek günlük dosyalarına ek olarak YARN gibi yüklü hizmetler de iş yürütme günlük dosyaları oluşturur. Günlük dosyalarının sayısı ve türü yüklü hizmetlere bağlıdır. Yaygın hizmetler Apache HBase, Apache Spark vb. hizmetleridir. Kümenizde kullanılabilen genel günlük dosyalarını anlamak için her hizmetin iş günlüğü yürütme dosyalarını araştırın. Her hizmetin günlük dosyalarını depolamak için kendi benzersiz günlük yöntemleri ve konumları vardır. Örneğin, en yaygın hizmet günlüğü dosyalarına (YARN'dan) erişmeye yönelik ayrıntılar aşağıdaki bölümde açıklanmıştır.

YARN tarafından oluşturulan HDInsight günlükleri

YARN, bir çalışan düğümündeki tüm kapsayıcılardaki günlükleri toplar ve bu günlükleri çalışan düğümü başına tek bir toplu günlük dosyası olarak depolar. Bu günlük, bir uygulama tamamlandıktan sonra 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 dosyada toplanır. 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.

/app-logs/<user>/logs/<applicationId>

Toplanan günlükler, kapsayıcı tarafından dizinlenmiş ikili TFile 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.

YARN CLI araçları

YARN CLI araçlarını kullanmak için önce SSH kullanarak HDInsight kümesine bağlanmanız gerekir. <applicationId>Bu komutları çalıştırırken , <user-who-started-the-application>, <containerId>ve <worker-node-address> bilgilerini belirtin. Aşağıdaki komutlardan biriyle 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>

YARN Resource Manager Kullanıcı Arabirimi

YARN Resource Manager kullanıcı arabirimi küme baş düğümünde çalışır ve 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:

  1. Web tarayıcısında adresine https://CLUSTERNAME.azurehdinsight.netgidin. CLUSTERNAME değerini HDInsight kümenizin adıyla değiştirin.
  2. Soldaki hizmetler listesinden YARN'ı seçin.
  3. Hızlı Bağlantılar açılan listesinden küme baş düğümlerinden birini ve ardından Resource Manager günlükleri'ni seçin. SIZE YARN günlüklerinin bağlantılarının bir listesi sunulur.

4. Adım: Günlük birimi depolama boyutlarını ve maliyetlerini tahmin edin

Önceki adımları tamamladıktan sonra, HDInsight kümelerinizin ürettiği günlük dosyalarının türlerini ve birimlerini anlamış olursunuz.

Ardından, belirli bir süre boyunca anahtar günlük depolama konumlarındaki günlük verilerinin hacmini analiz edin. Örneğin, 30-60-90 günlük dönemlerde hacmi ve büyümeyi analiz edebilirsiniz. Bu bilgileri bir elektronik tabloya kaydedin veya Visual Studio, Azure Depolama Gezgini veya Excel için Power Query gibi diğer araçları kullanın. ```

Artık anahtar günlükleri için günlük yönetimi stratejisi oluşturmak için yeterli bilgiye sahipsiniz. İleride hem günlük boyutunun büyümesini hem de günlük depolama Azure hizmet maliyetlerini tahmin etmek için elektronik tablonuzu (veya seçtiğiniz aracı) kullanın. Ayrıca, incelediğiniz günlük kümesi için günlük saklama gereksinimlerini de göz önünde bulundurun. Böylece, hangi günlük dosyalarının silinebileceğini (varsa) ve hangi günlüklerin saklanıp daha ucuz Azure Depolama arşivlenmesi gerektiğini belirledikten sonra gelecekteki günlük depolama maliyetlerini kaydedebilirsiniz.

5. Adım: Günlük arşiv ilkelerini ve işlemlerini belirleme

Hangi günlük dosyalarının silinebileceğini belirledikten sonra, belirli bir süre sonunda günlük dosyalarını otomatik olarak silmek için birçok Hadoop hizmetinde günlük parametrelerini ayarlayabilirsiniz.

Belirli günlük dosyaları için daha düşük fiyatlı günlük dosyası arşivleme yaklaşımını kullanabilirsiniz. Azure Resource Manager etkinlik günlükleri için Azure portalını kullanarak bu yaklaşımı keşfedebilirsiniz. HDInsight örneğiniz için Azure portalında Etkinlik Günlüğü bağlantısını seçerek Resource Manager günlüklerinin arşivlemeyi ayarlayın. Etkinlik Günlüğü arama sayfasının üst kısmında Dışarı Aktar menü öğesini seçerek Dışarı Aktar etkinlik günlüğü bölmesini açın. Aboneliği, bölgeyi, depolama hesabına dışarı aktarılıp aktarılmayacağını ve günlüklerin kaç gün tutulduğunu doldurun. Aynı bölmede, olay hub'ına dışarı aktarılıp aktarılmayacağını da belirtebilirsiniz.

Azure portal export activity log preview.

Alternatif olarak, PowerShell ile günlük arşivleme betiği oluşturabilirsiniz.

Azure Depolama ölçümlerine erişme

Azure Depolama depolama işlemlerini ve erişimini günlüğe kaydedecek şekilde yapılandırılabilir. Bu ayrıntılı günlükleri kapasite izleme ve planlama ve depolamaya yönelik denetim istekleri için kullanabilirsiniz. Günlüğe kaydedilen bilgiler gecikme süresi ayrıntılarını içerir ve çözümlerinizin performansını izlemenize ve bunlara ince ayar yapmanızı sağlar. Bir HDInsight kümesinin verilerini tutan Azure Depolama için oluşturulan günlük dosyalarını incelemek için Hadoop için .NET SDK'sını kullanabilirsiniz.

Eski günlük dosyalarının yedekleme dizinlerinin boyutunu ve sayısını denetleme

Tutulan günlük dosyalarının boyutunu ve sayısını denetlemek için aşağıdaki özelliklerini RollingFileAppenderayarlayın:

  • maxFileSize , dosyanın toplandığı kritik dosya boyutudur. Varsayılan değer 10 MB'tır.
  • maxBackupIndex oluşturulacak yedekleme dosyalarının sayısını (varsayılan 1) belirtir.

Diğer günlük yönetimi teknikleri

Disk alanının dolmasını önlemek için logrotate gibi bazı işletim sistemi araçlarını kullanarak günlük dosyalarının işlenmesini yönetebilirsiniz. Günlük olarak çalışacak şekilde yapılandırabilir logrotate , günlük dosyalarını sıkıştırabilir ve eskilerini kaldırabilirsiniz. Yaklaşımınız, günlük dosyalarının yerel düğümlerde ne kadar süreyle tutulacakları gibi gereksinimlerinize bağlıdır.

Ayrıca, çıkış günlüğü boyutunu büyük ölçüde artıran bir veya daha fazla hizmet için HATA AYıKLAMA günlüğünün etkinleştirilip etkinleştirilmediğini de de de kontrol edebilirsiniz.

Günlükleri tüm düğümlerden tek bir merkezi konuma toplamak için, tüm günlük girdilerini Solr'a alma gibi bir veri akışı oluşturabilirsiniz.

Sonraki adımlar