Hive бол бизнест өргөн хэрэглэгддэг Big Data Analytics хэрэгсэл бөгөөд хэрэв та Big Data-д шинээр нэвтэрч байгаа бол эхлэхэд маш тохиромжтой газар юм. Энэхүү Apache Hive хичээл нь Apache Hive-ийн үндсэн ойлголтууд, үүр яагаад хэрэгтэй вэ, түүний онцлог шинж чанарууд болон таны мэдэх ёстой бусад бүх зүйлийг багтаасан болно.
Эхлээд Apache Hive дээр суурилсан Hadoop хүрээг ойлгоцгооё.
Апачи Хадуп
Apache Hadoop бол үнэ төлбөргүй бөгөөд нээлттэй эх үүсвэр гигабайтаас петабайт хүртэлх хэмжээтэй том өгөгдлийн багцыг хадгалах, боловсруулах платформ. Hadoop нь өгөгдлийг хадгалах, дүн шинжилгээ хийхэд ганц том компьютер шаардахын оронд олон тооны компьютеруудыг кластер болгоход асар их өгөгдлийн багцыг зэрэгцүүлэн шинжлэх боломжийг олгодог.
MapReduce болон Hadoop Distributed File System нь дараах хоёр бүрэлдэхүүн хэсэг юм.
- MapReduce – MapReduce нь барааны техник хангамжийн кластеруудын зохион байгуулалттай, хагас бүтэцтэй, бүтэцгүй асар их хэмжээний өгөгдлийг боловсруулахад зориулагдсан зэрэгцээ програмчлалын техник юм.
- HDFS – HDFS (Hadoop Distributed File System) нь өгөгдлийг хадгалж, боловсруулдаг Hadoop хүрээний бүрэлдэхүүн хэсэг юм. Энэ нь стандарт техник хангамж дээр ажилладаг алдааг тэсвэрлэх чадвартай файлын систем юм
Sqoop, Pig, Hive зэрэг Hadoop экосистемийн өөр өөр дэд төслүүдийг (хэрэгслүүд) Hadoop модулиудад туслах зорилгоор ашигладаг.
- Зөгий – Hive нь MapReduce тооцооллыг гүйцэтгэдэг SQL маягийн скрипт бичих хүрээ юм.
- Гахай – Pig бол MapReduce процессын скрипт үүсгэхэд ашиглаж болох процедурын програмчлалын хэл юм.
- Скооп – Sqoop бол HDFS болон RDBMS хооронд өгөгдөл импортлох, экспортлох хэрэгсэл юм.
Гэж юу вэ Апачи үүр?
Apache Hive бол нээлттэй эх сурвалж юм өгөгдлийн агуулах Apache Hadoop Distributed File System (HDFS) эсвэл Apache HBase зэрэг бусад өгөгдөл хадгалах системд шууд хадгалагдсан асар том өгөгдлийн багцыг унших, бичих, удирдахад зориулагдсан програм.
SQL хөгжүүлэгчид ердийн SQL хэллэгтэй харьцуулах боломжтой Hive Query Language (HQL) хэллэгүүдийг үүсгэхийн тулд Hive-г ашиглаж болно. Энэ нь урт Java код сурах, бичих хэрэгцээг арилгаснаар MapReduce програмчлалыг хялбар болгох зорилгоор бүтээгдсэн. Үүний оронд та асуултуудаа HQL дээр бичиж болох бөгөөд Hive нь газрын зургийг бүтээж, танд зориулж функцуудыг багасгах болно.
Apache Hive-ийн SQL-тэй төстэй интерфэйс нь түр зуурын хайлт хийх, Hadoop өгөгдлийг нэгтгэн дүгнэх, дүн шинжилгээ хийх алтан стандарт болсон. Үүлэнд орсон үед тооцоолох сүлжээнүүд, энэ шийдэл нь ялангуяа зардал багатай, өргөтгөх боломжтой тул Netflix, Amazon зэрэг олон пүүс Apache Hive-ийг үргэлжлүүлэн хөгжүүлж, сайжруулсаар байна.
түүх
Фэйсбүүкт байх хугацаандаа Joydeep Sen Sarma, Ashish Thusooo нар 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 лавлахтай.
архитектур
Одоо бид үүрний архитектурын хамгийн чухал зүйлийн талаар ярих болно. Apache Hive-ийн бүрэлдэхүүн хэсгүүд нь дараах байдалтай байна.
Metastore — Хүснэгт бүрийн бүтэц, байршил зэрэг мэдээллийг бүртгэдэг. Хуваалтын мета өгөгдлийг мөн адил Hive-д оруулсан болно. Энэ нь драйверд кластерт тархсан янз бүрийн өгөгдлийн багцын явцыг хянах боломжийг олгодог. Өгөгдөл нь ердийн RDBMS форматаар хадгалагддаг. Hive мета өгөгдөл нь драйверд өгөгдлийг хянахад маш чухал юм. Нөөц сервер нь өгөгдлийг тогтмол хуулбарладаг тул өгөгдөл алдагдсан тохиолдолд сэргээх боломжтой.
Жолооч – HiveQL мэдэгдлийг хянагчаар ажилладаг драйвер хүлээн авдаг. Сессийг байгуулснаар жолооч мэдэгдлийн гүйцэтгэлийг эхлүүлдэг. Гүйцэтгэх засаглалын нас, ахиц дэвшлийг бүртгэдэг. HiveQL мэдэгдлийг гүйцэтгэх явцад драйвер шаардлагатай мета өгөгдлийг хадгалдаг. Энэ нь мөн Reduce үйл явцын дараа өгөгдөл эсвэл асуулгын үр дүнг цуглуулах цэг болдог.
Нийлүүлэгч – Энэ нь HiveQL асуулгын эмхэтгэлийг гүйцэтгэдэг. Асуулга нь одоо гүйцэтгэлийн төлөвлөгөө болж хувирсан. Даалгавруудыг төлөвлөгөөнд тусгасан болно. Энэ нь асуулгад орчуулагдсан үр дүнг авахын тулд MapReduce-ийн хийх ёстой алхмуудыг багтаасан болно. Асуултыг Hive-ийн хөрвүүлэгч (AST) хийсвэр синтакс мод болгон хувиргадаг. Тохиромжтой байдал болон эмхэтгэх хугацааны алдааг (DAG) шалгасны дараа AST-ийг чиглэгдсэн циклик график болгон хувиргадаг.
Оновчтой болгох – Энэ нь гүйцэтгэлийн төлөвлөгөөнд янз бүрийн өөрчлөлт хийх замаар DAG-ийг оновчтой болгодог. Энэ нь холболтын дамжуулах хоолойг нэг холболт болгон хувиргах зэрэг үр ашгийг дээшлүүлэх өөрчлөлтүүдийг хослуулсан. Оновчлогч хурдыг сайжруулахын тулд багасгах үйлдлийг гүйцэтгэхийн өмнө өгөгдөлд хувиргалт хийх гэх мэт үйл ажиллагааг хувааж болно.
Гүйцэтгэгч – Гүйцэтгэгч нь эмхэтгэл болон оновчлол дууссаны дараа даалгавруудыг гүйцэтгэдэг. Ажлын байрыг Гүйцэтгэгч нь дамжуулдаг.
CLI, UI, болон Thrift Server – Командын мөрийн интерфейс (CLI) нь гадны хэрэглэгчдэд Hive-тэй холбогдох боломжийг олгодог хэрэглэгчийн интерфейс юм. JDBC эсвэл ODBC протоколуудтай төстэй Hive-ийн хэмнэлттэй сервер нь гадны үйлчлүүлэгчдэд сүлжээгээр дамжуулан Hive-тэй холбогдох боломжийг олгодог.
Аюулгүй байдал
Apache Hive нь үйлчлүүлэгч-серверийн харилцан баталгаажуулалтад Kerberos ашигладаг Hadoop аюулгүй байдалтай нэгдсэн. 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. Тогтвортой хувилбараас суулгасан үүр
Apache татаж авах толин тусгалуудын аль нэгнээс Hive-ийн хамгийн сүүлийн тогтвортой хувилбарыг татаж аваад эхлээрэй (харна уу Hive хувилбарууд). Дараа нь тарболыг задлах ёстой. Энэ нь hive-xyz нэртэй дэд хавтас үүсгэх болно (үүнд xyz нь хувилбарын дугаар юм):
HIVE_HOME орчны хувьсагчийг суулгацын лавлах руу чиглүүлэхээр тохируулна уу:
Эцэст нь $HIVE_HOME/bin-д нэмнэ үү PATH
:
2. Running Hive
Hive Hadoop ашигладаг тул:
- Таны замд Hadoop байх ёстой OR
3. DLL үйлдлийн систем
Hive хүснэгт үүсгэх
pokes нэртэй хоёр багана бүхий хүснэгтийг үүсгэдэг бөгөөд эхнийх нь бүхэл тоо, хоёр дахь нь мөр юм.
Хүснэгтүүдийг үзэх
Бүх хүснэгтүүдийг жагсаах
Хүснэгтүүдийг өөрчлөх, буулгах
Хүснэгтийн нэрийг өөрчилж, багануудыг нэмж, сольж болно:
REPLACE COLUMNS нь одоо байгаа бүх баганыг орлуулж, өгөгдлийг биш зөвхөн хүснэгтийн бүтцийг өөрчилдөг гэдгийг тэмдэглэх нь зүйтэй. Хүснэгтэнд уугуул SerDe ашиглах ёстой. REPLACE COMMNS-ийг хүснэгтийн схемээс багануудыг устгахад ашиглаж болно.
Хүснэгтүүдийг буулгах
Apache Hive-д олон нэмэлт үйлдлүүд болон функцууд байдаг бөгөөд та албан ёсны вэбсайтад зочилж мэдэж болно.
Дүгнэлт
Зөгийн үүрний тодорхойлолт нь Apache Hadoop дээр бүтээгдсэн асар том өгөгдлийн багцад зориулсан асуулга, дүн шинжилгээ хийх өгөгдлийн программын интерфейс юм. Энэ нь ихэвчлэн Hive-ийн өргөн хүрээний өгөгдөлд зориулагдсан бөгөөд хэрэглэхэд хялбар тул мэргэжлийн хүмүүс үүнийг бусад програм, хэрэгсэл, програм хангамжаас илүү сонгодог.
Энэхүү заавар нь танд Apache Hive-ийг эхлүүлж, ажлын урсгалаа илүү үр дүнтэй болгоход тусална гэж найдаж байна. Сэтгэгдэл дээр бидэнд мэдэгдээрэй.
хариу үлдээх