อิมพาลา - สถาปัตยกรรม

Impala เป็นเอ็นจิ้นการดำเนินการสืบค้น MPP (Massive Parallel Processing) ที่ทำงานบนระบบต่างๆในคลัสเตอร์ Hadoop อิมพาลาแตกต่างจากระบบจัดเก็บข้อมูลแบบดั้งเดิมอิมพาลาถูกแยกออกจากระบบจัดเก็บข้อมูล มันมีองค์ประกอบหลักสามส่วน ได้แก่ Impala daemon (Impalad) , Impala Statestore และ Impala metadata หรือ metastore

ภูตอิมพาลา ( Impalad )

Impala daemon (หรือที่เรียกว่า impalad) ทำงานบนแต่ละโหนดที่ติดตั้ง Impala ยอมรับการสืบค้นจากอินเทอร์เฟซต่างๆเช่นอิมพาลาเชลล์เว้เบราว์เซอร์ ฯลฯ ... และประมวลผล

เมื่อใดก็ตามที่ส่งแบบสอบถามไปยัง impalad บนโหนดใดโหนดหนึ่งโหนดนั้นจะทำหน้าที่เป็น "coordinator node” สำหรับข้อความค้นหานั้น Impaladให้บริการหลายคิวรีที่รันบนโหนดอื่นเช่นกัน หลังจากยอมรับการสืบค้นแล้วImpaladจะอ่านและเขียนไปยังไฟล์ข้อมูลและปรับเปลี่ยนคิวรีโดยกระจายงานไปยังโหนด Impala อื่นในคลัสเตอร์ Impala เมื่อคิวรีกำลังประมวลผลอินสแตนซ์ Impaladต่าง ๆทั้งหมดจะส่งคืนผลลัพธ์ไปยังโหนดการประสานงานกลาง

ขึ้นอยู่กับความต้องการแบบสอบถามสามารถส่งไปยังImpaladเฉพาะหรือในลักษณะโหลดบาลานซ์ไปยังImpaladอื่นในคลัสเตอร์ของคุณ

ร้านค้ารัฐอิมพาลา

Impala มีองค์ประกอบที่สำคัญอีกอย่างหนึ่งที่เรียกว่า Impala State store ซึ่งมีหน้าที่ในการตรวจสอบความสมบูรณ์ของImpaladแต่ละตัวจากนั้นจึงถ่ายทอดสุขภาพของ Impala daemon แต่ละตัวไปยังภูตตัวอื่นบ่อยๆ สิ่งนี้สามารถทำงานบนโหนดเดียวกันกับที่เซิร์ฟเวอร์ Impala หรือโหนดอื่น ๆ ภายในคลัสเตอร์กำลังทำงานอยู่

ชื่อของกระบวนการจัดเก็บภูตรัฐ Impala เป็นรัฐที่เก็บไว้ Impaladรายงานสถานะสุขภาพของตนที่ร้านภูตรัฐ Impala คือรัฐที่เก็บไว้

ในกรณีที่โหนดล้มเหลวเนื่องจากสาเหตุใดก็ตามStatestore จะอัปเดตโหนดอื่น ๆ ทั้งหมดเกี่ยวกับความล้มเหลวนี้และเมื่อการแจ้งเตือนดังกล่าวพร้อมใช้งานสำหรับอิมพาลาดอื่น ๆแล้วจะไม่มี Impala daemon ตัวอื่นที่กำหนดเคียวรีเพิ่มเติมให้กับโหนดที่ได้รับผลกระทบ

Impala Metadata & Meta Store

ข้อมูลเมตาและเมตาของ Impala เป็นอีกหนึ่งองค์ประกอบที่สำคัญ Impala ใช้ฐานข้อมูล MySQL หรือ PostgreSQL แบบดั้งเดิมในการจัดเก็บคำจำกัดความของตาราง รายละเอียดที่สำคัญเช่นข้อมูลตารางและคอลัมน์และคำจำกัดความของตารางจะถูกเก็บไว้ในฐานข้อมูลส่วนกลางที่เรียกว่า meta store

