Aracılığıyla paylaş


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.

Uyarı

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:

Fayda Açıklama
PowerShell Az Set-AzHDInsightClusterSize -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ı kümeyi ölçeklendir seçeneği.

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çeklendirdiğinizde), görevler etkilenmez. Ölçeklendirme işlemi devam ederken 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 çıkardığınızda (ölçeği küçülttüğünüzde), ö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. Manuel ö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 zarif bir şekilde ele alınır. 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 bir Apache HBase örneği ile işe başlama.

    Uyarı

    Kafka kümeleri için uygun değildir.

  • Apache Hive LLAP

    HDInsight, N çalışan düğümlerine ölçeklendirdikten sonra aşağıdaki yapılandırmaları otomatik olarak 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 bir kümenin boyutunu küçültme

Ölçek azaltma işlemi sırasında devam eden işlerinizin başarısızlıkla sonuçlanması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 hızlı bağlantıları Resource Manager kullanıcı arabirimi.

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 kullanıcı arabirimi uygulamaları.

Ç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 sıkışmak

Bir kümenin boyutunu küçülttüğünüzde, HDInsight fazla çalışan düğümleri devre dışı bırakmak 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, dosya bloklarının yetersiz çoğaltılması 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. Gerekli düğüm sayısı çoğaltma için algılanmadığında, küme güvenli modda takılma riskiyle karşılaşabilir.

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çeklendirildiği zamana yakın olan /var/log/hadoop/hdfs/ klasöründeki ad düğümü günlüklerini gözden geçirebilirsiniz. Günlük dosyalarının adı Hadoop-hdfs-namenode-<active-headnode-name>.* olarak belirlenmiştir.

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 işçi düğümler arasında en az üç kopya oluşturularak replike edilir.

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

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

  • HDInsight'i küçültmeden önce tüm Hive işlerini durdurun. Alternatif çözüm olarak, Hive işlerini çalıştırmayla çakışmayı önlemek için ölçeği küçültme işlemini zamanlayın.
  • Ölçek küçültme işlemine başlamadan önce HDFS'de Hive'ın geçici tmp dizinindeki dosyaları manuel olarak 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çek küçültme işleminizi yürütün.

Hive işlerini ölçeklendirmeden önce durdurmak, tmp klasöründeki (varsa) geçici dosyaları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 /etc/hive/conf/hive-site.xml içinde ayarlanı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 scratch dizininin içeriğini listeleyin hdfs://mycluster/tmp/hive/ dosya içerip içermediğini görmek için kontrol edin:

    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ümeniz üçten az çalışan düğümüne indirildiğinde sık sık güvenli modda kalıyorsa, en az üç çalışan düğüm bulundurun.

Üç ç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ılıp kalmasını engeller.

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

Kümenin ölçeği bir düğüme düşürülse bile, işçi düğüm 0 yine de varlığını sürdürü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ın. 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: