Hive biznesdə geniş istifadə olunan Böyük Məlumat Analitikası alətidir və Big Data ilə yeni tanışsınızsa, başlamaq üçün əla yerdir. Bu Apache Hive dərsi Apache Hive-ın əsaslarını, pətəyin nə üçün lazım olduğunu, onun xüsusiyyətlərini və bilməli olduğunuz hər şeyi keçir.
Gəlin əvvəlcə Apache Hive-ın üzərində qurulduğu Hadoop çərçivəsini anlayaq.
Apache Hadoop
Apache Hadoop pulsuzdur və açıq mənbə ölçüləri gigabaytdan petabaytlara qədər dəyişən böyük məlumat dəstlərinin saxlanması və işlənməsi üçün platforma. Hadoop, verilənləri saxlamaq və təhlil etmək üçün tək bir böyük kompüter tələb etmək əvəzinə, çoxlu sayda kompüterləri paralel olaraq nəhəng verilənlər toplusunu təhlil etməyə imkan verir.
MapReduce və Hadoop Paylanmış Fayl Sistemi komponentlərdən ikisidir:
- MapReduce – MapReduce əmtəə aparat qrupları üzrə böyük həcmdə mütəşəkkil, yarı strukturlaşdırılmış və strukturlaşdırılmamış məlumatların idarə edilməsi üçün paralel proqramlaşdırma texnikasıdır.
- HDFS – HDFS (Hadoop Paylanmış Fayl Sistemi) məlumatları saxlayan və emal edən Hadoop çərçivə komponentidir. Bu, standart aparatda işləyən xətaya dözümlü fayl sistemidir
Hadoop modullarına kömək etmək üçün Sqoop, Pig və Hive daxil olmaqla Hadoop ekosistemində müxtəlif sublayihələrdən (alətlərdən) istifadə olunur.
- Arı şanı – Hive MapReduce hesablamalarını yerinə yetirən SQL tipli skriptlərin yazılması üçün çərçivədir.
- Donuz – Pig, MapReduce prosesləri üçün skript yaratmaq üçün istifadə oluna bilən prosedur proqramlaşdırma dilidir.
- Sqoop – Sqoop HDFS və RDBMS arasında məlumatların idxalı və ixracı üçün bir vasitədir.
Nədir Apache Hive?
Apache Hive açıq mənbəlidir məlumat anbarı birbaşa Apache Hadoop Paylanmış Fayl Sistemində (HDFS) və ya Apache HBase kimi digər məlumat saxlama sistemlərində saxlanılan böyük məlumat dəstlərini oxumaq, yazmaq və idarə etmək üçün proqram.
SQL tərtibatçıları adi SQL ifadələri ilə müqayisə oluna bilən məlumat sorğusu və təhlili üçün Hive Query Language (HQL) ifadələri yaratmaq üçün Hive-dan istifadə edə bilərlər. Uzun Java kodunu öyrənmək və yazmaq ehtiyacını aradan qaldıraraq MapReduce proqramlaşdırmasını asanlaşdırmaq üçün yaradılmışdır. Bunun əvəzinə siz sorğularınızı HQL-də yaza bilərsiniz və Hive xəritəni yaradacaq və sizin üçün funksiyaları azaldacaq.
Apache Hive-ın SQL-ə bənzər interfeysi ad-hoc axtarışları yerinə yetirmək, Hadoop məlumatlarını ümumiləşdirmək və təhlil etmək üçün Qızıl Standarta çevrildi. Buluda daxil edildikdə hesablama şəbəkələri, bu həll xüsusilə sərfəli və genişləndirilə biləndir, buna görə də Netflix və Amazon daxil olmaqla bir çox firma Apache Hive-i inkişaf etdirməyə və təkmilləşdirməyə davam edir.
tarix
Facebook-da işlədikləri müddətdə Joydeep Sen Sarma və Ashish Suchoo birlikdə Apache Hive-ı yaratdılar. Hər ikisi başa düşdülər ki, Hadoop-dan maksimum yararlanmaq üçün kifayət qədər mürəkkəb Java Map-Reduce tapşırıqları yaratmalı olacaqlar. Onlar sürətlə genişlənən mühəndislik və analitik komandalarını şirkət daxilində Hadoop-dan istifadə etmək üçün lazım olan bacarıqlara öyrədə bilməyəcəklərini başa düşdülər. Mühəndislər və analitiklər tez-tez istifadəçi interfeysi kimi SQL-dən istifadə edirdilər.
SQL analitika ehtiyaclarının əksəriyyətini qarşılaya bilsə də, tərtibatçılar Hadoop-un proqramlaşdırma qabiliyyətini də daxil etmək niyyətində idilər. Apache Hive bu iki məqsəddən irəli gəlir: SQL-ə əsaslanan deklarativ dil, bu da tərtibatçılara SQL kifayət etmədikdə öz skriptlərini və proqramlarını gətirməyə imkan verir.
O, həmçinin məlumatlara əsaslanan təşkilatların qurulmasını asanlaşdırmaq üçün şirkətdəki bütün məlumat dəstləri haqqında mərkəzləşdirilmiş metadata (Hadoop əsaslı) saxlamaq üçün hazırlanmışdır.
Apache Hive necə işləyir?
Qısaca desək, Apache Hive HiveQL (SQL kimi) dilində yazılmış daxiletmə proqramını bir və ya bir neçə Java MapReduce, Tez və ya Spark tapşırıqlarına çevirir. (Bütün bu icra mühərrikləri Hadoop YARN ilə uyğun gəlir.) Bundan sonra Apache Hive məlumatları Hadoop Paylanmış Fayl Sistemi HDFS üçün cədvəllərdə təşkil edir) və cavab almaq üçün klasterdə tapşırıqları yerinə yetirir.
Tarix
Apache Hive cədvəlləri, ölçüləri böyükdən kiçiyə qədər dəyişən məlumat vahidləri ilə əlaqəli verilənlər bazasındakı cədvəllər kimi təşkil edilir. Verilənlər bazaları bölmələrə bölünmüş cədvəllərdən ibarətdir və daha sonra buketlərə bölünür. HiveQL (Hive Query Language) dəyişdirilə və ya əlavə edilə bilən məlumatlara daxil olmaq üçün istifadə olunur. Cədvəl məlumatları hər bir verilənlər bazasında seriallaşdırılır və hər cədvəlin öz HDFS kataloqu var.
memarlıq
İndi biz Hive Architecture-nin ən vacib cəhəti haqqında danışacağıq. Apache Hive-ın komponentləri aşağıdakılardır:
Metastore — O, hər bir cədvəl haqqında onun strukturu və yeri kimi məlumatları izləyir. Bölmə metadata eyni şəkildə Hive-a daxil edilir. Bu, sürücüyə klaster üzrə yayılmış müxtəlif məlumat dəstlərinin gedişatını izləməyə imkan verir. Məlumatlar ənənəvi RDBMS formatında saxlanılır. Hive metadatası sürücünün məlumatların izlənilməsi üçün son dərəcə vacibdir. Ehtiyat nüsxə serveri məlumatları müntəzəm olaraq təkrarlayır ki, məlumat itkisi zamanı bərpa olunsun.
Sürücü – HiveQL ifadələri nəzarətçi kimi fəaliyyət göstərən sürücü tərəfindən qəbul edilir. Sessiyalar quraraq, sürücü bəyanatın icrasına başlayır. O, icra hakimiyyətinin ömrünü və tərəqqisini izləyir. HiveQL ifadəsinin icrası zamanı sürücü tələb olunan metaməlumatları saxlayır. O, həmçinin Azaltma prosesindən sonra məlumat və ya sorğu nəticələrinin toplanması nöqtəsi kimi xidmət edir.
Tərtib edən – HiveQL sorğu tərtibini icra edir. Sorğu indi icra planına çevrilir. Tapşırıqlar planda verilmişdir. O, həmçinin sorğu ilə tərcümə edilmiş nəticəni əldə etmək üçün MapReduce-un atmalı olduğu addımları ehtiva edir. Sorğu Hive-in tərtibçisi (AST) tərəfindən Abstrakt Sintaksis Ağacına çevrilir. Uyğunluq və tərtib zamanı nasazlıqlarını (DAG) yoxladıqdan sonra AST-ni İstiqamətləndirilmiş Asiklik Qrafikə çevirir.
Optimizator – İcra planında müxtəlif dəyişikliklər etməklə DAG-ı optimallaşdırır. O, birləşdirici boru kəmərini tək birləşməyə çevirmək kimi təkmilləşdirilmiş səmərəlilik üçün transformasiyaları birləşdirir. Sürəti artırmaq üçün optimallaşdırıcı azalma əməliyyatını yerinə yetirməzdən əvvəl məlumatlara transformasiya tətbiq etmək kimi fəaliyyətləri bölə bilər.
İcraçı – Kompilyasiya və optimallaşdırma başa çatdıqdan sonra icraçı tapşırıqları yerinə yetirir. İşlər İcraçı tərəfindən verilir.
CLI, UI və qənaət serveri – Komanda xətti interfeysi (CLI) xarici istifadəçiyə Hive ilə əlaqə saxlamağa imkan verən istifadəçi interfeysidir. Hive-ın JDBC və ya ODBC protokollarına bənzər qənaətli serveri xarici müştərilərə şəbəkə vasitəsilə Hive ilə əlaqə saxlamağa imkan verir.
təhlükəsizlik
Apache Hive müştəri-server qarşılıqlı autentifikasiyası üçün Kerberos istifadə edən Hadoop təhlükəsizliyi ilə inteqrasiya olunub. HDFS Apache Hive-da yeni yaradılan fayllar üçün icazələri diktə edir və bu, istifadəçi, qrup və başqaları tərəfindən təsdiqlənməyə imkan verir.
Açar funksiyalar
- Hive, məlumatları HDFS-də saxlamadan emal etməyə imkan verən xarici cədvəlləri dəstəkləyir.
- O, həmçinin sürəti artırmaq üçün cədvəl səviyyəsində verilənlərin seqmentasiyasına imkan verir.
- Apache Hive, Hadoop-un aşağı səviyyəli interfeys ehtiyacını mükəmməl şəkildə qarşılayır.
- Hive məlumatların ümumiləşdirilməsini, sorğulanmasını və təhlilini asanlaşdırır.
- HiveQL heç bir proqramlaşdırma bacarığı tələb etmir; SQL sorğularının sadə başa düşülməsi kifayətdir.
- Məlumatların təhlili üçün xüsusi sorğular aparmaq üçün Hive-dan da istifadə edə bilərik.
- Genişləndirilə bilən, tanış və uyğunlaşdırıla biləndir.
- HiveQL heç bir proqramlaşdırma bacarığı tələb etmir; SQL sorğularının sadə başa düşülməsi kifayətdir.
Faydaları
Apache Hive günün sonu hesabatlarına, gündəlik əməliyyat qiymətləndirmələrinə, xüsusi axtarışlara və məlumatların təhlilinə imkan verir. Apache Hive tərəfindən təmin edilən hərtərəfli məlumatlar əhəmiyyətli rəqabət üstünlükləri verir və bazar tələblərinə cavab vermənizi asanlaşdırır.
Bu cür məlumatların asanlıqla əldə edilməsinin bəzi üstünlükləri bunlardır:
- Istifadə rahatlığı – SQL-ə bənzər dili ilə məlumat sorğusunu başa düşmək asandır.
- Sürətlənmiş məlumatların daxil edilməsi — Apache Hive cədvəl tipini və ya sxem tərifini yoxlamadan sxemi oxuduğu üçün verilənlər bazasının daxili formatında oxunmalı, təhlil edilməli və diskə seriyalaşdırılmalı deyil. Bunun əksinə olaraq, ənənəvi verilənlər bazasında məlumatlar hər dəfə əlavə edildikdə təsdiqlənməlidir.
- Üstün miqyaslılıq, çeviklik və sərfəlilik – Məlumatlar HDFS-də saxlandığı üçün Apache Hive 100-lərlə petabayt məlumat saxlaya bilir ki, bu da onu adi verilənlər bazasından daha genişlənə bilən seçim edir. Apache Hive, bulud əsaslı Hadoop xidməti olaraq müştərilərə dəyişən iş yüklərinə cavab vermək üçün virtual serverləri sürətlə yuxarı və aşağı çevirməyə imkan verir.
- Geniş iş qabiliyyəti – Böyük verilənlər dəstləri saatda 100,000 sorğuya cavab verə bilər.
Məhdudiyyətlər
- Ümumiyyətlə, Apache Hive sorğularının gecikmə müddəti çox yüksəkdir.
- Alt sorğu dəstəyi məhduddur.
- Real vaxt sorğuları və sıra səviyyəsində dəyişikliklər Apache Hive-da mövcud deyil.
- Maddiləşdirilmiş baxışlara dəstək yoxdur.
- Pətəkdə yeniləmə və silmə əməliyyatları dəstəklənmir.
- OLTP (onlayn keçid prosesi) üçün nəzərdə tutulmayıb.
Apache Hive ilə işə başlayın
Apache Hive iş axınlarınızı asanlaşdıran və asanlaşdıran güclü Hadoop tərəfdaşıdır. Apache Hive-dan maksimum yararlanmaq üçün qüsursuz inteqrasiya vacibdir. İlk addım getməkdir veb.
1. Stabil Buraxılışdan Quraşdırma Hive
Apache yükləmə güzgülərindən birindən Hive-ın ən son stabil buraxılışını endirməklə başlayın (bax Hive buraxılışları). Bundan sonra tarball açılmalıdır. Bu, hive-xyz adlı alt qovluq yaradacaq (burada xyz buraxılış nömrəsidir):
Quraşdırma qovluğuna işarə etmək üçün HIVE_HOME mühit dəyişənini təyin edin:
Nəhayət, hesabınıza $HIVE_HOME/bin əlavə edin PATH
:
2. Running Hive
Hive Hadoop istifadə edir, belə ki:
- yolunuzda Hadoop olmalıdır OR
3. DLL əməliyyatı
Hive Cədvəli Yaradılır
iki sütunlu pokes adlı cədvəl yaradır, birincisi tam, ikincisi isə sətirdir.
Cədvəlləri nəzərdən keçirin
Bütün cədvəllərin siyahısı
Cədvəllərin dəyişdirilməsi və atılması
Cədvəl adları dəyişdirilə və sütunlar əlavə edilə və ya dəyişdirilə bilər:
Qeyd etmək lazımdır ki, SÜTUNLARI DƏYİŞTİR bütün mövcud sütunları əvəz edir, məlumatı deyil, yalnız cədvəlin strukturunu dəyişir. Cədvəldə yerli SerDe istifadə edilməlidir. Cədvəl sxemindən sütunları silmək üçün SÜTUNLARI DƏYİŞTİRME də istifadə edilə bilər:
Düşən masalar
Apache Hive-da bir çox əlavə əməliyyatlar və funksiyalar var ki, onlar haqqında rəsmi vebsayta daxil olaraq öyrənə bilərsiniz.
Nəticə
Pətək tərifi Apache Hadoop üzərində qurulmuş nəhəng verilənlər dəstləri üçün sorğu və təhlil üçün məlumat proqramı interfeysidir. Mütəxəssislər onu digər proqramlar, alətlər və proqram təminatı ilə müqayisədə seçirlər, çünki o, əsasən Hive geniş məlumatları üçün nəzərdə tutulub və istifadəsi sadədir.
Ümid edirik ki, bu dərslik sizə Apache Hive ilə işə başlamağa və iş axınınızı daha səmərəli etməyə kömək edəcək. Şərhlərdə bizə bildirin.
Cavab yaz