Hive არის ფართოდ გამოყენებული Big Data Analytics ინსტრუმენტი ბიზნესში და ეს ფანტასტიკური ადგილია დასაწყებად, თუ ახალი ხართ Big Data-ში. Apache Hive-ის ეს გაკვეთილი განიხილავს Apache Hive-ის საფუძვლებს, რატომ არის სკაი საჭირო, მის მახასიათებლებს და ყველაფერს, რაც თქვენ უნდა იცოდეთ.
მოდით ჯერ გავიგოთ Hadoop-ის ჩარჩო, რომელზედაც აგებულია Apache Hive.
აპაჩ ჰადოოპი
Apache Hadoop არის უფასო და ღია პლატფორმა დიდი მონაცემთა ნაკრების შესანახად და დამუშავებისთვის, ზომით გიგაბაიტიდან პეტაბაიტამდე. Hadoop საშუალებას აძლევს მრავალი კომპიუტერის კლასტერირებას, რათა პარალელურად გააანალიზონ უზარმაზარი მონაცემთა ნაკრები, ვიდრე მოითხოვოს ერთი დიდი კომპიუტერი მონაცემების შესანახად და ანალიზისთვის.
MapReduce და Hadoop Distributed File System არის ორი კომპონენტი:
- MapReduce – MapReduce არის პარალელური პროგრამირების ტექნიკა სასაქონლო ტექნიკის კლასტერებზე ორგანიზებული, ნახევრად სტრუქტურირებული და არასტრუქტურირებული მონაცემების უზარმაზარი მოცულობის დასამუშავებლად.
- HDFS – HDFS (Hadoop Distributed File System) არის Hadoop ჩარჩო კომპონენტი, რომელიც ინახავს და ამუშავებს მონაცემებს. ეს არის შეცდომის ტოლერანტული ფაილური სისტემა, რომელიც მუშაობს სტანდარტულ აპარატურაზე
Hadoop-ის ეკოსისტემაში სხვადასხვა ქვეპროექტები (ინსტრუმენტები), მათ შორის Sqoop, Pig და Hive, გამოიყენება Hadoop მოდულების დასახმარებლად.
- Hive – Hive არის ჩარჩო SQL სტილის სკრიპტების დასაწერად, რომლებიც ასრულებენ MapReduce გამოთვლებს.
- Pig – Pig არის პროცედურული პროგრამირების ენა, რომელიც შეიძლება გამოყენებულ იქნას MapReduce პროცესების სკრიპტის შესაქმნელად.
- სქოოპ – Sqoop არის ინსტრუმენტი HDFS და RDBMS შორის მონაცემთა იმპორტისა და ექსპორტისთვის.
რა არის ონლაინ თამაში Apache Hive?
Apache Hive არის ღია წყარო მონაცემთა საწყობი პროგრამა კითხვის, ჩაწერისა და უზარმაზარი მონაცემთა ნაკრების მართვისთვის, რომელიც ინახება პირდაპირ Apache Hadoop Distributed File System (HDFS) ან მონაცემთა შენახვის სხვა სისტემებში, როგორიცაა Apache HBase.
SQL დეველოპერებს შეუძლიათ გამოიყენონ Hive Hive Query Language (HQL) განცხადებების შესაქმნელად მონაცემთა მოთხოვნისა და ანალიზისთვის, რომლებიც შედარებულია ჩვეულებრივ SQL განცხადებებთან. იგი შეიქმნა MapReduce-ის პროგრამირების გასაადვილებლად, ჯავის გრძელი კოდის სწავლისა და დაწერის საჭიროების აღმოფხვრის გზით. ამის ნაცვლად, თქვენ შეგიძლიათ დაწეროთ თქვენი მოთხოვნები HQL-ში და Hive ააშენებს რუკას და შეამცირებს ფუნქციებს თქვენთვის.
Apache Hive-ის SQL-ის მსგავსი ინტერფეისი გახდა ოქროს სტანდარტი ad-hoc ძიების შესასრულებლად, შეჯამებისა და Hadoop მონაცემების გასაანალიზებლად. როდესაც შედის ღრუბელში გამოთვლითი ქსელები, ეს გამოსავალი განსაკუთრებით ეკონომიური და მასშტაბურია, რის გამოც ბევრი ფირმა, მათ შორის Netflix და Amazon, აგრძელებს Apache Hive-ის განვითარებას და გაუმჯობესებას.
ისტორია
ფეისბუქზე მუშაობის პერიოდში, ჯოიდიპ სენ სარმა და აშიშ ტუსუუმ ერთად შექმნეს Apache Hive. ორივემ გააცნობიერა, რომ Hadoop-ისგან მაქსიმალური სარგებლობის მისაღებად, მათ უნდა შეექმნათ რამდენიმე საკმაოდ რთული Java Map-Reduce ამოცანები. მათ იცოდნენ, რომ ვერ შეძლებდნენ თავიანთი სწრაფად მზარდი საინჟინრო და ანალიტიკური გუნდების განათლებას იმ უნარების შესახებ, რომლებიც მათ სჭირდებოდათ Hadoop-ის სარგებლობისთვის მთელ კომპანიაში. ინჟინრები და ანალიტიკოსები ხშირად იყენებდნენ SQL-ს, როგორც მომხმარებლის ინტერფეისს.
მიუხედავად იმისა, რომ SQL-ს შეეძლო ანალიტიკის საჭიროებების უმეტესი ნაწილი დაეკმაყოფილებინა, დეველოპერები ასევე აპირებდნენ Hadoop-ის პროგრამირებადობის ჩართვას. Apache Hive წარმოიშვა ამ ორი მიზნიდან: SQL-ზე დაფუძნებული დეკლარაციული ენა, რომელიც ასევე საშუალებას აძლევდა დეველოპერებს შემოეტანათ საკუთარი სკრიპტები და პროგრამები, როდესაც SQL არ იყო საკმარისი.
იგი ასევე შემუშავებული იყო ცენტრალიზებული მეტამონაცემების შესანახად (Hadoop-ზე დაფუძნებული) კომპანიის ყველა მონაცემთა ნაკრების შესახებ, რათა გაადვილებულიყო მონაცემებიზე ორიენტირებული ორგანიზაციების მშენებლობა.
როგორ მუშაობს Apache Hive?
მოკლედ, Apache Hive გარდაქმნის შეყვანის პროგრამას, რომელიც დაწერილია HiveQL (SQL მსგავსი) ენაზე ერთ ან მეტ Java MapReduce, Tez ან Spark ამოცანებად. (ყველა ეს შემსრულებელი ძრავა თავსებადია Hadoop YARN-თან.) ამის შემდეგ Apache Hive აწყობს მონაცემებს ცხრილებად Hadoop Distributed File System HDFS-ისთვის) და პასუხების მისაღებად ასრულებს დავალებებს კლასტერზე.
თარიღი
Apache Hive ცხრილები განლაგებულია ისევე, როგორც ცხრილები რელაციური მონაცემთა ბაზის ორგანიზებით, მონაცემთა ერთეულების ზომით, დიდიდან პატარამდე. მონაცემთა ბაზები შედგება ცხრილებისგან, რომლებიც იყოფა განყოფილებებად, რომლებიც შემდგომ იყოფა თაიგულებად. HiveQL (Hive Query Language) გამოიყენება მონაცემების წვდომისთვის, რომელიც შეიძლება შეიცვალოს ან დაერთოს. ცხრილის მონაცემები სერიულირდება თითოეულ მონაცემთა ბაზაში და თითოეულ ცხრილს აქვს საკუთარი HDFS დირექტორია.
არქიტექტურა
ახლა ჩვენ ვისაუბრებთ Hive Architecture-ის ყველაზე მნიშვნელოვან ასპექტზე. Apache Hive-ის კომპონენტები შემდეგია:
მეტასტორი — ის ინახავს ინფორმაციას თითოეული ცხრილის შესახებ, როგორიცაა მისი სტრუქტურა და მდებარეობა. დანაყოფის მეტამონაცემები ასევე შედის Hive-ში. ეს საშუალებას აძლევს დრაივერს თვალყური ადევნოს კლასტერში გავრცელებული სხვადასხვა მონაცემთა ნაკრების პროგრესს. მონაცემები ინახება ჩვეულებრივი RDBMS ფორმატში. Hive მეტამონაცემები უკიდურესად მნიშვნელოვანია მძღოლისთვის, რომ შეინარჩუნოს მონაცემების თვალყურის დევნება. სარეზერვო სერვერი რეგულარულად ახდენს მონაცემების დუბლიკატს, რათა მათი აღდგენა შესაძლებელი იყოს მონაცემთა დაკარგვის შემთხვევაში.
მძღოლი – HiveQL განცხადებები მიიღება მძღოლის მიერ, რომელიც ფუნქციონირებს როგორც კონტროლერი. სესიების დამყარებით, მძღოლი იწყებს განცხადების შესრულებას. ის თვალყურს ადევნებს აღმასრულებელი მმართველის სიცოცხლის ხანგრძლივობას და პროგრესს. HiveQL განაცხადის შესრულებისას დრაივერი ინახავს საჭირო მეტამონაცემებს. ის ასევე ემსახურება როგორც მონაცემთა ან შეკითხვის შედეგების შეგროვების პუნქტს Reduce პროცესის შემდეგ.
შემდგენელი – ის ახორციელებს HiveQL შეკითხვის კომპილაციას. მოთხოვნა ახლა გადაკეთებულია შესრულების გეგმად. დავალებები ჩამოთვლილია გეგმაში. ის ასევე მოიცავს ნაბიჯებს, რომლებიც MapReduce-მა უნდა გადადგას შეკითხვის მიერ თარგმნილი შედეგის მისაღებად. მოთხოვნა გარდაიქმნება აბსტრაქტულ სინტაქსის ხედ Hive's compiler-ის (AST) მიერ. გარდაქმნის AST-ს მიმართულ აციკლურ გრაფიკად თავსებადობის და კომპილაციის დროის ხარვეზების (DAG) შემოწმების შემდეგ.
ოპტიმიზატორი – ის ახდენს DAG-ის ოპტიმიზაციას შესრულების გეგმაზე სხვადასხვა ცვლილებების შესრულებით. ის აერთიანებს გარდაქმნებს გაუმჯობესებული ეფექტურობისთვის, როგორიცაა შეერთების მილსადენის ერთ შეერთებად გადაქცევა. სიჩქარის გასაუმჯობესებლად, ოპტიმიზატორმა შეიძლება დაყოს აქტივობები, როგორიცაა მონაცემთა ტრანსფორმაციის გამოყენება შემცირების ოპერაციის შესრულებამდე.
აღმასრულებელი – შემსრულებელი აწარმოებს დავალებებს, როდესაც კომპილაცია და ოპტიმიზაცია დასრულდება. სამუშაოები განლაგებულია შემსრულებლის მიერ.
CLI, UI და Thrift სერვერი – ბრძანების ხაზის ინტერფეისი (CLI) არის მომხმარებლის ინტერფეისი, რომელიც საშუალებას აძლევს გარე მომხმარებელს დაუკავშირდეს Hive-ს. Hive-ის ეკონომიური სერვერი, JDBC ან ODBC პროტოკოლების მსგავსი, საშუალებას აძლევს გარე კლიენტებს დაუკავშირდნენ Hive-ს ქსელის საშუალებით.
უსაფრთხოება
Apache Hive ინტეგრირებულია Hadoop-ის უსაფრთხოებასთან, რომელიც იყენებს Kerberos-ს კლიენტ-სერვერის ურთიერთ ავთენტიფიკაციისთვის. HDFS კარნახობს ნებართვებს ახლად გენერირებული ფაილებისთვის Apache Hive-ში, რაც საშუალებას გაძლევთ დაამტკიცოთ მომხმარებლის, ჯგუფის და სხვათა მიერ.
ძირითადი მახასიათებლები
- Hive მხარს უჭერს გარე ცხრილებს, რომლებიც საშუალებას გაძლევთ დაამუშავოთ მონაცემები HDFS-ში შენახვის გარეშე.
- ის ასევე იძლევა მონაცემთა სეგმენტაციის საშუალებას მაგიდის დონეზე სიჩქარის გაზრდის მიზნით.
- Apache Hive შესანიშნავად აკმაყოფილებს Hadoop-ის დაბალი დონის ინტერფეისის საჭიროებას.
- Hive აადვილებს მონაცემთა შეჯამებას, შეკითხვებს და ანალიზს.
- HiveQL არ საჭიროებს რაიმე პროგრამირების უნარს; საკმარისია SQL მოთხოვნების მარტივი გაგება.
- ჩვენ ასევე შეგვიძლია გამოვიყენოთ Hive მონაცემთა ანალიზისთვის ad-hoc მოთხოვნების ჩასატარებლად.
- ეს არის მასშტაბირებადი, ნაცნობი და ადაპტირებადი.
- HiveQL არ საჭიროებს რაიმე პროგრამირების უნარს; საკმარისია SQL მოთხოვნების მარტივი გაგება.
უპირატესობები
Apache Hive საშუალებას იძლევა დღის ბოლოს მოხსენებები, ყოველდღიური ტრანზაქციის შეფასებები, ad-hoc ძიება და მონაცემთა ანალიზი. Apache Hive-ის მიერ მოწოდებული ყოვლისმომცველი შეხედულებები იძლევა მნიშვნელოვან კონკურენტულ უპირატესობას და გაგიადვილებთ ბაზრის მოთხოვნებს უპასუხოთ.
აქ მოცემულია ასეთი ინფორმაციის ხელმისაწვდომობის რამდენიმე უპირატესობა:
- მარტივად გამოყენების – მისი SQL მსგავსი ენით, მოთხოვნის მონაცემები მარტივი გასაგებია.
- მონაცემთა დაჩქარებული ჩასმა - იმის გამო, რომ Apache Hive კითხულობს სქემას ცხრილის ტიპის ან სქემის განსაზღვრების გადამოწმების გარეშე, მონაცემები არ უნდა წაიკითხოს, გაანალიზდეს და დისკზე სერიული იყოს მონაცემთა ბაზის შიდა ფორმატში. ამის საპირისპიროდ, ჩვეულებრივი მონაცემთა ბაზაში, მონაცემები უნდა იყოს დამოწმებული ყოველი დამატებისას.
- უმაღლესი მასშტაბურობა, მოქნილობა და ხარჯების ეფექტურობა – იმის გამო, რომ მონაცემები ინახება HDFS-ში, Apache Hive-ს შეუძლია შეინახოს 100 პეტაბაიტი მონაცემები, რაც მას ბევრად უფრო მასშტაბურ ვარიანტად აქცევს, ვიდრე ტიპიური მონაცემთა ბაზა. Apache Hive, როგორც ღრუბელზე დაფუძნებული Hadoop სერვისი, საშუალებას აძლევს მომხმარებლებს სწრაფად დაატრიალონ ზევით და ჩამოწიონ ვირტუალური სერვერები ცვალებად დატვირთვასთან შესახვედრად.
- ფართო შრომისუნარიანობა - მონაცემთა დიდმა ნაკრებებმა შეიძლება საათში 100,000-მდე მოთხოვნა დამუშავდეს.
შეზღუდვები
- ზოგადად, Apache Hive შეკითხვებს აქვს ძალიან მაღალი შეყოვნება.
- ქვემოთხოვნის მხარდაჭერა შეზღუდულია.
- რეალურ დროში მოთხოვნები და მწკრივის დონის ცვლილებები მიუწვდომელია Apache Hive-ში.
- მატერიალიზებული შეხედულებების მხარდაჭერა არ არსებობს.
- Hive-ში განახლებისა და წაშლის მოქმედებები მხარდაჭერილი არ არის.
- არ არის განკუთვნილი OLTP-სთვის (ონლაინ გარდამავალი პროცესი).
დაწყება Apache Hive-ით
Apache Hive არის Hadoop-ის ძლიერი პარტნიორი, რომელიც ამარტივებს და ამარტივებს თქვენს სამუშაო პროცესებს. Apache Hive-ისგან მაქსიმალური სარგებლობის მისაღებად აუცილებელია უწყვეტი ინტეგრაცია. პირველი ნაბიჯი არის წასვლა ნახვა.
1. სამონტაჟო Hive საწყისი სტაბილური გამოშვება
დაიწყეთ Hive-ის უახლესი სტაბილური გამოშვების ჩამოტვირთვით Apache-ს ჩამოტვირთვის ერთ-ერთი სარკედან (იხ. Hive რელიზები). შემდეგ ტარბოლი უნდა გაიხსნას. ეს შექმნის ქვესაქაღალდეს, სახელწოდებით hive-xyz (სადაც xyz არის გამოშვების ნომერი):
დააყენეთ გარემოს ცვლადი HIVE_HOME, რათა მიუთითოთ ინსტალაციის დირექტორიაზე:
და ბოლოს, დაამატეთ $HIVE_HOME/bin თქვენს PATH
:
2. Running Hive
Hive იყენებს Hadoop-ს, ასე რომ:
- თქვენ უნდა გქონდეთ Hadoop თქვენს გზაზე ან
3. DLL ოპერაცია
Hive ცხრილის შექმნა
ქმნის ცხრილს სახელად pokes ორი სვეტით, რომელთაგან პირველი არის მთელი რიცხვი და მეორე არის სტრიქონი.
ცხრილების დათვალიერება
ყველა ცხრილის ჩამონათვალი
ცხრილების შეცვლა და ჩამოშვება
ცხრილების სახელები შეიძლება შეიცვალოს და სვეტები დაემატოს ან შეიცვალოს:
აღსანიშნავია, რომ REPLACE COLUMNS ცვლის ყველა არსებულ სვეტს, ცვლის მხოლოდ ცხრილის სტრუქტურას და არა მონაცემებს. ცხრილში გამოყენებული უნდა იყოს მშობლიური SerDe. REPLACE COLUMNS ასევე შეიძლება გამოყენებულ იქნას სვეტების ამოსაღებად ცხრილის სქემიდან:
ჩამოსაშლელი მაგიდები
Apache Hive-ში არის მრავალი დამატებითი ოპერაცია და ფუნქცია, რომელთა შესახებაც შეგიძლიათ გაიგოთ ოფიციალურ ვებსაიტზე.
დასკვნა
Hive განმარტება არის მონაცემთა პროგრამის ინტერფეისი შეკითხვისა და ანალიზისთვის უზარმაზარი მონაცემთა ნაკრებისთვის, რომელიც აგებულია Apache Hadoop-ის თავზე. პროფესიონალები ირჩევენ მას სხვა პროგრამებთან, ხელსაწყოებთან და პროგრამებთან შედარებით, რადგან ის ძირითადად შექმნილია Hive ვრცელი მონაცემებისთვის და მარტივი გამოსაყენებელია.
ვიმედოვნებთ, რომ ეს გაკვეთილი დაგეხმარებათ დაიწყოთ Apache Hive-ით და გახადოთ თქვენი სამუშაო პროცესები უფრო ეფექტური. შეგვატყობინეთ კომენტარებში.
დატოვე პასუხი