Բառը[Թաքցնել][Ցուցադրում]
Hive-ը բիզնեսում լայնորեն օգտագործվող Big Data Analytics գործիք է, և դա ֆանտաստիկ վայր է սկսելու համար, եթե դուք նոր եք Big Data-ում: Apache Hive-ի այս դասն անցնում է Apache Hive-ի հիմունքներին, թե ինչու է փեթակը անհրաժեշտ, դրա առանձնահատկությունները և այն ամենը, ինչ դուք պետք է իմանաք:
Եկեք նախ հասկանանք Hadoop-ի շրջանակը, որի վրա կառուցված է Apache Hive-ը:
Apache Hadoop- ը
Apache Hadoop-ը անվճար և բաց աղբյուր հարթակ՝ մեծ տվյալների հավաքածուներ պահելու և մշակելու համար՝ գիգաբայթից մինչև պետաբայթ: Hadoop-ը թույլ է տալիս կլաստերավորել բազմաթիվ համակարգիչներ՝ վերլուծելու հսկայական տվյալների հավաքածուներ զուգահեռաբար, այլ ոչ թե պահանջելու մեկ մեծ համակարգիչ՝ տվյալների պահպանման և վերլուծության համար:
MapReduce-ը և Hadoop-ի բաշխված ֆայլային համակարգը բաղադրիչներից երկուսն են.
- MapReduce – MapReduce-ը զուգահեռ ծրագրավորման տեխնիկա է ապրանքային ապարատային կլաստերների վրա կազմակերպված, կիսակառույց և չկառուցված տվյալների հսկայական ծավալների մշակման համար:
- HDFS – HDFS-ը (Hadoop Distributed File System) Hadoop շրջանակային բաղադրիչ է, որը պահում և մշակում է տվյալները: Դա սխալ հանդուրժող ֆայլային համակարգ է, որն աշխատում է ստանդարտ սարքաշարի վրա
Hadoop էկոհամակարգի տարբեր ենթածրագրեր (գործիքներ), ներառյալ Sqoop, Pig և Hive, օգտագործվում են Hadoop մոդուլներին օգնելու համար:
- Փեթակ – Hive-ը SQL ոճով սկրիպտներ գրելու շրջանակ է, որոնք կատարում են MapReduce հաշվարկները:
- Խոզ – Pig-ը ընթացակարգային ծրագրավորման լեզու է, որը կարող է օգտագործվել MapReduce գործընթացների համար սցենար ստեղծելու համար:
- Սքուոպ – Sqoop-ը HDFS-ի և RDBMS-ի միջև տվյալների ներմուծման և արտահանման գործիք է:
Ինչ է Apache փեթակ?
Apache Hive-ը բաց կոդով է տվյալների պահեստ ծրագիր՝ կարդալու, գրելու և կառավարելու հսկայական տվյալների հավաքածուներ, որոնք պահվում են անմիջապես Apache Hadoop բաշխված ֆայլային համակարգում (HDFS) կամ տվյալների պահպանման այլ համակարգերում, ինչպիսին է Apache HBase-ը:
SQL մշակողները կարող են օգտագործել Hive-ը՝ ստեղծելու Hive Query Language (HQL) հայտարարություններ տվյալների հարցումների և վերլուծության համար, որոնք համեմատելի են սովորական SQL հայտարարությունների հետ: Այն ստեղծվել է MapReduce-ի ծրագրավորումը հեշտացնելու համար՝ վերացնելով երկար Java կոդ սովորելու և գրելու անհրաժեշտությունը: Փոխարենը, դուք կարող եք գրել ձեր հարցումները HQL-ով, և Hive-ը կկառուցի քարտեզը և կնվազեցնի գործառույթները ձեզ համար:
Apache Hive-ի SQL նման ինտերֆեյսը դարձել է Ոսկե ստանդարտ՝ հատուկ որոնումներ կատարելու, Hadoop-ի տվյալները ամփոփելու և վերլուծելու համար: Երբ ներառված է ամպի մեջ հաշվողական ցանցեր, այս լուծումը հատկապես ծախսարդյունավետ է և մասշտաբային, այդ իսկ պատճառով շատ ընկերություններ, ներառյալ Netflix-ը և Amazon-ը, շարունակում են զարգացնել և կատարելագործել Apache Hive-ը:
պատմություն
Facebook-ում աշխատելու ընթացքում Ջոյդիփ Սեն Սարման և Աշիշ Թուսուն համատեղ ստեղծեցին 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 բաշխված ֆայլային համակարգի HDFS-ի համար) և կատարում է առաջադրանքները կլաստերի վրա՝ պատասխան ստանալու համար:
Ամսաթիվ
Apache Hive աղյուսակները դասավորված են այնպես, ինչպես կազմակերպված են հարաբերական տվյալների բազայի աղյուսակները, որոնց չափերը տատանվում են ավելի մեծից փոքր: Տվյալների բազաները կազմված են աղյուսակներից, որոնք բաժանված են բաժինների, որոնք հետագայում բաժանվում են դույլերի: HiveQL (Hive Query Language) օգտագործվում է տվյալների մուտք գործելու համար, որոնք կարող են փոփոխվել կամ կցվել: Աղյուսակային տվյալները սերիականացվում են յուրաքանչյուր տվյալների բազայում, և յուրաքանչյուր աղյուսակ ունի իր HDFS գրացուցակը:
ճարտարապետություն
Այժմ մենք կխոսենք Hive Architecture-ի ամենակարևոր ասպեկտի մասին: Apache Hive-ի բաղադրիչները հետևյալն են.
Metastore — Այն հետևում է յուրաքանչյուր աղյուսակի վերաբերյալ տեղեկատվությանը, ինչպես օրինակ՝ դրա կառուցվածքը և գտնվելու վայրը: Բաժանման մետատվյալները նույնպես ներառված են Hive-ում: Սա թույլ է տալիս վարորդին հետևել կլաստերի վրա տարածված տարբեր տվյալների հավաքածուների առաջընթացին: Տվյալները պահվում են սովորական RDBMS ձևաչափով: Hive-ի մետատվյալները չափազանց կարևոր են վարորդի համար տվյալների հետևելու համար: Պահուստային սերվերը պարբերաբար կրկնօրինակում է տվյալները, որպեսզի դրանք վերականգնվեն տվյալների կորստի դեպքում:
Վարորդ – HiveQL հայտարարությունները ստացվում են վարորդի կողմից, որը գործում է որպես վերահսկիչ: Սահմանելով նիստեր՝ վարորդը նախաձեռնում է քաղվածքի կատարումը։ Այն հետևում է գործադիրի կյանքի տևողությանն ու առաջընթացին: HiveQL քաղվածքի կատարման ընթացքում վարորդը պահպանում է պահանջվող մետատվյալները: Այն նաև ծառայում է որպես Reduce գործընթացից հետո տվյալների կամ հարցման արդյունքների հավաքագրման կետ:
Կազմող – Այն իրականացնում է HiveQL հարցումների կոմպիլյացիան: Հարցումն այժմ փոխարկվում է կատարման պլանի: Առաջադրանքները նշված են պլանում: Այն նաև ներառում է քայլերը, որոնք MapReduce-ը պետք է ձեռնարկի հարցման միջոցով թարգմանված արդյունք ստանալու համար: Հարցումը վերածվում է վերացական շարահյուսական ծառի Hive's compiler-ի (AST) կողմից: Համատեղելիությունը և կոմպիլյացիայի ժամանակի սխալները (DAG) ստուգելուց հետո AST-ը փոխակերպում է Ուղղորդված ացիկլիկ գրաֆիկի:
Օպտիմիզատոր – Այն օպտիմիզացնում է DAG-ը՝ կատարելով տարբեր փոփոխություններ կատարման պլանում: Այն համատեղում է փոխակերպումները բարելավված արդյունավետության համար, ինչպիսիք են միացումների խողովակաշարը մեկ միացման վերածելը: Արագությունը բարելավելու համար օպտիմիզատորը կարող է բաժանել գործողությունները, ինչպիսիք են տվյալների վրա փոխակերպումը կիրառելուց առաջ կրճատման գործողություն կատարելը:
Կատարող – Կատարողը գործարկում է առաջադրանքները, երբ ավարտվում են կոմպիլյացիան և օպտիմալացումը: Աշխատանքներն իրականացվում են Կատարողի կողմից:
CLI, UI և Thrift Server – Հրամանի տողի ինտերֆեյսը (CLI) օգտատիրոջ միջերես է, որը թույլ է տալիս արտաքին օգտագործողին շփվել Hive-ի հետ: Hive-ի խնայողական սերվերը, որը նման է JDBC կամ ODBC արձանագրություններին, թույլ է տալիս արտաքին հաճախորդներին հաղորդակցվել Hive-ի հետ ցանցի միջոցով:
Անվտանգություն
Apache Hive-ը ինտեգրված է Hadoop անվտանգության հետ, որն օգտագործում է Kerberos-ը հաճախորդ-սերվեր փոխադարձ նույնականացման համար: HDFS-ը թելադրում է Apache Hive-ում նոր ստեղծվող ֆայլերի թույլտվությունները՝ թույլ տալով ձեզ հաստատել օգտվողի, խմբի և այլոց կողմից:
Հիմնական առանձնահատկությունները
- Hive-ն աջակցում է արտաքին աղյուսակներին, որոնք թույլ են տալիս մշակել տվյալները՝ առանց դրանք HDFS-ում պահելու:
- Այն նաև հնարավորություն է տալիս տվյալների սեգմենտավորումը աղյուսակի մակարդակում՝ արագությունը մեծացնելու համար:
- Apache Hive-ը հիանալի կերպով բավարարում է Hadoop-ի ցածր մակարդակի ինտերֆեյսի կարիքը:
- Hive-ը հեշտացնում է տվյալների ամփոփումը, հարցումը և վերլուծությունը:
- HiveQL-ը չի պահանջում որևէ ծրագրավորման հմտություններ. SQL հարցումների պարզ ըմբռնումը բավարար է:
- Մենք կարող ենք նաև օգտագործել Hive-ը տվյալների վերլուծության համար ժամանակավոր հարցումներ իրականացնելու համար:
- Այն մասշտաբային է, ծանոթ և հարմարվող:
- HiveQL-ը չի պահանջում որևէ ծրագրավորման հմտություններ. SQL հարցումների պարզ ըմբռնումը բավարար է:
Առավելությունները
Apache Hive-ը թույլ է տալիս օրվա ավարտի հաշվետվություններ, ամենօրյա գործարքների գնահատումներ, ժամանակավոր որոնումներ և տվյալների վերլուծություն: Apache Hive-ի կողմից տրամադրված համապարփակ պատկերացումները զգալի մրցակցային առավելություններ են տալիս և ձեզ համար հեշտացնում են շուկայի պահանջներին արձագանքելը:
Ահա այսպիսի տեղեկատվության մատչելիության մի քանի առավելություններ.
- Հեշտ օգտագործման – Իր SQL-ի նման լեզվով հարցման տվյալները պարզ հասկանալի են:
- Տվյալների արագացված տեղադրում - Քանի որ Apache Hive-ը կարդում է սխեման առանց աղյուսակի տեսակի կամ սխեմայի սահմանման ստուգման, անհրաժեշտ չէ, որ տվյալները կարդալ, վերլուծել և սերիականացնել սկավառակի վրա տվյալների բազայի ներքին ձևաչափով: Ի հակադրություն, սովորական տվյալների բազայում տվյալները պետք է վավերացվեն ամեն անգամ, երբ դրանք ավելացվեն:
- Բարձրագույն մասշտաբայնություն, ճկունություն և ծախսարդյունավետություն – Քանի որ տվյալները պահվում են HDFS-ում, Apache Hive-ը կարող է պահել 100 պետաբայթ տվյալներ՝ դարձնելով այն շատ ավելի լայնածավալ տարբերակ, քան սովորական տվյալների բազան: Apache Hive-ը, որպես ամպի վրա հիմնված Hadoop ծառայություն, թույլ է տալիս հաճախորդներին արագորեն վեր ու վար պտտել վիրտուալ սերվերները՝ փոփոխվող աշխատանքային բեռները բավարարելու համար:
- Ընդարձակ աշխատանքային կարողություն – Տվյալների մեծ հավաքածուները կարող են կատարել մինչև 100,000 հարցումներ ժամում:
Սահմանափակումները
- Ընդհանուր առմամբ, Apache Hive հարցումներն ունեն շատ բարձր հետաձգում:
- Ենթահարկերի աջակցությունը սահմանափակ է:
- Իրական ժամանակի հարցումները և տողերի մակարդակի փոփոխությունները հասանելի չեն Apache Hive-ում:
- Նյութականացված տեսակետներին աջակցություն չկա։
- Փեթակում թարմացման և ջնջման գործողությունները չեն աջակցվում:
- Նախատեսված չէ OLTP-ի համար (առցանց անցումային գործընթաց):
Սկսում ենք Apache Hive-ով
Apache Hive-ը Hadoop-ի ուժեղ գործընկեր է, որը հեշտացնում և հեշտացնում է ձեր աշխատանքային հոսքերը: Apache Hive-ից առավելագույն օգուտ քաղելու համար անխափան ինտեգրումն էական է: Առաջին քայլը գնալն է կայքը.
1. Տեղադրման փեթակ կայուն թողարկումից
Սկսեք ներբեռնելով Hive-ի ամենավերջին կայուն թողարկումը Apache-ի ներբեռնման հայելիներից մեկից (տես Փեթակ թողարկումներ). Այնուհետև թարբոլը պետք է բացվի: Սա կստեղծի ենթապանակ, որը կոչվում է hive-xyz (որտեղ xyz-ը թողարկման համարն է).
Սահմանեք HIVE_HOME միջավայրի փոփոխականը, որպեսզի մատնանշի տեղադրման գրացուցակը.
Վերջապես, ավելացրեք $HIVE_HOME/bin ձեր PATH
:
2. Վազող փեթակ
Hive-ն օգտագործում է Hadoop, ուստի՝
- դուք պետք է ունենաք Hadoop ձեր ճանապարհին ԿԱՄ
3. DLL օպերացիա
Փեթակ աղյուսակի ստեղծում
ստեղծում է pokes անունով աղյուսակ երկու սյունակներով, որոնցից առաջինը ամբողջ թիվ է, իսկ երկրորդը՝ տող:
Թերթում աղյուսակների միջով
Ցուցակելով բոլոր աղյուսակները
Սեղանների փոփոխում և գցում
Աղյուսակների անունները կարող են փոխվել և սյունակները կարող են ավելացվել կամ փոխարինվել.
Հարկ է նշել, որ REPLACE COLUMNS-ը փոխարինում է բոլոր գոյություն ունեցող սյունակները՝ միաժամանակ փոխելով միայն աղյուսակի կառուցվածքը, այլ ոչ թե տվյալները: Աղյուսակում պետք է օգտագործվի բնիկ SerDe: REPLACE COLUMNS-ը կարող է օգտագործվել նաև աղյուսակի սխեմայից սյունակները հեռացնելու համար.
Նվազման սեղաններ
Apache Hive-ում կան բազմաթիվ լրացուցիչ գործողություններ և հնարավորություններ, որոնց մասին կարող եք իմանալ՝ այցելելով պաշտոնական կայք:
Եզրափակում
Hive-ի սահմանումը տվյալների ծրագրի միջերես է՝ հարցումների և վերլուծության համար հսկայական տվյալների հավաքածուների համար, որոնք կառուցված են Apache Hadoop-ի վերևում: Պրոֆեսիոնալներն այն ընտրում են այլ ծրագրերի, գործիքների և ծրագրերի փոխարեն, քանի որ այն հիմնականում նախատեսված է Hive-ի լայնածավալ տվյալների համար և հեշտ է օգտագործել:
Հուսով ենք, որ այս ձեռնարկը կօգնի ձեզ սկսել Apache Hive-ով և ձեր աշխատանքային հոսքերն ավելի արդյունավետ դարձնել: Տեղեկացրեք մեզ մեկնաբանություններում:
Թողնել գրառում