Azure HDInsight kümelerini el ile ölçeklendirme

HDInsight, kümelerinizdeki çalışan düğümlerinin sayısını artırma ve azaltma seçenekleri sayesinde esneklik sağlar. Bu esneklik, bir kümeyi saat veya hafta sonları ile küçültmenize olanak sağlar. Ve yoğun iş taleplerine göre genişletin.

Kümede yeterli kaynak olması için periyodik toplu işlemeden önce kümenizi ölçeklendirin. İşlem tamamlandıktan sonra ve kullanım azaldığında, HDInsight kümesini daha az çalışan düğümü olarak ölçeklendirin.

Aşağıda özetlenen yöntemlerden birini kullanarak bir kümeyi el ile ölçekleyebilirsiniz. Ayrıca, belirli ölçümlere yanıt olarak ölçeği otomatik olarak genişletmek ve daraltmak 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çeklendirmek için 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ındaki HDInsight kümesi bölmesini 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 ölçeği kümesi seçeneği

Bu yöntemlerin herhangi birini kullanarak, HDInsight kümenizi dakikalar içinde yukarı veya aşağı ölçeklendirebilirsiniz.

Önemli

  • Klasik Azure CLı 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 Azurerd modülü kullanım dışıdır. Lütfen mümkün olan her durumda az Module kullanın.

Ölçeklendirme işlemlerinin etkisi

Çalışan HDInsight kümenize düğüm eklediğinizde (ölçeği büyütme), işler etkilenmez. Yeni işler, ölçeklendirme işlemi çalışırken güvenle gönderilebilir. Ölçeklendirme işlemi başarısız olursa, hata kümeniz işlevsel bir durumda bırakılır.

Düğümleri kaldırırsanız (ölçeği Azalt), ö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ı hizmetler yeniden başlatılırken oluşur. Kümeniz el ile ölçeklendirme işlemi sırasında güvenli moda takılmış olabilir.

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 sorunsuzca artırabilirsiniz. İşlem devam ederken yeni işler de gönderilebilir. Ölçeklendirme işlemindeki başarısızlıklar düzgün şekilde işlenir. Küme her zaman işlevsel bir durumda bırakılır.

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

  • Apache HBase

    Çalışırken, HBase kümenize düğümleri sorunsuzca ekleyebilir veya kaldırabilirsiniz. Bölgesel sunucular, ölçeklendirme işleminin tamamlanması birkaç dakika içinde otomatik olarak dengelenir. Ancak bölgesel sunucuları el ile dengeleyebilirsiniz. Küme baş düğümüne ' da 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ği ile çalışmaya başlama.

  • Apache Storm

    Fırtınası çalışırken veri düğümlerini sorunsuzca ekleyebilir veya kaldırabilirsiniz. Ancak, ölçeklendirme işleminin başarılı bir şekilde tamamlandıktan sonra, topolojiyi yeniden dengelemeniz gerekir. Yeniden dengeleme, topolojinin kümedeki yeni düğüm sayısına göre yalnızca paralellik ayarları ayarlamasına olanak tanır. Çalışan topolojileri yeniden dengelemek için aşağıdaki seçeneklerden birini kullanın:

    • Fırtınası Web Kullanıcı arabirimi

      Bir topolojiyi fırtınası Kullanıcı arabirimini kullanarak yeniden dengelemek için aşağıdaki adımları kullanın.

      1. https://CLUSTERNAME.azurehdinsight.net/stormuiWeb tarayıcınızda açın, burada, CLUSTERNAME fırtınası kümenizin adıdır. İstenirse, kümeyi oluştururken belirttiğiniz HDInsight Küme Yöneticisi (yönetici) adını ve parolasını girin.

      2. Yeniden dengelemek istediğiniz topolojiyi seçin, sonra yeniden Dengeleme düğmesini seçin. Yeniden dengeleme işlemi yapılmadan önce gecikme girin.

        HDInsight fırtınası ölçeği yeniden dengeleme

    • Komut satırı arabirimi (CLı) aracı

      sunucuya Bağlan ve bir topolojiyi yeniden dengelemek için aşağıdaki komutu kullanın:

      storm rebalance TOPOLOGYNAME
      

      Ayrıca, ilk olarak topoloji tarafından sağlanmış paralellik ipuçlarını geçersiz kılmak için parametreler belirtebilirsiniz. Örneğin, aşağıdaki kod, mytopology topolojiyi 5 çalışan işlem, mavi-Spout bileşeni için 3 yürütme ve sarı-cıvata bileşeni için 10 yürütme sayısı olarak yeniden yapılandırır.

      ## Reconfigure the topology "mytopology" to use 5 worker processes,
      ## the spout "blue-spout" to use 3 executors, and
      ## the bolt "yellow-bolt" to use 10 executors
      $ storm rebalance mytopology -n 5 -e blue-spout=3 -e yellow-bolt=10
      
  • Kafka

    Ölçeklendirme işlemlerinden sonra bölüm çoğaltmalarını yeniden dengelemeniz gerekir. Daha fazla bilgi için bkz. HDInsight 'ta Apache Kafka verilerin yüksek kullanılabilirliği belgesi.

  • Apache Hive LLAP

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

    • Toplam eşzamanlı sorgu sayısı üst sınırı: hive.server2.tez.sessions.per.default.queue = min(N, 32)
    • Hive 'ın LLAP tarafından kullanılan düğüm sayısı: num_llap_nodes = N
    • Hive LLAP cini çalıştırmak için düğüm sayısı: num_llap_nodes_for_llap_daemons = N

Bir kümenin güvenle ölçeğini azaltma

Çalışan işler ile küme ölçeğini azaltma

Bir ölçek azaltma işlemi sırasında çalışan işlerinizin başarısız olmasına engel olmak için üç şeyi deneyebilirsiniz:

  1. Kümenizin ölçeğini ölçeklendirmeden ö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 bir listesini görmek için, aşağıdaki adımları izleyerek YARN Kaynak Yöneticisi Kullanıcı arabirimini kullanabilirsiniz:

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

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

  3. Ambarı kullanıcı arabiriminden, sol taraftaki menüdeki hizmetler listesinden Yarn ' yi seçin.

  4. YARN sayfasında hızlı bağlantılar ' ı seçin ve etkin baş düğümün üzerine gelin ve Kaynak Yöneticisi Kullanıcı arabirimi' ni seçin.

    Apache ambarı hızlı bağlantılar Kaynak Yöneticisi Kullanıcı arabirimi

Kaynak Yöneticisi Kullanıcı arabirimine doğrudan erişim sağlayabilirsiniz https://<HDInsightClusterName>.azurehdinsight.net/yarnui/hn/cluster .

İşlerin bir listesini geçerli durumuyla birlikte görürsünüz. Ekran görüntüsünde Şu anda çalışan bir iş vardır:

Kaynak Yöneticisi UI uygulamaları

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

yarn application -kill <application_id>

Örnek:

yarn application -kill "application_1499348398273_0003"

Güvenli modda takılıyor

Bir kümenin ölçeğini ölçeklendirirseniz, HDInsight, önce ek çalışan düğümlerin yetkisini almak için Apache ambarı yönetim arabirimlerini kullanır. Düğümler, öbekler bloklarını diğer çevrimiçi çalışan düğümlerine çoğaltır. Bu tarihten sonra HDInsight, kümeyi güvenle ölçeklendirir. , Ölçeklendirme işlemi sırasında güvenli moda gider. Ölçeklendirmenin tamamlanmasının bir kez gelmesi gerekir. Ancak, bazı durumlarda,-çoğaltma altındaki dosya bloğu nedeniyle bir ölçeklendirme işlemi sırasında, bu işlem güvenli modda takıldığında.

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

Beklenen blok kopyası sayısı kullanılabilir olmadığında, bu güvenli moda girer ve ambarı uyarı oluşturur. , Ölçeklendirme işlemi için güvenli mod girebilir. Çoğaltma için gereken düğüm sayısı saptanmıyorsa küme güvenli moda takılmış olabilir.

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

/var/log/hadoop/hdfs/Klasörden, güvenli mod girdiği zamana yaklaşarak, küme ölçeklendiği zaman yakınında, ad düğümü günlüklerini gözden geçirebilirsiniz. Günlük dosyaları adlandırılır Hadoop-hdfs-namenode-<active-headnode-name>.* .

Kök nedeni, Hive 'in sorguları çalıştırırken bir geçici dosyalara göre, IBir güvenli moda girdiğinde Hive, IBU ' ye yazamadığı için sorguları çalıştıramıyorum. Çalışma alanındaki geçici dosyalar, tek tek çalışan düğümü VM 'lerine bağlanmış yerel sürücüde bulunur. Dosyalar, en az üç çoğaltmaındaki diğer çalışan düğümleri arasında çoğaltılır.

HDInsight 'ın güvenli modda takılmasını engelleme

HDInsight 'ın güvenli modda ayrılmasının birkaç yolu vardır:

  • HDInsight 'ı ölçeklendirmeden önce tüm Hive işlerini durdurun. Alternatif olarak, Hive işlerinin çalıştırıldığı ile çakışmaktan kaçınmak için ölçek azaltma sürecini zamanlayın.
  • tmpÖlçeği ölçeklendirmeden önce, Hive 'nin karalama dizin dosyalarını el ile temizleyin.
  • HDInsight 'ı yalnızca üç çalışan düğümüne (minimum) ölçeklendirin. Bir çalışan düğümü kadar düşük bir şekilde gitmemeye özen gösterin.
  • Gerekirse güvenli moddan çıkmak için komutunu çalıştırın.

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

Tüm Hive işlerini durdur

Bir çalışan düğümüne ölçeklendirmeden önce tüm Hive işlerini durdurun. İş yükünüz zamanlanırsa, Hive işi yapıldıktan sonra ölçeği aşağı doğru yürütün.

Ölçeklendirmeden önce Hive işleri durdurulduğunda, tmp klasöründeki (varsa) karalama dosyalarının sayısını en aza indirmenize yardımcı olur.

Hive 'nin karalama dosyalarını el ile Temizleme

Hive geçici dosyaların arkasında bırakılırsa, güvenli moddan kaçınmak için ölçeği ölçeklendirmeden önce bu dosyaları el ile temizleyebilirsiniz.

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

    <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/ herhangi bir dosya içerip içermediğinden onları görüntüleyin:

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

    Dosyalar mevcut olduğunda örnek bir çıktı 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 'nin bu dosyalarla yapıldığını biliyorsanız, bunları kaldırabilirsiniz. Yarn Kaynak Yöneticisi UI sayfasına bakarak Hive 'nin çalışan herhangi bir sorgu içermediğinden emin olun.

    Dosyaları bir sunucudan 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çeklendirin

En az üç çalışan düğümüne ölçeklendirirken kümeleriniz güvenli modda takıldığı takdirde, en az üç çalışan düğümü saklayın.

Üç çalışan düğümünün olması, ölçeklendirmenin yalnızca bir çalışan düğümüne kıyasla daha pahalı olmasını sağlar. Ancak bu eylem, kümenizin güvenli modda takılmasını engeller.

HDInsight 'ı bir çalışan düğümüne kadar ölçeklendirin

Küme, bir düğüme aşağı ölçeklendirildiğinde bile, çalışan düğümü 0 devam eder. Çalışan düğümü 0, hiçbir şekilde kullanımdan kaldırılamıyor.

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

Son seçenek, güvenli mod bırak komutunun yürütülmektir. Bu, çoğaltma altında Hive dosyası nedeniyle güvenli mod olarak girilmişse, güvenli moddan çıkmak için aşağıdaki komutu yürütün:

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

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

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

  1. SSH kullanarak hdınsight 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çeklendirmeyle ilgili belirli bilgiler için, bkz.: