Hiç İhtiyacın Olmayacak Nihai Impala Hadoop Eğitimi [222]
Yayınlanan: 2020-05-14Impala, Apache Hadoop gibi kümelenmiş platformlar için tasarlanmış açık kaynaklı, yerel bir analitik veritabanıdır. Büyük hacimli verilerin ışık hızında işlenmesini kolaylaştırmak için Hadoop Dağıtılmış Dosya Sisteminin (HDFS) üzerinde çalışan etkileşimli SQL benzeri bir sorgu motorudur. Ayrıca impala, büyük verileri kullanmak için en iyi Hadoop araçlarından biridir. Bugün Impala ile ilgili her şeyden bahsedeceğiz ve bu nedenle bu Impala eğitimini sizin için tasarladık!
Bu Impala Hadoop öğreticisi, Impala'yı öğrenmek isteyenler için özel olarak tasarlanmıştır. Bununla birlikte, bu Impala öğreticisinin maksimum faydasını elde etmek için, SQL'in temelleri ile birlikte Hadoop ve HDFS komutları hakkında derinlemesine bir anlayışa sahip olmanız size yardımcı olacaktır.
İçindekiler
Impala nedir?
Impala, C++ ve Java ile yazılmış bir MPP (Massive Parallel Processing) SQL sorgu motorudur . Birincil amacı, Hadoop kümelerinde depolanan büyük hacimli verileri işlemek. Impala, yüksek performans ve düşük gecikme süresi vaat ediyor ve HDFS'de depolanan verilere erişmenin ve bunları işlemenin en hızlı yolunu sağlamak için en yüksek performanslı SQL motorunu (RDBMS benzeri bir deneyim sunan) bugüne kadar getirdi.
Impala'nın bir başka faydalı yönü, tablo bilgilerinin her iki bileşen arasında paylaşılmasına izin vermek için Hive metastore ile entegre olmasıdır. SQL sorgu biçiminde toplu iş odaklı, uzun süreli işler gerçekleştirmek için mevcut Apache Hive'dan yararlanır. Impala-Hive entegrasyonu, veri işleme için Hive veya Impala olmak üzere iki bileşenden herhangi birini kullanmanıza veya tablo tanımını değiştirmeden tek bir paylaşılan dosya sistemi (HDFS) altında tablolar oluşturmanıza olanak tanır.
Neden İmpala?
Impala, geleneksel bir analitik veritabanının çok kullanıcılı performansını ve SQL desteğini Apache Hadoop'un ölçeklenebilirliği ve esnekliği ile birleştirir. Bunu HDFS, HBase, YARN, Sentry ve Metastore gibi standart Hadoop bileşenlerini kullanarak yapar. Impala, Apache Hive ile aynı meta verileri, kullanıcı arayüzünü (Hue Beeswax), SQL sözdizimini (Hive SQL) ve ODBC (Open Database Connectivity) sürücüsünü kullandığından, toplu odaklı ve gerçek zamanlı sorgular için birleşik ve tanıdık bir platform oluşturur.
Okuyun: Yeni Başlayanlar İçin Büyük Veri Projesi Fikirleri

Impala, Parquet, Avro ve RCFile dahil olmak üzere Hadoop tarafından kullanılan neredeyse tüm dosya biçimlerini okuyabilir. Ayrıca Impala, MapReduce algoritmaları üzerine kurulmamıştır – aynı makinede/makinelerde çalışan sorgu yürütmeyle ilgili her şeyi işleyen ve yöneten arka plan programı işlemlerine dayalı dağıtılmış bir mimari uygular. Sonuç olarak, MapReduce kullanma gecikmesinin azaltılmasına yardımcı olur. Impala'yı Hive'dan çok daha hızlı yapan şey tam olarak budur.
Impala – Özellikler
Impala'nın ana özellikleri şunlardır:
- Apache lisansı altında açık kaynaklı bir SQL sorgu motoru olarak mevcuttur.
- SQL benzeri sorgular kullanarak verilere erişmenizi sağlar.
- Bellek içi veri işlemeyi destekler - Hadoop veri düğümlerinde depolanan verilere erişir ve bunları analiz eder.
- HDFS, Apache HBase ve Amazon s3 gibi depolama sistemlerinde veri depolamanıza olanak tanır.
- Tableau, Pentaho ve Micro stratejisi gibi BI araçlarıyla kolayca entegre olur.
- Sıra Dosyası, Avro, LZO, RCFile ve Parke dahil olmak üzere çeşitli dosya formatlarını destekler.
Impala – Temel Avantajlar
Impala'yı kullanmak, kullanıcılara aşağıdakiler gibi bazı önemli avantajlar sunar:
- Impala, bellek içi veri işlemeyi desteklediğinden (işleme, verilerin bulunduğu yerde gerçekleşir – Hadoop kümesinde), veri dönüştürmeye ve veri taşımaya gerek yoktur.
- HDFS'de veya HBase'de veya Impala ile Amazon s3'te depolanan verilere erişmek için önceden Java (MapReduce işleri) bilgisine ihtiyacınız yoktur - temel SQL sorgularını kullanarak bunlara kolayca erişebilirsiniz.
- Genel olarak, iş araçlarında sorgu yazarken verilerin karmaşık bir çıkarma-dönüştürme-yükleme (ETL) döngüsünden geçmesi gerekir. Ancak Impala ile buna gerek yok. Impala, zaman alan yükleme ve yeniden düzenleme aşamalarını keşif amaçlı veri analizi ve veri keşfi gibi gelişmiş tekniklerle değiştirerek sürecin hızını artırır.
- Impala, veri ambarlarında bulunan büyük ölçekli sorgular için optimize edilmiş sütunlu bir depolama düzeni olan Parquet dosya biçimini kullanma konusunda öncüdür.
Impala – Dezavantajları
Impala'nın sayısız faydaları olmasına rağmen, bazı sınırlamaları da vardır:
- Serileştirme ve seri durumdan çıkarma desteği yoktur.
- Özel ikili dosyaları okuyamaz; sadece metin dosyalarını okuyabilir.
- HDFS'deki veri dizinine her yeni kayıt veya dosya eklendiğinde, veri tablosunu yenilemeniz gerekecektir.
Impala – Mimarlık
Impala, depolama motorundan ayrılmıştır (geleneksel depolama sistemlerinin aksine). Üç ana bileşen içerir – Impala Daemon (Impalad) , Impala StateStore ve Impala Metadata & MetaStore.
Impala Daemon'u
Impala Daemon, diğer adıyla Impala, Impala'nın kurulu olduğu ayrı düğümlerde çalışır. Birden çok arabirimden (Impala kabuğu, Hue tarayıcı vb.) sorguları kabul eder ve bunları işler. Belirli bir düğümdeki bir Impalad'a her sorgu gönderildiğinde, düğüm o sorgu için bir "koordinatör düğümü" olur. Bu şekilde, diğer düğümlerde çalışan Impalad tarafından birden fazla sorgu sunulur.
Sorgular kabul edildiğinde, Impalad veri dosyalarını okuyup yazar ve görevi kümedeki diğer Impala düğümlerine dağıtarak sorguları paralelleştirir. Kullanıcılar, gereksinimlerine bağlı olarak, sorguları atanmış bir Impalad'a veya kümedeki diğer Impalad'a yük dengeli bir şekilde gönderebilir . Bu sorgular daha sonra farklı Impalad örneklerinde işlemeye başlar ve sonucu birincil koordinasyon düğümüne döndürür.
Impala Eyalet Mağazası
Impala StateStore, her Impalad'ın sağlığını izler ve kontrol eder ve ayrıca her Impala Daemon sağlığının sağlık raporunu diğer cinlere aktarır. Impala sunucusunun çalıştığı düğümde veya kümedeki başka bir düğümde çalışabilir. Herhangi bir nedenle düğüm hatası olması durumunda, Impala StateStore diğer tüm düğümleri hatayla ilgili olarak günceller. Böyle bir durumda, diğer Impala cinleri, başarısız olan düğüme başka sorgular atamayı durdurur.
Impala Meta Verileri ve MetaStore
Impala'da tablo tanımları, tablo ve sütun bilgileri vb. dahil olmak üzere tüm önemli bilgiler MetaStore olarak bilinen merkezi bir veritabanında depolanır. Birden çok bölüm içeren önemli miktarda veriyle uğraşırken, tabloya özgü meta veriler elde etmek zorlaşır. Impala'nın kurtarmaya geldiği yer burasıdır. Bireysel Impala düğümleri tüm meta verileri yerel olarak önbelleğe aldığından, belirli bilgileri anında elde etmek kolaylaşır.
Tablo tanımını/tablo verilerini her güncellediğinizde, tüm Impala Daemon'ları belirli bir tabloya karşı yeni bir sorgu yayınlamadan önce en son meta verileri alarak meta veri önbelleklerini güncellemelidir.
Impala – Impala'yı Kurmak
Nasıl Hadoop ve ekosistemini Linux işletim sistemine kurmanız gerekiyorsa, aynısını Impala ile de yapabilirsiniz. Impala'yı ilk gönderen Cloudera olduğundan, Cloudera QuickStart VM aracılığıyla kolayca erişebilirsiniz.
Okuyun: Hadoop Eğitimi
Cloudera QuickStart VM nasıl indirilir
Cloudera QuickStart VM'yi indirmek için aşağıda özetlenen adımları izlemelisiniz.
Aşama 1
Cloudera ana sayfasını açın ( http://www.cloudera.com/ ) ve şöyle bir şey bulacaksınız:
Adım 2
Cloudera'ya kaydolmak için, Hesap Kaydı sayfasını açacak olan "Şimdi Kaydol" seçeneğine tıklamanız gerekir. Cloudera'da zaten kayıtlıysanız, sayfadaki "Oturum Aç" seçeneğine tıklayabilirsiniz ve sizi aşağıdaki gibi oturum açma sayfasına yönlendirecektir:
Aşama 3
Oturum açtıktan sonra, aşağıda gösterildiği gibi sayfanın sol üst köşesindeki “İndirilenler” seçeneğine tıklayarak web sitesinin indirme sayfasını açın:
4. Adım
Bu adımda, aşağıdaki gibi “Şimdi İndir” seçeneğine tıklayarak Cloudera QuickStartVM'yi indirmeniz gerekir:
Şimdi İndir seçeneğine tıklamak sizi QuickStart VM indirme sayfasına yönlendirecektir:
Ardından, ŞİMDİ ALIN seçeneğini seçmeniz, lisans sözleşmesini kabul etmeniz ve aşağıda gösterildiği gibi göndermeniz gerekir:
İndirme işlemi tamamlandıktan sonra, üç farklı Cloudera VM Uyumlu seçeneği bulacaksınız – VMware, KVM ve VIRTUALBOX. Tercih ettiğiniz seçeneği seçebilirsiniz.

Kaynak
Impala – Sorgu İşleme Arayüzleri
Impala, sorguları işlemek için üç arayüz sunar:
Impala-shell – Impala'yı Cloudera VM kullanarak kurduktan ve kurduktan sonra, düzenleyiciye “impala-shell” komutunu yazarak Impala-shell'i etkinleştirebilirsiniz.
Okuyun: Büyük Veri ve Hadoop Arasındaki Fark
Ton arayüzü – Hue tarayıcısı, Impala sorgularını işlemenize olanak tanır. Farklı Impala sorguları yazıp yürütebileceğiniz bir Impala sorgu düzenleyicisine sahiptir. Ancak düzenleyiciyi kullanmak için önce Hue tarayıcısında oturum açmanız gerekir.
ODBC/JDBC sürücüleri – Her veritabanında olduğu gibi, Impala da ODBC/JDBC sürücüleri sunar. Bu sürücüler, onları destekleyen programlama dilleri (ODBC/JDBC sürücüleri) aracılığıyla Impala'ya bağlanmanıza ve aynı programlama dillerini kullanarak Impala'da sorguları işleyen uygulamalar oluşturmanıza olanak tanır.
Sorgu Yürütme Prosedürü
Herhangi bir Impala arabirimini kullanarak bir sorgu ilettiğinizde, kümedeki bir Impalad genellikle sorgunuzu kabul eder. Bu Impalad daha sonra söz konusu sorgunun koordinatör düğümü olur. Koordinatör, sorguyu aldıktan sonra, Hive Metastore'dan Tablo Şemasını kullanarak sorgunun uygun olup olmadığını doğrular.
Bundan sonra, sorgu yürütmesi için gereken verilerin konumu hakkında HDFS ad düğümünden bilgi toplar ve sorgu yürütmeyi kolaylaştırmak için bu bilgileri hiyerarşideki diğer Impalad'lara iletir. Impalad'lar belirtilen veri bloğunu okuduktan sonra sorguyu işler. Kümedeki tüm Impalad'lar sorguyu işlediğinde, koordinatör düğüm sonucu toplar ve size iletir.
Impala Kabuk Komutları
Hive Shell'e aşina iseniz, her ikisi de oldukça benzer bir yapıyı paylaştığından Impala Shell'i kolayca anlayabilirsiniz - bunlar veritabanları ve tablolar oluşturmaya, veri eklemeye ve sorgular yayınlamaya izin verir. Impala Shell komutları üç geniş kategoriye ayrılır: genel komutlar, sorguya özel seçenekler ve tabloya ve veritabanına özel seçenekler.
Genel Komutlar
- Yardım Edin
Yardım komutu, Impala'da bulunan faydalı komutların bir listesini sunar.
[quickstart.cloudera:21000] > yardım;
Belgelenmiş komutlar (help <konu> yazın):
================================================= ======
hesapla tarif ekle set ayarlanmamış sürümle birlikte
bağlan açıkla çık çık değerleri göster kullan
geçmiş profilinden çık kabuk ipucunu seç
Belgelenmemiş komutlar:
=========================================
değiştir açıklama oluştur bırak yardım yükle özeti
- sürüm
Bu komut size Impala'nın güncel sürümünü sağlar.
[quickstart.cloudera:21000] > sürüm;
Kabuk sürümü: Impala Shell v2.3.0-cdh5.5.0 (0c891d7) 9 Kasım Pzt'de oluşturuldu
12:18:12 PST 2015
Sunucu sürümü: impalad sürümü 2.3.0-cdh5.5.0 RELEASE (derleme
0c891d79aa38f297d244855a32f1e17280e2129b)
- Tarih
Bu komut, Impala Shell'de yürütülen son on komutu görüntüler.
[quickstart.cloudera:21000] > geçmiş;
[1]:sürüm;
[2]:yardım;
[3]: veritabanlarını göster;
[4]: my_db'yi kullan;
[5]:geçmiş;
- bağlamak
Bu komut, belirli bir Impala örneğine bağlanmaya yardımcı olur. Herhangi bir örnek belirtmezseniz, varsayılan olarak 21000 numaralı varsayılan bağlantı noktasına bağlanacaktır.
[quickstart.cloudera:21000] > bağlan;
Quickstart.cloudera'ya bağlandı:21000
Sunucu sürümü: impalad sürümü 2.3.0-cdh5.5.0 RELEASE (derleme
0c891d79aa38f297d244855a32f1e17280e2129b)
- çıkmak/çıkmak
Adından da anlaşılacağı gibi, çıkış/çıkma komutu Impala Kabuğundan çıkmanıza izin verir.
[quickstart.cloudera:21000] > çıkış;
güle güle bulutlar
Sorguya Özgü Seçenekler
- izah etmek
Bu komut, belirli bir sorgu için yürütme planını döndürür.
[quickstart.cloudera:21000] > örnekten * seçimini açıklayın;
Sorgu: örnekten seçim * açıklayın
+———————————————————————————+
| Dizeyi Açıkla
|
+———————————————————————————+
| Tahmini Ana Bilgisayar Başına Gereksinimler: Bellek = 48.00MB VCores = 1
|
| UYARI: Aşağıdaki tablolarda ilgili tablo ve/veya sütun istatistikleri eksik. |
| my_db.müşteriler |
| 01:DEĞİŞİM [BÖLÜMLENMEMİŞ]
|
| 00:SCAN HDFS [my_db.customers] |
| bölümler = 1/1 dosya = 6 boyut = 148B |
+———————————————————————————+
0,17 saniyede 7 satır getirildi
- profil
Bu komut, en son/en son sorgu hakkında alt düzey bilgileri görüntüler. Bir sorgunun teşhisi ve performans ayarı için kullanılır.
[ hızlı başlangıç . cloudera : 21000 ] > profil ;
Sorgu Çalışma Zamanı Profili :
Sorgu ( id = 164b1294a1049189 : a67598a6699e3ab6 ):
Özet :
Oturum Kimliği : e74927207cd752b5 : 65ca61e630ad3ad
Seans Tipi : MUM
Başlangıç Zamanı : 2016 – 04 – 17 23 : 49 : 26.08148000 Bitiş Zamanı : 2016 – 04 – 17 23 : 49 : 26.2404000
Sorgu Türü : AÇIKLAMA
Sorgu Durumu : BİTTİ
Sorgu Durumu : Tamam
Impala Sürümü : impalad sürümü 2.3 . 0 – cdh5 . 5.0 YAYINLAMA ( 0c891d77280e2129b oluşturun )
kullanıcı cloudera _
Bağlı Kullanıcı : cloudera
Yetkilendirilen Kullanıcı :
Ağ Adresi : 10.0 . 2.15 : 43870
Varsayılan Db : my_db
Sql Açıklaması : örnekten seçim * açıklayın _
Koordinatör : hızlı başlangıç . bulut dönemi : 22000
: 0ns
Sorgu Zaman Çizelgesi : 167.304ms
– Yürütmeyi başlat : 41.292us ( 41.292us ) – Planlama tamamlandı : 56.42ms ( 56.386ms )
– Mevcut satırlar : 58.247ms ( 1.819ms )
– İlk satır getirildi : 160.72ms ( 101.824ms )
– Kayıt silme sorgusu : 166.325ms ( 6.253ms )
ImpalaSunucusu :
– ClientFetchWaitTimer : 107.969ms
– RowMaterializationTimer : 0ns
Tablo ve Veritabanına Özgü Seçenekler
- değiştirmek
alter komutu, bir tablonun yapısını ve adını değiştirmeye yardımcı olur.
- betimlemek
Açıklama komutu, bir tablonun meta verilerini sağlar. Sütunlar ve veri türleri gibi bilgileri içerir.
- düşürmek
Drop komutu, tablo, görünüm veya veritabanı işlevi olabilen bir yapının kaldırılmasına yardımcı olur.
- sokmak
Insert komutu, bir tabloya veri (sütunlar) eklemeye ve mevcut bir tablonun verilerini geçersiz kılmaya yardımcı olur.
- Seçme
Select komutu, belirli bir veri kümesi üzerinde belirli bir işlemi gerçekleştirmek için kullanılabilir. Genellikle eylemin tamamlanacağı veri kümesinden bahseder.
- göstermek
show komutu, tablolar ve veritabanları gibi çeşitli yapıların meta deposunu görüntüler.
- kullanmak
use komutu, belirli bir veritabanının mevcut bağlamını değiştirmeye yardımcı olur.
Impala – Yorumlar
Impala'da yorumlar SQL dilindekilere benzer. Tipik olarak, iki tür yorum vardır:
Tek satırlık yorumlar
“-” ile takip edilen her satır Impala'da bir yorum haline gelir.
- Merhaba, upGrad'a hoş geldiniz.
Çok satırlı yorumlar
/* ve */ arasındaki tüm satırlar Impala'da çok satırlı yorumlardır.
/*
Merhaba bu bir örnek

Impala'daki çok satırlı yorumların
*/
Çözüm
Bu ayrıntılı Impala öğreticisinin, karmaşıklıklarını ve nasıl çalıştığını anlamanıza yardımcı olacağını umuyoruz.
Büyük Veri hakkında daha fazla bilgi edinmek istiyorsanız, çalışan profesyoneller için tasarlanmış ve 7+ vaka çalışması ve proje sağlayan, 14 programlama dili ve aracını kapsayan, pratik uygulamalı Büyük Veride Yazılım Geliştirme Uzmanlığı programında PG Diplomamıza göz atın çalıştaylar, en iyi firmalarla 400 saatten fazla titiz öğrenim ve işe yerleştirme yardımı.
Dünyanın En İyi Üniversitelerinden Online Yazılım Geliştirme Kursları öğrenin . Kariyerinizi hızlandırmak için Yönetici PG Programları, Gelişmiş Sertifika Programları veya Yüksek Lisans Programları kazanın.
