Hive, sektörde yaygın olarak kullanılan bir Büyük Veri Analitiği aracıdır ve Büyük Veri konusunda yeniyseniz başlamak için harika bir yerdir. Bu Apache Hive dersi, Apache Hive'ın temellerini, bir kovanın neden gerekli olduğunu, özelliklerini ve bilmeniz gereken diğer her şeyi anlatır.
Önce Apache Hive'ın üzerine kurulduğu Hadoop çerçevesini anlayalım.
Apache Hadoop'u
Apache Hadoop ücretsiz ve açık kaynak boyutu gigabayttan petabayta kadar değişen büyük veri kümelerini depolamak ve işlemek için platform. Hadoop, verileri depolamak ve analiz etmek için tek bir büyük bilgisayara ihtiyaç duymak yerine, devasa veri kümelerini paralel olarak analiz etmek için çok sayıda bilgisayarın kümelenmesine izin verir.
MapReduce ve Hadoop Dağıtılmış Dosya Sistemi iki bileşendir:
- Harita indirgeme – MapReduce, emtia donanım kümelerinde büyük hacimli organize, yarı yapılandırılmış ve yapılandırılmamış verileri işlemek için paralel bir programlama tekniğidir.
- HDFS – HDFS (Hadoop Dağıtılmış Dosya Sistemi), verileri depolayan ve işleyen bir Hadoop çerçeve bileşenidir. Standart donanım üzerinde çalışan, hataya dayanıklı bir dosya sistemidir.
Hadoop modüllerine yardımcı olmak için Sqoop, Pig ve Hive dahil olmak üzere Hadoop ekosistemindeki farklı alt projeler (araçlar) kullanılır.
- kovan – Hive, MapReduce hesaplamalarını gerçekleştiren SQL stili komut dosyaları yazmak için bir çerçevedir.
- Domuz – Pig, MapReduce süreçleri için bir komut dosyası oluşturmak için kullanılabilecek prosedürel bir programlama dilidir.
- kepçe – Sqoop, HDFS ve RDBMS arasında veri almak ve vermek için bir araçtır.
Nedir Apaçi Kovanı?
Apache Hive bir açık kaynaktır veri ambarı Doğrudan Apache Hadoop Dağıtılmış Dosya Sisteminde (HDFS) veya Apache HBase gibi diğer veri depolama sistemlerinde depolanan büyük veri kümelerini okuma, yazma ve yönetme programı.
SQL geliştiricileri, normal SQL ifadeleriyle karşılaştırılabilir veri sorgusu ve analizi için Hive Query Language (HQL) ifadeleri oluşturmak için Hive'ı kullanabilir. Uzun Java kodunu öğrenme ve yazma ihtiyacını ortadan kaldırarak MapReduce programlamayı kolaylaştırmak için oluşturuldu. Bunun yerine, sorgularınızı HQL'de yazabilirsiniz ve Hive haritayı oluşturacak ve işlevleri sizin için azaltacaktır.
Apache Hive'ın SQL benzeri arayüzü, geçici aramalar yapmak, Hadoop verilerini özetlemek ve analiz etmek için Altın Standart haline geldi. Buluta dahil edildiğinde bilgi işlem ağları, bu çözüm özellikle uygun maliyetli ve ölçeklenebilir, bu nedenle Netflix ve Amazon dahil birçok firma Apache Hive'ı geliştirmeye ve iyileştirmeye devam ediyor.
Tarihçe
Facebook'ta geçirdikleri süre boyunca Joydeep Sen Sarma ve Ashish Itsoo, Apache Hive'ı birlikte yarattı. İkisi de Hadoop'tan en iyi şekilde yararlanmak için oldukça karmaşık Java Map-Reduce görevleri oluşturmaları gerektiğini anladı. Hızla genişleyen mühendislik ve analitik ekiplerini, şirket genelinde Hadoop'tan yararlanmak için ihtiyaç duyacakları beceriler konusunda eğitemeyeceklerini anladılar. Mühendisler ve analistler sıklıkla SQL'i bir kullanıcı arayüzü olarak kullandılar.
SQL, analitik ihtiyaçlarının çoğunu karşılayabilirken, geliştiriciler ayrıca Hadoop'un programlanabilirliğini de dahil etmeyi amaçladılar. Apache Hive şu iki hedeften doğdu: SQL'in yeterli olmadığı durumlarda geliştiricilerin kendi komut dosyalarını ve programlarını getirmelerini sağlayan SQL tabanlı bir bildirim dili.
Ayrıca, veriye dayalı organizasyonların inşasını kolaylaştırmak için şirketteki tüm veri kümeleri hakkında merkezi meta verileri (Hadoop tabanlı) tutmak için geliştirilmiştir.
Apache Hive nasıl çalışır?
Özetle, Apache Hive, HiveQL (SQL benzeri) dilinde yazılmış bir giriş programını bir veya daha fazla Java MapReduce, Tez veya Spark görevine dönüştürür. (Bu yürütme motorlarının tümü Hadoop YARN ile uyumludur.) Bundan sonra, Apache Hive, verileri Hadoop Dağıtılmış Dosya Sistemi HDFS'si için tablolar halinde düzenler ve bir yanıt almak için görevleri bir kümede gerçekleştirir.
Veri
Apache Hive tabloları, boyut olarak büyükten küçüğe değişen veri birimleriyle ilişkisel bir veritabanındaki tablolarla aynı şekilde düzenlenir. Veritabanları, bölümlere ayrılmış ve ayrıca kovalara bölünmüş tablolardan oluşur. HiveQL (Hive Query Language), değiştirilebilen veya eklenebilen verilere erişmek için kullanılır. Tablo verileri her veritabanında serileştirilir ve her tablonun kendi HDFS dizini vardır.
mimari
Şimdi Hive Architecture'ın en önemli yönünden bahsedeceğiz. Apache Hive'ın bileşenleri aşağıdaki gibidir:
meta mağaza — Her tablonun yapısı ve konumu gibi bilgileri takip eder. Bölüm meta verileri de aynı şekilde Hive'a dahil edilmiştir. Bu, sürücünün kümeye yayılmış farklı veri kümelerinin ilerlemesini takip etmesine olanak tanır. Veriler, geleneksel bir RDBMS formatında saklanır. Hive meta verileri, sürücünün verileri takip etmesi için son derece önemlidir. Yedekleme sunucusu, veri kaybı durumunda kurtarılabilmesi için verileri düzenli olarak çoğaltır.
Sürücü – HiveQL ifadeleri, denetleyici işlevi gören bir sürücü tarafından alınır. Sürücü, oturumlar kurarak ifadenin yürütülmesini başlatır. Yöneticinin ömrünü ve ilerlemesini takip eder. Bir HiveQL ifadesinin yürütülmesi sırasında sürücü, gerekli meta verileri kaydeder. Ayrıca, Azaltma işlemini takiben bir veri veya sorgu sonucu toplama noktası görevi görür.
derleyici – HiveQL sorgu derlemesini yürütür. Sorgu şimdi bir yürütme planına dönüştürülür. Görevler planda listelenir. Ayrıca, sorgu tarafından çevrildiği şekliyle sonucu elde etmek için MapReduce'un atması gereken adımları da içerir. Sorgu, Hive'ın derleyicisi (AST) tarafından bir Soyut Sözdizimi Ağacına dönüştürülür. Uyumluluk ve derleme zamanı hatalarını (DAG) kontrol ettikten sonra AST'yi Yönlendirilmiş Döngüsel Grafiğe dönüştürür.
Doktoru – Yürütme planında farklı değişiklikler yaparak DAG'ı optimize eder. Birleşimlerin bir ardışık düzenini tek bir birleşime dönüştürmek gibi gelişmiş verimlilik için dönüşümleri birleştirir. Hızı artırmak için optimize edici, bir azaltma işlemi gerçekleştirmeden önce verilere dönüştürme uygulamak gibi etkinlikleri bölebilir.
vasiyet hükümlerini gerçekleştiren erkek – Yürütücü, derleme ve optimizasyon bittiğinde görevleri çalıştırır. İşler, Yürütücü tarafından boru hattına aktarılır.
CLI, UI ve Thrift Sunucusu – Komut satırı arabirimi (CLI), harici bir kullanıcının Hive ile iletişim kurmasını sağlayan bir kullanıcı arabirimidir. Hive'ın tasarruf sunucusu, JDBC veya ODBC protokollerine benzer şekilde, harici istemcilerin bir ağ üzerinden Hive ile iletişim kurmasını sağlar.
Güvenlik
Apache Hive, istemci-sunucu karşılıklı kimlik doğrulaması için Kerberos kullanan Hadoop güvenliği ile entegredir. HDFS, Apache Hive'da yeni oluşturulan dosyalar için izinleri belirleyerek kullanıcı, grup ve diğerleri tarafından onaylanmanıza olanak tanır.
anahtar özellikler
- Hive, verileri HDFS'de depolamadan işlemenize izin veren harici tabloları destekler.
- Ayrıca hızı artırmak için tablo düzeyinde veri segmentasyonu sağlar.
- Apache Hive, Hadoop'un düşük seviyeli arayüz ihtiyacını mükemmel bir şekilde karşılar.
- Hive, veri özetlemeyi, sorgulamayı ve analizi kolaylaştırır.
- HiveQL herhangi bir programlama becerisi gerektirmez; SQL sorgularının basit bir şekilde anlaşılması yeterlidir.
- Hive'ı veri analizi için geçici sorgular yürütmek için de kullanabiliriz.
- Ölçeklenebilir, tanıdık ve uyarlanabilir.
- HiveQL herhangi bir programlama becerisi gerektirmez; SQL sorgularının basit bir şekilde anlaşılması yeterlidir.
Faydaları
Apache Hive, gün sonu raporlarına, günlük işlem değerlendirmelerine, geçici aramalara ve veri analizine izin verir. Apache Hive tarafından sağlanan kapsamlı bilgiler, önemli rekabet avantajları sağlar ve pazar taleplerine yanıt vermenizi kolaylaştırır.
Bu tür bilgilere kolayca erişilebilmesinin yararlarından bazıları şunlardır:
- Kullanım kolaylığı – SQL benzeri diliyle, verileri sorgulamanın anlaşılması kolaydır.
- Hızlandırılmış veri ekleme — Apache Hive, tablo türünü veya şema tanımını doğrulamadan şemayı okuduğundan, verilerin veritabanının dahili biçiminde okunması, ayrıştırılması ve diske serileştirilmesi gerekmez. Buna karşılık, geleneksel bir veritabanında, veriler her eklendiğinde doğrulanmalıdır.
- Üstün ölçeklenebilirlik, esneklik ve maliyet etkinliği – Veriler HDFS'de depolandığından, Apache Hive 100'lerce petabayt veri tutabilir ve bu da onu tipik bir veritabanından çok daha ölçeklenebilir bir seçenek haline getirir. Bulut tabanlı bir Hadoop hizmeti olarak Apache Hive, müşterilerin değişen iş yüklerini karşılamak için sanal sunucuları hızla açıp kapatmasına olanak tanır.
- Kapsamlı çalışma kapasitesi – Büyük veri kümeleri saatte 100,000 sorguya kadar işleyebilir.
Sınırlamalar
- Genel olarak, Apache Hive sorguları çok yüksek gecikme süresine sahiptir.
- Alt sorgu desteği sınırlıdır.
- Gerçek zamanlı sorgular ve satır düzeyinde değişiklikler Apache Hive'da mevcut değildir.
- Gerçekleştirilmiş görünümler için destek yoktur.
- Kovanda güncelleme ve silme işlemleri desteklenmez.
- OLTP (çevrimiçi geçiş süreci) için tasarlanmamıştır.
Apache Hive'ı kullanmaya başlama
Apache Hive, iş akışlarınızı basitleştiren ve kolaylaştıran güçlü bir Hadoop iş ortağıdır. Apache Hive'dan en iyi şekilde yararlanmak için sorunsuz entegrasyon şarttır. İlk adım, şuraya gitmek Web sitesi.
1. Bir Kararlı Sürümden Kurulum Kovanı
Hive'ın en son kararlı sürümünü Apache indirme aynalarından birinden indirerek başlayın (bkz. Kovan Sürümleri). Tarball daha sonra ambalajından çıkarılmalıdır. Bu, Hive-xyz (burada xyz, sürüm numarasıdır) adlı bir alt klasör oluşturacaktır:
HIVE_HOME ortam değişkenini kurulum dizinini gösterecek şekilde ayarlayın:
Son olarak, dosyanıza $HIVE_HOME/bin ekleyin. PATH
:
2. Çalışan Kovan
Hive, Hadoop'u kullanır, yani:
- yolunuzda Hadoop olmalı VEYA
3. DLL İşlemi
Kovan Tablosu Oluşturma
ilki bir tamsayı ve ikincisi bir dize olan iki sütunlu pokes adında bir tablo oluşturur.
Tablolarda Gezinme
Tüm Tabloları Listeleme
Tabloları Değiştirme ve Bırakma
Tablo adları değiştirilebilir ve sütunlar eklenebilir veya değiştirilebilir:
REPLACE COLUMNS'ın verileri değil, yalnızca tablonun yapısını değiştirirken mevcut tüm sütunları değiştirdiğini belirtmekte fayda var. Tabloda yerel bir SerDe kullanılmalıdır. REPLACE COLUMNS ayrıca bir tablonun şemasındaki sütunları kaldırmak için de kullanılabilir:
Tabloları Bırakma
Apache Hive'da resmi web sitesini ziyaret ederek öğrenebileceğiniz birçok ek işlem ve özellik vardır.
Sonuç
Hive tanımı, Apache Hadoop'un üzerine inşa edilmiş devasa veri kümeleri için sorgulama ve analiz için bir veri programı arayüzüdür. Profesyoneller, esas olarak kapsamlı Hive verileri için tasarlandığından ve kullanımı kolay olduğundan, diğer programlar, araçlar ve yazılımlar yerine onu seçerler.
Umarım bu eğitim, Apache Hive ile başlamanıza ve iş akışlarınızı daha verimli hale getirmenize yardımcı olur. Yorumlarda bize bildirin.
Yorum bırak