Hive ใน Hadoop คืออะไร? ประวัติและส่วนประกอบ
เผยแพร่แล้ว: 2021-10-07Apache Hive เป็นระบบคลังสินค้าแบบโอเพนซอร์สที่สร้างขึ้นบน Hadoop Hive ใช้สำหรับสืบค้นและวิเคราะห์ชุดข้อมูลขนาดใหญ่ที่จัดเก็บไว้ใน Hadoop ทำงานโดยการประมวลผลข้อมูลทั้งที่มีโครงสร้างและกึ่งโครงสร้าง
ในบทความนี้ เราจะมาพูดถึงรายละเอียดเกี่ยวกับ Hive ใน Hadoop ประวัติ ความสำคัญ สถาปัตยกรรม Hive คุณสมบัติหลัก ข้อจำกัดบางประการ และอื่นๆ ในบทความนี้
สารบัญ
ไฮฟ์คืออะไร?
Apache Hive เป็นเพียงซอฟต์แวร์คลังข้อมูลที่สร้างขึ้นโดยใช้ Hadoop เป็นฐาน ก่อน Apache Hive วิศวกร Big Data ต้องเขียนงานลดแผนที่ที่ซับซ้อนเพื่อดำเนินการสืบค้นข้อมูล ในทางกลับกัน Hive สิ่งต่าง ๆ ลดลงอย่างมากเนื่องจากวิศวกรจำเป็นต้องรู้ SQL เท่านั้น
Hive ทำงานในภาษาที่เรียกว่า HiveQL (คล้ายกับ SQL) ทำให้วิศวกรที่มีความรู้เกี่ยวกับ SQL ทำงานได้ง่ายขึ้น HiveQL จะแปลการสืบค้น SQL ของคุณเป็นงานลดแผนที่ที่ Hadoop สามารถดำเนินการได้โดยอัตโนมัติ
ในการทำเช่นนั้น Apache นำเสนอแนวคิดเรื่องนามธรรมในการทำงานของ Hadoop และอนุญาตให้ผู้เชี่ยวชาญด้านข้อมูลจัดการกับชุดข้อมูลที่ซับซ้อนโดยไม่ต้องเรียนรู้ภาษาการเขียนโปรแกรม Java สำหรับการทำงานกับ Hive Apache Hive ทำงานบนเวิร์กสเตชันของคุณและแปลงการสืบค้น SQL เป็นงานลดแผนที่เพื่อดำเนินการบนคลัสเตอร์ Hadoop Hive จัดหมวดหมู่ข้อมูลทั้งหมดของคุณลงในตาราง ดังนั้นจึงจัดโครงสร้างข้อมูลทั้งหมดที่มีอยู่ใน HDFS
ประวัติ Apache Hive
ทีมโครงสร้างพื้นฐานข้อมูลแนะนำ Apache Hive ที่ Facebook เป็นหนึ่งในเทคโนโลยีที่ใช้งานในเชิงรุกบน Facebook เพื่อวัตถุประสงค์ภายในหลายประการ ในช่วงหลายปีที่ผ่านมา Apache Hive ได้เรียกใช้งานหลายพันงานบนคลัสเตอร์โดยมีผู้ใช้หลายร้อยคนสำหรับแอปพลิเคชันต่างๆ
คลัสเตอร์ Hive-Hadoop ที่ Facebook จัดเก็บข้อมูลดิบมากกว่า 3PB สามารถโหลดข้อมูลได้ 15TB แบบเรียลไทม์ทุกวัน จากจุดนั้น Apache Hive เติบโตขึ้นมากขึ้นในกรณีการใช้งาน และวันนี้ก็ถูกใช้โดยบริษัทยักษ์ใหญ่อย่าง IBM, Yahoo, Amazon, FINRA, Netflix และอื่นๆ
รับใบรับรองวิทยาศาสตร์ข้อมูล ของคุณ ทาง ออนไลน์จากมหาวิทยาลัยชั้นนำของโลก รับโปรแกรม PG สำหรับผู้บริหาร โปรแกรมประกาศนียบัตรขั้นสูง หรือโปรแกรมปริญญาโท เพื่อติดตามอาชีพของคุณอย่างรวดเร็ว
ทำไมต้องมี Apache Hive?
ก่อนที่จะมากับ Apache Hive Facebook ได้ต่อสู้กับความท้าทายมากมาย เช่น ขนาดข้อมูลที่เพิ่มขึ้นเรื่อย ๆ เพื่อวิเคราะห์และความไม่สอดคล้องกันอย่างที่สุดในชุดข้อมูลขนาดใหญ่นี้ ความท้าทายเหล่านี้ทำให้ Facebook จัดการกับงานที่ต้องใช้ข้อมูลมากได้อย่างราบรื่น โครงสร้างที่ใช้ RDBMS แบบดั้งเดิมนั้นไม่เพียงพอต่อการควบคุมแรงกดดันที่เพิ่มมากขึ้นเรื่อยๆ
Facebook เปิดตัว map-reduce ครั้งแรกเพื่อเอาชนะความท้าทายเหล่านี้ แต่จากนั้นก็ลดความซับซ้อนลงอีกโดยนำเสนอ Apache Hive ซึ่งทำงานบน HiveQL
ในที่สุด Apache Hive ก็กลายเป็นผู้ช่วยชีวิตที่จำเป็นมากและช่วยให้ Facebook เอาชนะความท้าทายต่างๆ ตอนนี้ การใช้ Apache Hive ทำให้ Facebook สามารถบรรลุสิ่งต่อไปนี้:
- วิวัฒนาการและความยืดหยุ่นของสคีมา
- การแบ่งพาร์ติชั่นและการจัดเก็บตาราง
- การกำหนดตารางไฮฟ์โดยตรงใน HDFS
- ความพร้อมใช้งานของไดรเวอร์ ODBC/JDBC
โดยรวมแล้ว Apache Hive ช่วยให้นักพัฒนาประหยัดเวลาได้มาก ซึ่งอาจนำไปใช้ในการเขียนงานลดแผนที่ที่ซับซ้อนได้ Hive นำความเรียบง่ายมาสู่การสรุป การวิเคราะห์ การสืบค้น และการสำรวจข้อมูล
Apache Hive อาศัยเฉพาะกับ SQL เท่านั้น เป็นเฟรมเวิร์กที่รวดเร็วและปรับขนาดได้ และขยายได้สูง หากคุณเข้าใจการสืบค้นข้อมูลพื้นฐานโดยใช้ SQL คุณจะสามารถทำงานกับ Apache Hive ได้ในเวลาไม่นาน! นอกจากนี้ยังมีการเข้าถึงไฟล์ในที่เก็บข้อมูลต่างๆ เช่น HBase และ HDFS
สถาปัตยกรรมของ Apache Hive
เมื่อคุณเข้าใจถึงความสำคัญและการเกิดขึ้นของ Apache Hive แล้ว มาดูส่วนประกอบหลักของ Apache Hive กัน สถาปัตยกรรมของ Apache Hive ประกอบด้วย:
1. Metastore
ใช้สำหรับจัดเก็บข้อมูลเมตาสำหรับแต่ละตาราง โดยทั่วไปข้อมูลเมตาจะประกอบด้วยตำแหน่งและสคีมา Metastore ยังประกอบด้วยข้อมูลเมตาของพาร์ติชั่น ซึ่งช่วยให้วิศวกรติดตามความคืบหน้าของชุดข้อมูลต่างๆ ที่แจกจ่ายผ่านคลัสเตอร์ ข้อมูลที่เก็บไว้ที่นี่อยู่ในรูปแบบ RDBMS ดั้งเดิม
2. คนขับ
ไดรเวอร์ใน Apache Hive เป็นเหมือนตัวควบคุมที่รับผิดชอบในการรับคำสั่ง HiveQL จากนั้นจึงเริ่มดำเนินการตามคำสั่งเหล่านี้โดยสร้างเซสชันต่างๆ คนขับมีหน้าที่ตรวจสอบและจัดการวงจรชีวิตของการใช้งานและความคืบหน้าตลอดเส้นทาง โปรแกรมควบคุมเก็บข้อมูลเมตาที่สำคัญทั้งหมดที่สร้างขึ้นเมื่อดำเนินการคำสั่ง HiveQL นอกจากนี้ยังทำหน้าที่เป็นจุดรวบรวมข้อมูลที่ได้รับหลังจากการดำเนินการลดแผนที่
3. คอมไพเลอร์
คอมไพเลอร์ใช้สำหรับรวบรวมแบบสอบถาม HiveQL มันแปลงการสืบค้นที่ผู้ใช้สร้างขึ้นเป็นแผนการดำเนินการที่เข้าใจผิดได้ซึ่งมีงานทั้งหมดที่จำเป็นต้องดำเนินการ แผนยังรวมถึงขั้นตอนและขั้นตอนทั้งหมดที่จำเป็นในการปฏิบัติตามแผนที่ลดเพื่อให้ได้ผลลัพธ์ที่ต้องการ คอมไพเลอร์ Hive จะแปลงการสืบค้นข้อมูลของผู้ใช้เป็น AST (Abstract Syntax Tree) เพื่อตรวจสอบข้อผิดพลาดในการคอมไพล์เวลาหรือปัญหาความเข้ากันได้ AST จะเปลี่ยนเป็น Directed Acyclic Graph (DAG) เมื่อไม่พบปัญหาใดๆ
4. เครื่องมือเพิ่มประสิทธิภาพ
เครื่องมือเพิ่มประสิทธิภาพทำการเปลี่ยนแปลงทั้งหมดในแผนการดำเนินการที่จำเป็นในการเข้าถึง DAG ที่ปรับให้เหมาะสม ทำได้โดยการรวมการแปลงทั้งหมดเข้าด้วยกัน เช่น การแปลงอาร์เรย์ของการรวมเป็นการรวมเดี่ยว - เพื่อเพิ่มประสิทธิภาพ นอกจากนี้ เครื่องมือเพิ่มประสิทธิภาพสามารถแบ่งงานต่างๆ ได้โดยใช้การแปลงข้อมูลก่อนที่จะดำเนินการที่ลดลง – อีกครั้ง เพื่อปรับปรุงประสิทธิภาพโดยรวม
5. ผู้ดำเนินการ –
เมื่อ Apache Hive ได้ดำเนินการคอมไพล์และงานปรับให้เหมาะสมแล้ว ผู้ดำเนินการจะดำเนินการดำเนินการขั้นสุดท้าย ดูแลการวางท่องานและดำเนินการให้เสร็จสิ้น
6. CLI, UI และเซิร์ฟเวอร์ Thrift
ส่วนต่อประสานบรรทัดคำสั่ง (CLI) ใช้สำหรับจัดเตรียมส่วนต่อประสานผู้ใช้กับผู้ใช้ภายนอกเพื่อโต้ตอบกับคุณสมบัติต่างๆ ของ Apache Hive CLI คือสิ่งที่ทำให้ UI ของ Hive สำหรับผู้ใช้ปลายทาง ในทางกลับกัน เซิร์ฟเวอร์ Thrift อนุญาตให้ไคลเอนต์ภายนอกโต้ตอบกับ Hive ผ่านเครือข่าย คล้ายกับโปรโตคอล ODBC หรือ JDBC
คุณสมบัติหลักของ Apache Hive
ดังที่ได้กล่าวไว้ก่อนหน้านี้ Apache Hive ทำให้เกิดการเปลี่ยนแปลงที่จำเป็นอย่างมากในวิธีที่วิศวกรทำงานเกี่ยวกับงานข้อมูล ไม่ใช่ Java ที่เป็นภาษาหลักอีกต่อไป และนักพัฒนาก็สามารถทำงานได้โดยใช้ SQL เพียงอย่างเดียว นอกจากนั้น ยังมีคุณสมบัติที่สำคัญอื่นๆ อีกหลายประการของ Hive เช่นกัน เช่น:
- Apache Hive นำเสนอการสรุปข้อมูล การวิเคราะห์ และการสืบค้นในลักษณะที่ง่ายขึ้นมาก
- Hive รองรับตารางภายในและภายนอก ทำให้สามารถทำงานกับข้อมูลภายนอกโดยไม่ต้องนำเข้า H DFS
- Apache Hive ทำงานได้ดีกับความต้องการอินเทอร์เฟซระดับต่ำของ Hadoop
- ด้วยการรองรับการแบ่งพาร์ติชั่นข้อมูลที่ระดับตาราง Apache Hive ช่วยปรับปรุงประสิทธิภาพโดยรวม
- มีเครื่องมือเพิ่มประสิทธิภาพตามกฎสำหรับการเพิ่มประสิทธิภาพแผนตรรกะต่างๆ
- มันทำงานบน HiveQL ซึ่งเป็นภาษาที่คล้ายกับ SQL ซึ่งหมายความว่านักพัฒนาไม่จำเป็นต้องเชี่ยวชาญภาษาอื่นเพื่อทำงานกับชุดข้อมูลขนาดใหญ่
- การสืบค้นใน Hive นั้นง่ายมาก คล้ายกับ SQL
- นอกจากนี้เรายังสามารถเรียกใช้การสืบค้นข้อมูลเฉพาะกิจสำหรับการวิเคราะห์ข้อมูลโดยใช้ Hive
ข้อจำกัดของ Apache Hive
เนื่องจากโลกของ Data Science ค่อนข้างใหม่และมีการพัฒนาอยู่ตลอดเวลา แม้แต่เครื่องมือที่ดีที่สุดในตลาดก็มีข้อจำกัดบางประการ การแก้ไขข้อจำกัดเหล่านั้นคือสิ่งที่จะให้เครื่องมือที่ดีที่สุดต่อไปแก่เรา ข้อจำกัดบางประการในการทำงานกับ Apache Hive ที่คุณควรคำนึงถึง:
- Hive ไม่มีการอัปเดตระดับแถวและการสืบค้นตามเวลาจริง
- Apache Hive ให้เวลาแฝงที่ยอมรับได้สำหรับการโต้ตอบ
- ไม่ใช่วิธีที่ดีที่สุดสำหรับการทำงานกับธุรกรรมออนไลน์
- เวลาในการตอบสนองในการค้นหา Hive โดยทั่วไปจะสูงกว่าค่าเฉลี่ย
สรุปแล้ว
Apache Hive ทำให้เกิดการปรับปรุงอย่างมากและน่าทึ่งในวิธีที่วิศวกรข้อมูลทำงานบนชุดข้อมูลขนาดใหญ่ นอกจากนี้ ด้วยการขจัดความจำเป็นในการใช้ภาษาโปรแกรม Java อย่างสมบูรณ์ Apache Hive ได้นำความสะดวกสบายที่คุ้นเคยมาสู่วิศวกรข้อมูล วันนี้ คุณสามารถทำงานกับ Apache Hive ได้อย่างราบรื่น หากคุณมีความรู้พื้นฐานเกี่ยวกับการสืบค้น SQL
ดังที่เราได้กล่าวไว้ก่อนหน้านี้ Data Science เป็นสาขาที่มีการเปลี่ยนแปลงตลอดเวลา เรามั่นใจว่าอีกไม่กี่ปีข้างหน้าจะนำเสนอเครื่องมือและเฟรมเวิร์กใหม่ๆ เพื่อทำให้สิ่งต่างๆ ง่ายขึ้นไปอีก หากคุณเป็นผู้คลั่งไคล้ข้อมูลที่ต้องการเรียนรู้เครื่องมือทั้งหมดเกี่ยวกับการค้า Data Science ตอนนี้เป็นเวลาที่ดีที่สุดที่จะใช้งานเครื่องมือ Big Data เช่น Hive
ที่ upGrad เราได้ให้คำปรึกษาและแนะนำนักเรียนจากทั่วทุกมุมโลก และช่วยให้ผู้คนจากภูมิหลังที่แตกต่างกันสร้างรากฐานที่มั่นคงในอุตสาหกรรม Data Science อาจารย์ผู้เชี่ยวชาญ พันธมิตรในอุตสาหกรรม ความช่วยเหลือด้านตำแหน่ง และเครือข่ายศิษย์เก่าที่แข็งแกร่งของเรา รับรองว่าคุณจะไม่มีวันโดดเดี่ยวในการเดินทางนี้ ลองดู Executive PG Program ของเราใน Data Science แล้วลงทะเบียนเรียนในโปรแกรมที่เหมาะกับคุณ เราจะจัดการที่เหลือเอง!
Apache Hive เป็นเฟรมเวิร์กหรือระบบที่ใช้สำหรับการจัดเก็บ การสืบค้น และการวิเคราะห์ชุดข้อมูลขนาดใหญ่ Apache Hive ได้รับการแนะนำโดย Facebook เพื่อปรับปรุงการทำงานภายใน และนับแต่นั้นมาก็เป็นส่วนสำคัญของสเปกตรัม Data Science ไม่! แค่ความรู้ในการทำงานของ SQL ก็เพียงพอแล้วสำหรับคุณในการเริ่มต้นกับ Apache Hive! โดยทั่วไปแล้ว Apache Hive จะใช้สำหรับ OLAP (การประมวลผลแบบแบตช์) และโดยทั่วไปจะไม่ใช้สำหรับ OLTP เนื่องจากการดำเนินการแบบเรียลไทม์บนฐานข้อมูลApache Hive ใน Hadoop คืออะไร?
ฉันจำเป็นต้องเรียนรู้ภาษาใดเป็นพิเศษเพื่อทำงานกับ Apache Hive ใน Hadoop หรือไม่
Apache Hive ไม่ได้ใช้ทำอะไร