Impala - Mimari
Impala, Hadoop kümesindeki bir dizi sistemde çalışan bir MPP (Büyük Paralel İşleme) sorgu yürütme motorudur. Geleneksel depolama sistemlerinden farklı olarak impala, depolama motorundan ayrılmıştır. Impala daemon (Impalad) , Impala Statestore ve Impala metadata veya metastore olmak üzere üç ana bileşeni vardır .
Impala arka plan programı ( Impalad )
Impala daemon (aynı zamanda impalad) Impala'nın kurulu olduğu her düğümde çalışır. Impala kabuğu, ton tarayıcı vb. Gibi çeşitli arayüzlerden gelen sorguları kabul eder ve işler.
Belirli bir düğümdeki bir impalad'a sorgu gönderildiğinde, bu düğüm bir "coordinator node"Bu sorgu için. Impalad tarafından başka düğümlerde de birden çok sorgu sunulur . Sorguyu kabul ettikten sonra, Impalad veri dosyalarını okur ve yazar ve işi Impala kümesindeki diğer Impala düğümlerine dağıtarak sorguları paralelleştirir. Sorgular çeşitli Impalad örneklerinde işlenirken , hepsi sonucu merkezi koordinasyon düğümüne döndürür.
Gereksinime bağlı olarak, sorgular özel bir Impalad'a veya kümenizdeki başka bir Impalad'a yük dengeli bir şekilde gönderilebilir .
Impala Eyalet Mağazası
Impala, her Impalad'ın sağlığını kontrol etmekten ve ardından her Impala arka plan programının sağlığını diğer arka plan programlarına sık sık iletmekten sorumlu olan Impala State store adında başka bir önemli bileşene sahiptir . Bu, Impala sunucusunun veya küme içindeki diğer düğümün çalıştığı aynı düğümde çalışabilir.
Impala State depo arka plan programı sürecinin adı State depolanır . Impalad , sağlık durumunu Impala State mağaza arka plan programına, yani depolanan State'e bildirir .
Herhangi bir nedenle bir düğüm arızası durumunda, Statestore bu başarısızlıkla ilgili diğer tüm düğümleri günceller ve böyle bir bildirim diğer impalad için kullanılabilir olduğunda, başka hiçbir Impala arka plan programı etkilenen düğüme başka sorgu atamaz.
Impala Meta Veri ve Meta Mağazası
Impala meta verileri ve meta deposu bir başka önemli bileşendir. Impala, tablo tanımlarını depolamak için geleneksel MySQL veya PostgreSQL veritabanlarını kullanır. Tablo ve sütun bilgileri ve tablo tanımları gibi önemli ayrıntılar, meta depo olarak bilinen merkezi bir veritabanında saklanır.
Her Impala düğümü, tüm meta verileri yerel olarak önbelleğe alır. Oldukça büyük miktarda veri ve / veya çok sayıda bölümle uğraşırken, tabloya özel meta verileri elde etmek önemli miktarda zaman alabilir. Bu nedenle, yerel olarak depolanan bir meta veri önbelleği, bu tür bilgilerin anında sağlanmasına yardımcı olur.
Bir tablo tanımı veya tablo verileri güncellendiğinde, diğer Impala arka plan programları söz konusu tabloya karşı yeni bir sorgu göndermeden önce en son meta verileri alarak meta veri önbelleklerini güncellemelidir.
Sorgu İşleme Arayüzleri
Impala, sorguları işlemek için aşağıda listelendiği gibi üç arayüz sağlar.
Impala-shell - Cloudera VM'yi kullanarak Impala'yı kurduktan sonra, komutu yazarak Impala kabuğunu başlatabilirsiniz. impala-shelleditörde. İlerleyen bölümlerde Impala kabuğu hakkında daha fazla tartışacağız.
Hue interface- Impala sorgularını Hue tarayıcısını kullanarak işleyebilirsiniz. Hue tarayıcısında, impala sorgularını yazıp çalıştırabileceğiniz Impala sorgu düzenleyiciniz vardır. Bu düzenleyiciye erişmek için öncelikle Hue tarayıcısında oturum açmanız gerekir.
ODBC/JDBC drivers- Tıpkı diğer veritabanları gibi, Impala da ODBC / JDBC sürücüleri sağlar. Bu sürücüleri kullanarak, bu sürücüleri destekleyen programlama dilleri aracılığıyla impala'ya bağlanabilir ve bu programlama dillerini kullanarak sorguları impala'da işleyen uygulamalar oluşturabilirsiniz.
Sorgu Yürütme Prosedürü
Kullanıcılar sağlanan arayüzlerden herhangi birini kullanarak bir sorguyu geçtiklerinde, bu, kümedeki Impalad'lardan biri tarafından kabul edilir. Bu Impalad, söz konusu sorgu için bir koordinatör olarak değerlendirilir.
Sorguyu aldıktan sonra, sorgu koordinatörü şunu kullanarak sorgunun uygun olup olmadığını doğrular. Table SchemaHive meta mağazasından. Daha sonra sorguyu yürütmek için gerekli olan verinin konumu hakkındaki bilgileri HDFS isim düğümünden toplar ve bu bilgiyi sorguyu yürütmek için diğer impalad'lara gönderir.
Diğer tüm Impala arka plan programları, belirtilen veri bloğunu okur ve sorguyu işler. Tüm arka plan yordamları görevlerini tamamlar tamamlamaz, sorgu koordinatörü sonucu geri toplar ve kullanıcıya iletir.