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