Hive - Giriş
'Büyük Veri' terimi, büyük hacim, yüksek hız ve her geçen gün artan çeşitli verileri içeren büyük veri kümelerinin koleksiyonları için kullanılır. Geleneksel veri yönetimi sistemlerini kullanarak Büyük Verileri işlemek zordur. Bu nedenle Apache Software Foundation, Büyük Veri yönetimi ve işleme zorluklarını çözmek için Hadoop adlı bir çerçeve sundu.
Hadoop
Hadoop, Büyük Verileri dağıtılmış bir ortamda depolamak ve işlemek için açık kaynaklı bir çerçevedir. Biri MapReduce ve diğeri Hadoop Dağıtılmış Dosya Sistemi (HDFS) olmak üzere iki modül içerir.
MapReduce: Büyük miktarda yapılandırılmış, yarı yapılandırılmış ve yapılandırılmamış verilerin büyük ticari donanım kümeleri üzerinde işlenmesine yönelik paralel bir programlama modelidir.
HDFS:Hadoop Dağıtılmış Dosya Sistemi, veri kümelerini depolamak ve işlemek için kullanılan Hadoop çerçevesinin bir parçasıdır. Emtia donanımı üzerinde çalışmak için hataya dayanıklı bir dosya sistemi sağlar.
Hadoop ekosistemi, Hadoop modüllerine yardımcı olmak için kullanılan Sqoop, Pig ve Hive gibi farklı alt projeler (araçlar) içerir.
Sqoop: HDFS ve RDBMS arasında veri almak ve vermek için kullanılır.
Pig: MapReduce işlemleri için bir komut dosyası geliştirmek için kullanılan prosedürel bir dil platformudur.
Hive: MapReduce işlemlerini yapmak için SQL tipi betikler geliştirmek için kullanılan bir platformdur.
Note: MapReduce işlemlerini yürütmenin çeşitli yolları vardır:
- Yapılandırılmış, yarı yapılandırılmış ve yapılandırılmamış veriler için Java MapReduce programını kullanan geleneksel yaklaşım.
- Pig kullanarak yapılandırılmış ve yarı yapılandırılmış verileri işlemek için MapReduce için komut dosyası oluşturma yaklaşımı.
- Hive kullanarak yapılandırılmış verileri işlemek için MapReduce için Hive Sorgu Dili (HiveQL veya HQL).
Hive nedir
Hive, yapılandırılmış verileri Hadoop'ta işlemek için bir veri ambarı altyapı aracıdır. Büyük Verileri özetlemek için Hadoop'un üstünde bulunur ve sorgulama ve analiz etmeyi kolaylaştırır.
Başlangıçta Hive, Facebook tarafından geliştirildi, daha sonra Apache Yazılım Vakfı onu aldı ve Apache Hive adı altında açık kaynak olarak daha da geliştirdi. Farklı şirketler tarafından kullanılmaktadır. Örneğin, Amazon bunu Amazon Elastic MapReduce'da kullanır.
Kovan değil
- İlişkisel bir veritabanı
- Çevrimiçi İşlem İşleme (OLTP) için bir tasarım
- Gerçek zamanlı sorgular ve satır düzeyinde güncellemeler için bir dil
Kovan Özellikleri
- Şemayı bir veritabanında depolar ve verileri HDFS'ye işler.
- OLAP için tasarlanmıştır.
- HiveQL veya HQL olarak adlandırılan sorgulama için SQL türü dil sağlar.
- Tanıdık, hızlı, ölçeklenebilir ve genişletilebilir.
Hive Mimarisi
Aşağıdaki bileşen diyagramı, Hive'ın mimarisini göstermektedir:
Bu bileşen diyagramı farklı birimler içerir. Aşağıdaki tablo her birimi açıklamaktadır:
Ünite Adı | Operasyon |
---|---|
Kullanıcı arayüzü | Hive, kullanıcı ile HDFS arasında etkileşim oluşturabilen bir veri ambarı altyapı yazılımıdır. Hive'ın desteklediği kullanıcı arayüzleri Hive Web UI, Hive komut satırı ve Hive HD Insight'tır (Windows sunucusunda). |
Meta Mağazası | Hive, tabloların, veritabanlarının, tablodaki sütunların, veri türlerinin ve HDFS eşlemesinin şemasını veya Meta Verilerini depolamak için ilgili veritabanı sunucularını seçer. |
HiveQL İşlem Motoru | HiveQL, Metastore'daki şema bilgilerini sorgulamak için SQL'e benzer. MapReduce programı için geleneksel yaklaşımın yerini alanlardan biridir. Java'da MapReduce programı yazmak yerine MapReduce işi için bir sorgu yazıp işleyebiliriz. |
Yürütme Motoru | HiveQL süreç Motoru ile MapReduce'un bağlantılı kısmı Hive Yürütme Motorudur. Yürütme motoru sorguyu işler ve MapReduce sonuçlarıyla aynı sonuçları üretir. MapReduce'un lezzetini kullanır. |
HDFS veya HBASE | Hadoop dağıtılmış dosya sistemi veya HBASE, verileri dosya sistemine depolamak için veri depolama teknikleridir. |
Hive'ın Çalışması
Aşağıdaki diyagram, Hive ve Hadoop arasındaki iş akışını göstermektedir.
Aşağıdaki tablo, Hive'ın Hadoop çerçevesiyle nasıl etkileşim kurduğunu tanımlar:
Adım No. | Operasyon |
---|---|
1 | Execute Query Komut Satırı veya Web Kullanıcı Arayüzü gibi Hive arabirimi, sorguyu çalıştırmak için Sürücüye (JDBC, ODBC vb. Gibi herhangi bir veritabanı sürücüsü) gönderir. |
2 | Get Plan Sürücü, sözdizimini ve sorgu planını veya sorgu gereksinimlerini kontrol etmek için sorguyu ayrıştıran sorgu derleyicisinin yardımını alır. |
3 | Get Metadata Derleyici, meta veri talebini Metastore'a (herhangi bir veritabanı) gönderir. |
4 | Send Metadata Metastore, meta verileri derleyiciye yanıt olarak gönderir. |
5 | Send Plan Derleyici gereksinimi kontrol eder ve planı sürücüye yeniden gönderir. Buraya kadar, bir sorgunun ayrıştırılması ve derlenmesi tamamlanmıştır. |
6 | Execute Plan Sürücü, yürütme planını yürütme motoruna gönderir. |
7 | Execute Job Dahili olarak, yürütme işi süreci bir MapReduce işidir. Yürütme motoru, işi Ad düğümünde bulunan JobTracker'a gönderir ve bu işi Veri düğümünde bulunan TaskTracker'a atar. Burada sorgu, MapReduce işini yürütür. |
7.1 | Metadata Ops Bu sırada yürütme motoru, Metastore ile meta veri işlemlerini yürütebilir. |
8 | Fetch Result Yürütme motoru, sonuçları Veri düğümlerinden alır. |
9 | Send Results Yürütme motoru bu sonuç değerlerini sürücüye gönderir. |
10 | Send Results Sürücü, sonuçları Hive Arabirimlerine gönderir. |