Aracılığıyla paylaş


HDInsight ve Azure Data Lake Storage 1. Nesil'de Hive için performans ayarlama kılavuzu

Varsayılan ayarlar, birçok farklı kullanım örneğinde iyi performans sağlayacak şekilde ayarlanmıştır. Yoğun G/Ç kullanan sorgularda Hive, Azure Data Lake Storage 1. Nesil ile daha iyi performans elde etmek için ayarlanabilir.

Önkoşullar

Parametreler

Geliştirilmiş Data Lake Storage 1. Nesil performansı için ayar yapmak için en önemli ayarlar şunlardır:

  • hive.tez.container.size – her görev tarafından kullanılan bellek miktarı

  • tez.grouping.min-size – her eşleştiricinin en küçük boyutu

  • tez.grouping.max boyutlu – her eşleştiricinin maksimum boyutu

  • hive.exec.reducer.bytes.per.reducer – her bir azaltıcının boyutu

hive.tez.container.size - Kapsayıcı boyutu, her görev için kullanılabilir bellek miktarını belirler. Bu, Hive'da eşzamanlılığı denetlemeye yönelik ana giriştir.

tez.grouping.min-size – Bu parametre, her eşleyicinin en küçük boyutunu ayarlamanıza olanak tanır. Tez'in seçtiği eşleyici sayısı bu parametrenin değerinden küçükse, Tez burada ayarlanan değeri kullanır.

tez.grouping.max boyutlu : parametresi, her eşleyicinin boyut üst sınırını ayarlamanıza olanak tanır. Tez'in seçtiği eşleyici sayısı bu parametrenin değerinden büyükse, Tez burada ayarlanan değeri kullanır.

hive.exec.reducer.bytes.per.reducer – Bu parametre her bir azaltıcının boyutunu ayarlar. Varsayılan olarak, her azaltıcı 256 MB'tır.

Rehber

hive.exec.reducer.bytes.per.reducer ayarlayın : Veriler sıkıştırılmadığında varsayılan değer düzgün çalışır. Sıkıştırılmış veriler için, azaltıcının boyutunu azaltmanız gerekir.

set hive.tez.container.size – Her düğümde bellek yarn.nodemanager.resource.memory-mb tarafından belirtilir ve varsayılan olarak HDI kümesinde doğru şekilde ayarlanmalıdır. YARN'da uygun belleği ayarlama hakkında ek bilgi için bu gönderiye bakın.

G/Ç yoğunluklu iş yükleri, Tez kapsayıcı boyutunu azaltarak daha fazla paralellikten yararlanabilir. Bu, kullanıcıya eşzamanlılığı artıran daha fazla kapsayıcı sağlar. Ancak bazı Hive sorguları için önemli miktarda bellek gerekir (örneğin MapJoin). Görevin belleği yeterli değilse, çalışma zamanı sırasında bellek yetersiz özel durumu alırsınız. Yetersiz bellek özel durumları alırsanız, belleği artırmanız gerekir.

Çalışan veya paralellik olan eşzamanlı görev sayısı, toplam YARN belleğiyle sınırlanır. YARN kapsayıcılarının sayısı, kaç eş zamanlı görev çalıştırılacağını belirler. Düğüm başına YARN belleğini bulmak için Ambari'ye gidebilirsiniz. YARN'a gidin ve Yapılandırmalar sekmesini görüntüleyin. YARN belleği bu pencerede görüntülenir.

Toplam YARN belleği = düğümler * Düğüm başına YARN belleği YARN kapsayıcı sayısı = Toplam YARN belleği / Tez kapsayıcı boyutu

Data Lake Storage 1. Nesil kullanarak performansı geliştirmenin anahtarı eşzamanlılığı mümkün olduğunca artırmaktır. Tez, oluşturulması gereken görev sayısını otomatik olarak hesaplar, bu nedenle ayarlamanız gerekmez.

Örnek Hesaplama

8 düğüm D14 kümeniz olduğunu varsayalım.

Toplam YARN belleği = düğümler * Düğüm başına YARN belleği Toplam YARN belleği = 8 düğüm * 96 GB = 768 GB YARN kapsayıcısı sayısı = 768 GB / 3072 MB = 256

Sınırlamalar

Data Lake Storage 1. Nesil azaltma

Data Lake Storage 1. Nesil tarafından sağlanan bant genişliği sınırlarına ulaşmanız durumunda, görev hatalarını görmeye başlarsınız. Bu, görev günlüklerindeki azaltma hataları gözlemlenerek tanımlanabilir. Tez kapsayıcı boyutunu artırarak paralelliği azaltabilirsiniz. İşiniz için daha fazla eşzamanlılığa ihtiyacınız varsa lütfen bizimle iletişime geçin.

Kısıtlama alıp almadığınızdan emin olmak için istemci tarafında hata ayıklama günlüğünü etkinleştirmeniz gerekir. Bunu şu şekilde yapabilirsiniz:

  1. Aşağıdaki özelliği Hive yapılandırmasındaki log4j özelliklerine yerleştirin. Bu işlem Ambari görünümünden yapılabilir: log4j.logger.com.microsoft.azure.datalake.store=DEBUG Yapılandırmanın etkili olması için tüm düğümleri/hizmeti yeniden başlatın.

  2. Kısıtlanıyorsanız, hive günlük dosyasında HTTP 429 hata kodunu görürsünüz. Hive günlük dosyası /tmp/user>/<hive.log

Hive ayarlama hakkında daha fazla bilgi

Hive sorgularınızı ayarlamanıza yardımcı olacak birkaç blog aşağıdadır: