Azure HDInsight kümelerini el ile ölçeklendirme

HDInsight, kümelerinizdeki çalışan düğümlerinin ölçeğini artırma ve azaltma seçenekleriyle esneklik sağlar. Bu esneklik, bir kümeyi saatler sonra veya hafta sonları küçültmenizi sağlar. İş taleplerinin en yoğun olduğu zamanlarda da genişletin.

Kümenin yeterli kaynaklara sahip olması için düzenli toplu işlemden önce kümenizin ölçeğini büyütün. İşleme tamamlandıktan ve kullanım azaltıldıktan sonra HDInsight kümesinin ölçeğini daha az çalışan düğümüne düşürebilirsiniz.

Aşağıdaki yöntemlerden birini kullanarak bir kümeyi el ile ölçeklendirin. Ayrıca, belirli ölçümlere yanıt olarak ölçeği otomatik olarak büyütmek ve küçültmek için otomatik ölçeklendirme seçeneklerini de kullanabilirsiniz.

Not

Yalnızca HDInsight sürüm 3.1.3 veya üzeri olan kümeler desteklenir. Kümenizin sürümünden emin değilseniz Özellikler sayfasını kontrol edebilirsiniz.

Kümeleri ölçeklendirmeye yönelik yardımcı programlar

Microsoft, kümeleri ölçeklendirmek için aşağıdaki yardımcı programları sağlar:

Yardımcı Program Açıklama
PowerShell Az Set-AzHDInsightClusterSize -ClusterName CLUSTERNAME -TargetInstanceCount NEWSIZE
PowerShell AzureRM Set-AzureRmHDInsightClusterSize -ClusterName CLUSTERNAME -TargetInstanceCount NEWSIZE
Azure CLI az hdinsight resize --resource-group RESOURCEGROUP --name CLUSTERNAME --workernode-count NEWSIZE
Azure Klasik CLI azure hdinsight cluster resize CLUSTERNAME NEWSIZE
Azure portalı HDInsight küme bölmenizi açın, sol taraftaki menüden Küme boyutu'nu seçin, ardından Küme boyutu bölmesinde çalışan düğümlerinin sayısını yazın ve Kaydet'i seçin.

Azure portal scale cluster option.

Bu yöntemlerden herhangi birini kullanarak HDInsight kümenizin ölçeğini dakikalar içinde artırıp azaltabilirsiniz.

Önemli

  • Klasik Azure CLI kullanım dışıdır ve yalnızca klasik dağıtım modeliyle kullanılmalıdır. Diğer tüm dağıtımlar için Azure CLI'yi kullanın.
  • PowerShell AzureRM modülü kullanım dışıdır. Mümkün olduğunda Az modülünü kullanın.

Ölçeklendirme işlemlerinin etkisi

Çalışan HDInsight kümenize düğüm eklediğinizde (ölçeği artırdığınızda), işler etkilenmez. Ölçeklendirme işlemi çalışırken yeni işler güvenle gönderilebilir. Ölçeklendirme işlemi başarısız olursa, hata kümenizi işlevsel durumda bırakır.

Düğümleri kaldırırsanız (ölçeği küçültürseniz), ölçeklendirme işlemi tamamlandığında bekleyen veya çalışan işler başarısız olur. Bu hata, ölçeklendirme işlemi sırasında bazı hizmetlerin yeniden başlatılmasından kaynaklanır. El ile ölçeklendirme işlemi sırasında kümeniz güvenli modda takılabilir.

Veri düğümlerinin sayısını değiştirmenin etkisi, HDInsight tarafından desteklenen her küme türü için farklılık gösterir:

  • Apache Hadoop

    Çalışan bir Hadoop kümesindeki çalışan düğümlerinin sayısını herhangi bir işi etkilemeden sorunsuz bir şekilde artırabilirsiniz. İşlem devam ederken yeni işler de gönderilebilir. Ölçeklendirme işlemindeki hatalar düzgün bir şekilde işlenir. Küme her zaman işlevsel bir durumda bırakılır.

    Hadoop kümesinin ölçeği daha az veri düğümüyle azaltıldığında, bazı hizmetler yeniden başlatılır. Bu davranış, tüm çalışan ve bekleyen işlerin ölçeklendirme işlemi tamamlandığında başarısız olmasına neden olur. Ancak, işlem tamamlandıktan sonra işleri yeniden gönderebilirsiniz.

  • Apache HBase

    HBase kümeniz çalışırken sorunsuz bir şekilde düğüm ekleyebilir veya kaldırabilirsiniz. Bölgesel Sunucular, ölçeklendirme işlemi tamamlandıktan sonra birkaç dakika içinde otomatik olarak dengelenir. Ancak bölgesel sunucuları el ile dengeleyebilirsiniz. Küme baş düğümünde oturum açın ve aşağıdaki komutları çalıştırın:

    pushd %HBASE_HOME%\bin
    hbase shell
    balancer
    

    HBase kabuğunu kullanma hakkında daha fazla bilgi için bkz . HDInsight'ta Apache HBase örneğini kullanmaya başlama.

  • Kafka

    Ölçeklendirme işlemlerinden sonra bölüm çoğaltmalarını yeniden dengelemeniz gerekir. Daha fazla bilgi için HDInsight üzerinde Apache Kafka ile yüksek kullanılabilirlik belgesine bakın.

  • Apache Hive LLAP

    Çalışan düğümlerine N ölçeklendirdikten sonra HDInsight otomatik olarak aşağıdaki yapılandırmaları ayarlar ve Hive'ı yeniden başlatır.

    • Toplam Eşzamanlı Sorgu Sayısı: hive.server2.tez.sessions.per.default.queue = min(N, 32)
    • Hive LLAP tarafından kullanılan düğüm sayısı: num_llap_nodes = N
    • Hive LLAP daemon çalıştırmak için düğüm sayısı: num_llap_nodes_for_llap_daemons = N

Kümenin ölçeğini güvenli bir şekilde azaltma

Çalışan işlerle kümenin ölçeğini azaltma

Ölçek azaltma işlemi sırasında çalışan işlerinizin başarısız olmasını önlemek için üç şey deneyebilirsiniz:

  1. Kümenizin ölçeğini küçültmeden önce işlerin tamamlanmasını bekleyin.
  2. İşleri el ile sonlandırın.
  3. Ölçeklendirme işlemi tamamlandıktan sonra işleri yeniden gönderin.

Bekleyen ve çalışan işlerin listesini görmek için YARN Resource Manager kullanıcı arabirimini aşağıdaki adımları izleyerek kullanabilirsiniz:

  1. Azure portalda kümenizi seçin. Küme yeni bir portal sayfasında açılır.

  2. Ana görünümden Küme panoları>Ambari giriş sayfasına gidin. Küme kimlik bilgilerinizi girin.

  3. Ambari kullanıcı arabiriminden sol taraftaki menüden hizmetler listesinde YARN'ı seçin.

  4. YARN sayfasında Hızlı Bağlantılar'ı seçin ve etkin baş düğümün üzerine gelin ve Resource Manager kullanıcı arabirimi'ni seçin.

    Apache Ambari quick links Resource Manager UI.

Resource Manager kullanıcı arabirimine ile https://<HDInsightClusterName>.azurehdinsight.net/yarnui/hn/clusterdoğrudan erişebilirsiniz.

İşlerin listesini ve geçerli durumlarını görürsünüz. Ekran görüntüsünde şu anda çalışan bir iş var:

Resource Manager UI applications.

Çalışan uygulamayı el ile sonlandırmak için SSH kabuğundan aşağıdaki komutu yürütebilirsiniz:

yarn application -kill <application_id>

Örneğin:

yarn application -kill "application_1499348398273_0003"

Güvenli modda takılıyor

Bir kümenin ölçeğini azalttığınızda HDInsight, ek çalışan düğümlerinin yetkisini almak için Apache Ambari yönetim arabirimlerini kullanır. Düğümler HDFS bloklarını diğer çevrimiçi çalışan düğümlerine çoğaltır. Bundan sonra HDInsight, kümenin ölçeğini güvenli bir şekilde küçültür. HDFS, ölçeklendirme işlemi sırasında güvenli moda geçer. Ölçeklendirme tamamlandıktan sonra HDFS'nin çıkması gerekir. Ancak bazı durumlarda HDFS, çoğaltmanın altında dosya bloğu nedeniyle ölçeklendirme işlemi sırasında güvenli modda takılır.

Varsayılan olarak, HDFS her dosya dfs.replication bloğunun kaç kopyasının kullanılabilir olduğunu denetleyen 1 ayarıyla yapılandırılır. Dosya bloğunun her kopyası kümenin farklı bir düğümünde depolanır.

Beklenen sayıda blok kopyası kullanılamadığında, HDFS güvenli moda girer ve Ambari uyarılar oluşturur. HDFS, ölçeklendirme işlemi için güvenli moda girebilir. Çoğaltma için gerekli düğüm sayısı algılanmamışsa küme güvenli modda takılabilir.

Güvenli mod açıkken oluşan örnek hatalar

org.apache.hadoop.hdfs.server.namenode.SafeModeException: Cannot create directory /tmp/hive/hive/819c215c-6d87-4311-97c8-4f0b9d2adcf0. Name node is in safe mode.
org.apache.http.conn.HttpHostConnectException: Connect to active-headnode-name.servername.internal.cloudapp.net:10001 [active-headnode-name.servername. internal.cloudapp.net/1.1.1.1] failed: Connection refused

Kümenin ne zaman güvenli moda girdiğini görmek için, kümenin ölçeklendirilildiği zamana yakın klasördeki ad düğümü günlüklerini /var/log/hadoop/hdfs/ gözden geçirebilirsiniz. Günlük dosyaları olarak adlandırılır Hadoop-hdfs-namenode-<active-headnode-name>.*.

Bunun kök nedeni Hive'ın sorguları çalıştırırken HDFS'deki geçici dosyalara bağımlı olmasıdır. HDFS güvenli moda girdiğinde Hive, HDFS'ye yazamadığından sorgu çalıştıramaz. HDFS'deki geçici dosyalar, tek tek çalışan düğümü VM'lerine bağlı yerel sürücüde bulunur. Dosyalar diğer çalışan düğümleri arasında en az üç çoğaltmada çoğaltılır.

HDInsight'ın güvenli modda takılmasını önleme

HDInsight'ın güvenli modda bırakılmasını önlemenin birkaç yolu vardır:

  • HDInsight ölçeğini azaltmadan önce tüm Hive işlerini durdurun. Alternatif olarak, Hive işlerini çalıştırmayla çakışmayı önlemek için ölçeği azaltma işlemini zamanlayın.
  • Ölçeği küçültmeden önce HDFS'de Hive'ın karalama tmp dizini dosyalarını el ile temizleyin.
  • HDInsight ölçeğini en az üç çalışan düğümüne düşürebilir. Bir çalışan düğümü kadar düşük gitmekten kaçının.
  • Gerekirse güvenli moddan çıkmak için komutunu çalıştırın.

Aşağıdaki bölümlerde bu seçenekler açıklanmaktadır.

Tüm Hive işlerini durdurma

Bir çalışan düğümüne ölçeklendirmeden önce tüm Hive işlerini durdurun. İş yükünüz zamanlanmışsa Hive işi tamamlandıktan sonra ölçeği azaltma işlemini yürütür.

Ölçeklendirmeden önce Hive işlerini durdurun, tmp klasöründeki (varsa) karalama dosyalarının sayısını en aza indirmeye yardımcı olur.

Hive'ın karalama dosyalarını el ile temizleme

Hive geçici dosyaları geride bıraktıysa, güvenli moddan kaçınmak için ölçeği azaltmadan önce bu dosyaları el ile temizleyebilirsiniz.

  1. Yapılandırma özelliğine bakarak Hive geçici dosyaları için hangi konumun hive.exec.scratchdir kullanıldığını denetleyin. Bu parametre içinde /etc/hive/conf/hive-site.xmlayarlanır:

    <property>
        <name>hive.exec.scratchdir</name>
        <value>hdfs://mycluster/tmp/hive</value>
    </property>
    
  2. Hive hizmetlerini durdurun ve tüm sorguların ve işlerin tamamlandığından emin olun.

  3. Yukarıda bulunan karalama dizininin içeriğini listeleyin ve hdfs://mycluster/tmp/hive/ dosya içerip içermediğini denetleyin:

    hadoop fs -ls -R hdfs://mycluster/tmp/hive/hive
    

    Dosyalar mevcut olduğunda örnek bir çıkış aşağıda verilmiştir:

    sshuser@scalin:~$ hadoop fs -ls -R hdfs://mycluster/tmp/hive/hive
    drwx------   - hive hdfs          0 2017-07-06 13:40 hdfs://mycluster/tmp/hive/hive/4f3f4253-e6d0-42ac-88bc-90f0ea03602c
    drwx------   - hive hdfs          0 2017-07-06 13:40 hdfs://mycluster/tmp/hive/hive/4f3f4253-e6d0-42ac-88bc-90f0ea03602c/_tmp_space.db
    -rw-r--r--   3 hive hdfs         27 2017-07-06 13:40 hdfs://mycluster/tmp/hive/hive/4f3f4253-e6d0-42ac-88bc-90f0ea03602c/inuse.info
    -rw-r--r--   3 hive hdfs          0 2017-07-06 13:40 hdfs://mycluster/tmp/hive/hive/4f3f4253-e6d0-42ac-88bc-90f0ea03602c/inuse.lck
    drwx------   - hive hdfs          0 2017-07-06 20:30 hdfs://mycluster/tmp/hive/hive/c108f1c2-453e-400f-ac3e-e3a9b0d22699
    -rw-r--r--   3 hive hdfs         26 2017-07-06 20:30 hdfs://mycluster/tmp/hive/hive/c108f1c2-453e-400f-ac3e-e3a9b0d22699/inuse.info
    
  4. Hive'ın bu dosyalarla yapıldığını biliyorsanız, bunları kaldırabilirsiniz. Yarn Resource Manager kullanıcı arabirimi sayfasına bakarak Hive'da çalışan sorgu olmadığından emin olun.

    HDFS'den dosyaları kaldırmak için örnek komut satırı:

    hadoop fs -rm -r -skipTrash hdfs://mycluster/tmp/hive/
    

HDInsight'ı üç veya daha fazla çalışan düğümüne ölçeklendirme

Kümeleriniz üçten az çalışan düğümüne indirildiğinde sık sık güvenli modda takılıyorsa en az üç çalışan düğümü tutun.

Üç çalışan düğümüne sahip olmak, ölçeği yalnızca bir çalışan düğümüne küçültmekten daha maliyetlidir. Ancak, bu eylem kümenizin güvenli modda takılmasını engeller.

HDInsight'ı bir çalışan düğümüne düşürme

Kümenin ölçeği bir düğüme düşürülse bile çalışan düğümü 0 hala hayatta kalır. Çalışan düğümü 0 hiçbir zaman kullanımdan kaldırılamaz.

Güvenli moddan çıkmak için komutunu çalıştırın

Son seçenek, güvenli moddan çık komutunu yürütmektir. HDFS, Hive dosyası alt çoğaltması nedeniyle güvenli moda girdiyse, güvenli moddan çıkmak için aşağıdaki komutu yürütebilirsiniz:

hdfs dfsadmin -D 'fs.default.name=hdfs://mycluster/' -safemode leave

Apache HBase kümesinin ölçeğini azaltma

Bölge sunucuları, ölçeklendirme işlemi tamamlandıktan sonra birkaç dakika içinde otomatik olarak dengelenir. Bölge sunucularını el ile dengelemek için aşağıdaki adımları tamamlayın:

  1. SSH kullanarak HDInsight kümesine Bağlan. Daha fazla bilgi için bkz. HDInsight ile SSH kullanma.

  2. HBase kabuğunu başlatın:

    hbase shell
    
  3. Bölge sunucularını el ile dengelemek için aşağıdaki komutu kullanın:

    balancer
    

Sonraki adımlar

HDInsight kümenizi ölçeklendirme hakkında belirli bilgiler için bkz: