Apache Flume - สถาปัตยกรรม

ภาพประกอบต่อไปนี้แสดงให้เห็นถึงสถาปัตยกรรมพื้นฐานของ Flume ดังที่แสดงในภาพประกอบdata generators (เช่น Facebook, Twitter) สร้างข้อมูลที่รวบรวมโดย Flume แต่ละตัว agentsวิ่งบนพวกเขา หลังจากนั้นกdata collector (ซึ่งเป็นตัวแทนเช่นกัน) รวบรวมข้อมูลจากเอเจนต์ซึ่งรวมและส่งไปยังที่เก็บส่วนกลางเช่น HDFS หรือ HBase

เหตุการณ์ Flume

อัน event เป็นหน่วยพื้นฐานของข้อมูลที่ขนส่งภายใน Flume. ประกอบด้วยเพย์โหลดของอาร์เรย์ไบต์ที่จะถูกขนส่งจากต้นทางไปยังปลายทางพร้อมกับส่วนหัวที่เป็นทางเลือก เหตุการณ์ Flume ทั่วไปจะมีโครงสร้างดังต่อไปนี้ -

ตัวแทน Flume

อัน agentเป็นกระบวนการ daemon อิสระ (JVM) ใน Flume รับข้อมูล (เหตุการณ์) จากไคลเอนต์หรือเอเจนต์อื่น ๆ และส่งต่อไปยังปลายทางถัดไป (ซิงก์หรือเอเจนต์) Flume อาจมีตัวแทนมากกว่าหนึ่งคน แผนภาพต่อไปนี้แสดงถึงไฟล์Flume Agent

ดังที่แสดงในแผนภาพ Flume Agent ประกอบด้วยองค์ประกอบหลักสามส่วน ได้แก่ source, channelและ sink.

ที่มา

source เป็นส่วนประกอบของตัวแทนที่รับข้อมูลจากตัวสร้างข้อมูลและถ่ายโอนไปยังหนึ่งช่องทางขึ้นไปในรูปแบบของเหตุการณ์ Flume

Apache Flume รองรับแหล่งที่มาหลายประเภทและแต่ละแหล่งรับเหตุการณ์จากตัวสร้างข้อมูลที่ระบุ

Example - แหล่ง Avro, แหล่ง Thrift, แหล่ง twitter 1% เป็นต้น

ช่อง

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

ช่องเหล่านี้ทำธุรกรรมได้อย่างสมบูรณ์และสามารถทำงานกับแหล่งที่มาและอ่างล้างมือจำนวนเท่าใดก็ได้

Example - ช่อง JDBC, ช่องระบบไฟล์, ช่องหน่วยความจำ ฯลฯ

จม

sinkเก็บข้อมูลไว้ในร้านค้าส่วนกลางเช่น HBase และ HDFS มันใช้ข้อมูล (เหตุการณ์) จากช่องและส่งไปยังปลายทาง ปลายทางของอ่างล้างจานอาจเป็นตัวแทนรายอื่นหรือร้านค้าส่วนกลาง

Example - อ่างล้างจาน HDFS

Note- ตัวแทนฟลูมสามารถมีแหล่งที่มาอ่างล้างมือและช่องได้หลายช่องทาง เราได้แสดงรายการแหล่งที่มาซิงก์ช่องสัญญาณที่รองรับทั้งหมดในบทการกำหนดค่า Flume ของบทช่วยสอนนี้

ส่วนประกอบเพิ่มเติมของ Flume Agent

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

อินเตอร์เซปเตอร์

Interceptors ใช้เพื่อปรับเปลี่ยน / ตรวจสอบเหตุการณ์ flume ที่ถ่ายโอนระหว่างแหล่งที่มาและช่องสัญญาณ

ตัวเลือกช่อง

สิ่งเหล่านี้ใช้เพื่อกำหนดช่องทางที่จะเลือกถ่ายโอนข้อมูลในกรณีที่มีหลายช่องสัญญาณ ตัวเลือกช่องมีสองประเภท -

  • Default channel selectors - สิ่งเหล่านี้เรียกอีกอย่างว่าการจำลองตัวเลือกช่องซึ่งจำลองเหตุการณ์ทั้งหมดในแต่ละช่อง

  • Multiplexing channel selectors - สิ่งเหล่านี้จะตัดสินใจให้ช่องส่งกิจกรรมตามที่อยู่ในส่วนหัวของเหตุการณ์นั้น

โปรเซสเซอร์ Sink

สิ่งเหล่านี้ใช้เพื่อเรียกซิงก์เฉพาะจากกลุ่มซิงก์ที่เลือก สิ่งเหล่านี้ใช้เพื่อสร้างเส้นทางเฟลโอเวอร์สำหรับซิงก์ของคุณหรือเหตุการณ์โหลดบาลานซ์ในซิงก์หลายรายการจากแชนเนล