โหนด Impala แต่ละโหนดจะเก็บข้อมูลเมตาทั้งหมดไว้ในเครื่อง เมื่อต้องจัดการกับข้อมูลจำนวนมากและ / หรือหลายพาร์ติชันการรับข้อมูลเมตาเฉพาะของตารางอาจใช้เวลานานมาก ดังนั้นแคชข้อมูลเมตาที่จัดเก็บไว้ในเครื่องจะช่วยในการให้ข้อมูลดังกล่าวได้ทันที

เมื่อมีการอัปเดตข้อกำหนดตารางหรือข้อมูลตาราง Impala daemons อื่น ๆ จะต้องอัปเดตแคชข้อมูลเมตาของตนโดยการดึงข้อมูลเมตาล่าสุดก่อนที่จะออกแบบสอบถามใหม่กับตารางที่เป็นปัญหา

อินเตอร์เฟซการประมวลผลการสืบค้น

ในการประมวลผลคำค้นหา Impala มีอินเทอร์เฟซสามแบบตามรายการด้านล่าง

  • Impala-shell - หลังจากตั้งค่า Impala โดยใช้ Cloudera VM คุณสามารถเริ่มอิมพาลาเชลล์ได้โดยพิมพ์คำสั่ง impala-shellในตัวแก้ไข เราจะพูดคุยเพิ่มเติมเกี่ยวกับเปลือกอิมพาลาในบทต่อ ๆ ไป

  • Hue interface- คุณสามารถประมวลผลการสืบค้นของ Impala โดยใช้เบราว์เซอร์ Hue ในเบราว์เซอร์ Hue คุณมีตัวแก้ไขแบบสอบถาม Impala ที่คุณสามารถพิมพ์และดำเนินการสืบค้นอิมพาลาได้ ในการเข้าถึงโปรแกรมแก้ไขนี้ก่อนอื่นคุณต้องเข้าสู่ระบบเบราว์เซอร์ Hue

  • ODBC/JDBC drivers- เช่นเดียวกับฐานข้อมูลอื่น ๆ Impala มีไดรเวอร์ ODBC / JDBC เมื่อใช้ไดรเวอร์เหล่านี้คุณสามารถเชื่อมต่อกับอิมพาลาผ่านภาษาโปรแกรมที่รองรับไดรเวอร์เหล่านี้และสร้างแอปพลิเคชันที่ประมวลผลการสืบค้นในอิมพาลาโดยใช้ภาษาโปรแกรมเหล่านั้น

ขั้นตอนการดำเนินการสืบค้น

เมื่อใดก็ตามที่ผู้ใช้ส่งแบบสอบถามโดยใช้อินเทอร์เฟซใด ๆ ที่ให้มาสิ่งนี้จะถูกยอมรับโดย Impalads ตัวใดตัวหนึ่งในคลัสเตอร์ Impalad นี้ถือว่าเป็นผู้ประสานงานสำหรับข้อความค้นหานั้น ๆ

หลังจากได้รับคำถามแล้วผู้ประสานงานการสืบค้นจะตรวจสอบว่าแบบสอบถามนั้นเหมาะสมหรือไม่โดยใช้ Table Schemaจาก Hive meta store หลังจากนั้นจะรวบรวมข้อมูลเกี่ยวกับตำแหน่งของข้อมูลที่จำเป็นในการดำเนินการสืบค้นจากโหนดชื่อ HDFS และส่งข้อมูลนี้ไปยังอิมพาลาดอื่น ๆ เพื่อดำเนินการสืบค้น

Impala daemons อื่น ๆ ทั้งหมดอ่านบล็อกข้อมูลที่ระบุและประมวลผลแบบสอบถาม ทันทีที่ภูตทั้งหมดทำงานเสร็จผู้ประสานงานคิวรีจะรวบรวมผลลัพธ์กลับมาและส่งมอบให้กับผู้ใช้