Linux tabanlı HDInsight üzerinde Apache Hadoop hizmetleri için yığın dökümlerini etkinleştirme
Yığın dökümleri, döküm oluşturulduğu sırada değişkenlerin değerleri de dahil olmak üzere uygulamanın belleğinin anlık görüntüsünü içerir. Bu nedenle, çalışma zamanında oluşan sorunları tanılamak için yararlıdır.
Hizmetler
Aşağıdaki hizmetler için yığın dökümlerini etkinleştirebilirsiniz:
- Apache hcatalog - tempelton
- Apache hive - hiveserver2, meta veri deposu, derbyserver
- mapreduce - jobhistoryserver
- Apache yarn - resourcemanager, nodemanager, timelineserver
- Apache hdfs - datanode, secondarynamenode, namenode
Ayrıca, HDInsight tarafından çalıştırılan harita ve azaltma işlemleri için yığın dökümlerini etkinleştirebilirsiniz.
Yığın dökümü yapılandırmasını anlama
Yığın dökümleri, bir hizmet başlatıldığında JVM'ye seçenekler (bazen tercihler veya parametreler olarak da bilinir) geçirilerek etkinleştirilir. Çoğu Apache Hadoop hizmeti için, hizmeti başlatmak için kullanılan kabuk betiğini değiştirerek bu seçenekleri geçirebilirsiniz.
Her betikte, *_OPTS için JVM'ye geçirilen seçenekleri içeren bir dışarı aktarma vardır. Örneğin, hadoop-env.sh betiğinde ile export HADOOP_NAMENODE_OPTS=
başlayan satır NameNode hizmetinin seçeneklerini içerir.
Bu işlemler MapReduce hizmetinin alt işlemi olduğundan eşleme ve azaltma işlemleri biraz farklıdır. Her eşleme veya azaltma işlemi bir alt kapsayıcıda çalışır ve JVM seçeneklerini içeren iki giriş vardır. her ikisi de mapred-site.xml:
- mapreduce.admin.map.child.java.opts
- mapreduce.admin.reduce.child.java.opts
Not
Ambari değişiklikleri kümedeki düğümler arasında çoğaltmayı işlediğinden hem betikleri hem de mapred-site.xml ayarlarını değiştirmek için Apache Ambari kullanmanızı öneririz. Belirli adımlar için Apache Ambari kullanma bölümüne bakın.
Yığın dökümlerini etkinleştirme
Aşağıdaki seçenek bir OutOfMemoryError oluştuğunda yığın dökümlerini etkinleştirir:
-XX:+HeapDumpOnOutOfMemoryError
, + bu seçeneğin etkin olduğunu gösterir. Varsayılan değer devre dışı bırakılmasıdır.
Uyarı
Döküm dosyaları büyük olabileceğinden yığın dökümleri HDInsight'ta Hadoop hizmetleri için varsayılan olarak etkinleştirilmez. Sorun giderme için etkinleştirdiyseniz, sorunu yeniden oluşturup döküm dosyalarını topladıktan sonra devre dışı bırakmayı unutmayın.
Döküm konumu
Döküm dosyasının varsayılan konumu geçerli çalışma dizinidir. Aşağıdaki seçeneği kullanarak dosyanın nerede depolandığını denetleyebilirsiniz:
-XX:HeapDumpPath=/path
Örneğin, kullanmak -XX:HeapDumpPath=/tmp
dökümlerin /tmp dizininde depolanmasına neden olur.
Betikler
Bir OutOfMemoryError oluştuğunda da betiği tetikleyebilirsiniz. Örneğin, hatanın oluştuğundan emin olmak için bir bildirim tetikleme. OutOfMemoryError'da betik tetikleme için aşağıdaki seçeneği kullanın:
-XX:OnOutOfMemoryError=/path/to/script
Not
Apache Hadoop dağıtılmış bir sistem olduğundan, kullanılan tüm betikler hizmetin çalıştığı kümedeki tüm düğümlere yerleştirilmelidir.
Betiğin ayrıca hizmetin çalıştığı hesap tarafından erişilebilen bir konumda olması ve yürütme izinleri sağlaması gerekir. Örneğin, betikleri içinde /usr/local/bin
depolamak ve okuma ve yürütme izinleri vermek için kullanmak chmod go+rx /usr/local/bin/filename.sh
isteyebilirsiniz.
Apache Ambari kullanma
Bir hizmetin yapılandırmasını değiştirmek için aşağıdaki adımları kullanın:
Bir web tarayıcısından adresine gidin
https://CLUSTERNAME.azurehdinsight.net
; buradaCLUSTERNAME
kümenizin adıdır.Soldaki listesini kullanarak değiştirmek istediğiniz hizmet alanını seçin. Örneğin, HDFS. Orta alanda Yapılandırmalar sekmesini seçin.
Filter... girişini kullanarak opts girin. Yalnızca bu metni içeren öğeler görüntülenir.
Yığın dökümlerini etkinleştirmek istediğiniz hizmetin *_OPTS girdisini bulun ve etkinleştirmek istediğiniz seçenekleri ekleyin. Aşağıdaki görüntüde, HADOOP_NAMENODE_OPTS girdisine ekledim
-XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/tmp/
:Not
Harita için yığın dökümlerini etkinleştirirken veya alt işlemi azaltırken, mapreduce.admin.map.child.java.opts ve mapreduce.admin.reduce.child.java.opts adlı alanları arayın.
Değişiklikleri kaydetmek için Kaydet düğmesini kullanın. Değişiklikleri açıklayan kısa bir not girebilirsiniz.
Değişiklikler uygulandıktan sonra, bir veya daha fazla hizmetin yanında Yeniden başlat gerekli simgesi görüntülenir.
Yeniden başlatması gereken her hizmeti seçin ve Bakım Modunu Açmak için Hizmet Eylemleri düğmesini kullanın. Bakım modu, yeniden başlattığınızda hizmetten uyarıların oluşturulmasını engeller.
Bakım modunu etkinleştirdikten sonra Hizmetin Yeniden Başlat düğmesini kullanarak Tümünü Yeniden Başlat Etkin
Not
Yeniden Başlat düğmesinin girişleri diğer hizmetler için farklı olabilir.
Hizmetler yeniden başlatıldıktan sonra Bakım Modunu Kapatmak için Hizmet Eylemleri düğmesini kullanın. Bu Ambari, hizmetle ilgili uyarıları izlemeye devam eder.