Apache Flume - การกำหนดค่า
หลังจากติดตั้ง Flume เราต้องกำหนดค่าโดยใช้ไฟล์กำหนดค่าซึ่งเป็นไฟล์คุณสมบัติ Java ที่มีไฟล์ key-value pairs. เราจำเป็นต้องส่งค่าไปยังคีย์ในไฟล์
ในไฟล์การกำหนดค่า Flume เราจำเป็นต้อง -
- ตั้งชื่อคอมโพเนนต์ของเอเจนต์ปัจจุบัน
- อธิบาย / กำหนดค่าแหล่งที่มา
- อธิบาย / กำหนดค่าอ่างล้างจาน
- อธิบาย / กำหนดค่าช่อง
- ผูกแหล่งที่มาและซิงก์กับช่อง
โดยปกติเราสามารถมีตัวแทนได้หลายคนใน Flume เราสามารถแยกความแตกต่างของตัวแทนแต่ละคนได้โดยใช้ชื่อเฉพาะ และการใช้ชื่อนี้เราต้องกำหนดคอนฟิกแต่ละเอเจนต์
การตั้งชื่อส่วนประกอบ
ก่อนอื่นคุณต้องตั้งชื่อ / รายการส่วนประกอบเช่นแหล่งที่มาซิงก์และช่องของตัวแทนดังที่แสดงด้านล่าง
agent_name.sources = source_name
agent_name.sinks = sink_name
agent_name.channels = channel_name
Flume รองรับแหล่งที่มาอ่างล้างมือและช่องต่างๆ มีรายชื่ออยู่ในตารางด้านล่าง
แหล่งที่มา | ช่อง | อ่างล้างมือ |
---|---|---|
|
|
|
คุณสามารถใช้สิ่งเหล่านี้ได้ ตัวอย่างเช่นหากคุณกำลังถ่ายโอนข้อมูล Twitter โดยใช้แหล่งที่มาของ Twitter ผ่านช่องหน่วยความจำไปยังอ่างล้างจาน HDFS และรหัสชื่อตัวแทนTwitterAgentแล้ว
TwitterAgent.sources = Twitter
TwitterAgent.channels = MemChannel
TwitterAgent.sinks = HDFS
หลังจากแสดงรายการส่วนประกอบของเอเจนต์แล้วคุณต้องอธิบายซอร์สซิงก์และแชนเนลโดยระบุค่าให้กับคุณสมบัติของเอเจนต์
การอธิบายแหล่งที่มา
แต่ละแหล่งจะมีรายการคุณสมบัติแยกกัน คุณสมบัติที่ชื่อว่า“ type” เป็นเรื่องปกติสำหรับทุกแหล่งที่มาและใช้เพื่อระบุประเภทของแหล่งที่มาที่เราใช้
นอกจากคุณสมบัติ "type" แล้วจำเป็นต้องระบุค่าของ required คุณสมบัติของแหล่งเฉพาะเพื่อกำหนดค่าดังที่แสดงด้านล่าง
agent_name.sources. source_name.type = value
agent_name.sources. source_name.property2 = value
agent_name.sources. source_name.property3 = value
ตัวอย่างเช่นหากเราพิจารณาไฟล์ twitter sourceต่อไปนี้เป็นคุณสมบัติที่เราต้องระบุค่าเพื่อกำหนดค่า
TwitterAgent.sources.Twitter.type = Twitter (type name)
TwitterAgent.sources.Twitter.consumerKey =
TwitterAgent.sources.Twitter.consumerSecret =
TwitterAgent.sources.Twitter.accessToken =
TwitterAgent.sources.Twitter.accessTokenSecret =
อธิบายอ่างล้างจาน
เช่นเดียวกับแหล่งที่มาแต่ละอ่างจะมีรายการคุณสมบัติแยกกัน คุณสมบัติที่ชื่อว่า“ type” เป็นสิ่งที่พบได้ทั่วไปในอ่างล้างจานทุกอ่างและใช้เพื่อระบุประเภทของอ่างล้างจานที่เราใช้ นอกจากคุณสมบัติ "type" แล้วจำเป็นต้องระบุค่าให้กับไฟล์required คุณสมบัติของซิงก์เฉพาะเพื่อกำหนดค่าดังที่แสดงด้านล่าง
agent_name.sinks. sink_name.type = value
agent_name.sinks. sink_name.property2 = value
agent_name.sinks. sink_name.property3 = value
ตัวอย่างเช่นหากเราพิจารณา HDFS sinkต่อไปนี้เป็นคุณสมบัติที่เราต้องระบุค่าเพื่อกำหนดค่า
TwitterAgent.sinks.HDFS.type = hdfs (type name)
TwitterAgent.sinks.HDFS.hdfs.path = HDFS directory’s Path to store the data
การอธิบายช่อง
Flume มีช่องทางต่างๆในการถ่ายโอนข้อมูลระหว่างแหล่งที่มาและซิงก์ ดังนั้นพร้อมกับแหล่งที่มาและช่องทางจึงจำเป็นต้องอธิบายช่องที่ใช้ในตัวแทน
ในการอธิบายแต่ละช่องคุณต้องตั้งค่าคุณสมบัติที่จำเป็นดังที่แสดงด้านล่าง
agent_name.channels.channel_name.type = value
agent_name.channels.channel_name. property2 = value
agent_name.channels.channel_name. property3 = value
ตัวอย่างเช่นหากเราพิจารณา memory channelต่อไปนี้เป็นคุณสมบัติที่เราต้องระบุค่าเพื่อกำหนดค่า
TwitterAgent.channels.MemChannel.type = memory (type name)
การผูกซอร์สและซิงก์กับแชนเนล
เนื่องจากแชนเนลเชื่อมต่อแหล่งที่มาและซิงก์จึงจำเป็นต้องเชื่อมโยงทั้งสองเข้ากับแชนเนลดังที่แสดงด้านล่าง
agent_name.sources.source_name.channels = channel_name
agent_name.sinks.sink_name.channels = channel_name
ตัวอย่างต่อไปนี้แสดงวิธีผูกซอร์สและซิงก์กับแชนเนล ที่นี่เราพิจารณาtwitter source, memory channel, และ HDFS sink.
TwitterAgent.sources.Twitter.channels = MemChannel
TwitterAgent.sinks.HDFS.channels = MemChannel
การเริ่มต้น Flume Agent
หลังจากกำหนดค่าเราต้องเริ่มตัวแทน Flume ทำได้ดังนี้ -
$ bin/flume-ng agent --conf ./conf/ -f conf/twitter.conf
Dflume.root.logger=DEBUG,console -n TwitterAgent
ที่ไหน -
agent - คำสั่งเพื่อเริ่มตัวแทน Flume
--conf ,-c<conf> - ใช้ไฟล์กำหนดค่าในไดเรกทอรี conf
-f<file> - ระบุพา ธ ไฟล์กำหนดค่าหากขาดหายไป
--name, -n <name> - ชื่อตัวแทน twitter
-D property =value - ตั้งค่าคุณสมบัติระบบ Java