DataFlow with Apache Flume

 

یک ابزار مناسب برای انتقال داده‌ها از یک منبع به یک ذخیره ساز داده جهت نگهداری و پردازش جریان داده Apache Flume می باشد.

flume توانایی انتقال داده‌ها به صورت  stream و log را از منابع مختلف مثل kafka , Local Disk , HTTP , SysLog و انواع دیگر منابع تولید دیتا را دارد.

اینجا یک مثال کاربردی و ساده برای انتقال event های تولید شده بر روی یک دیسک را به محیط HDFS را بررسی می کنیم.

 

ابتدا اجزای اصلی را تعیین می کنیم: منبع تولید داده (source) ، نوع ارتباط (channel) ، محل ذخیره سازی (sink)

agent.sources = iot-log
agent.sinks = hdfs-data
agent.channels = ch1
agent.channels.ch1.type = memory

سپس ارتباط مابین منبع و ذخیره ساز:

agent.sources.iot-log.channels = ch1
agent.sinks.hdfs-data.channel = ch1

مشخصات منبع. spooldir نام یکی از انواع source در flume است که فایلهای ایجاد شده در یک مسیر حاص را ارسال می کند. flieHeader برای اینکه مسیر اصلی فایل هم انتقال داده شود.

agent.sources.iot-log.type = spooldir
agent.sources.iot-log.spoolDir = /log/event/spool/
agent.sources.iot-log.fileHeader = true

پارامترهای محل انتقال و ذخیره داده ها. DataStream تغییری در نوع داده ایجاد نمی‌کند و فقط جریان داده دریافتی را ذخیره می‌کند.

agent.sinks.hdfs-data.type = hdfs
agent.sinks.hdfs-data.hdfs.fileType = DataStream
agent.sinks.hdfs-data.hdfs.path = /flume/event/iot/

 

هم اکنون این تنظیمات را در یک فایل مانند iot-data-stream.conf ذخیره و با دستور زیر بر روی سرور که flume نصب شده اجرا می‌کنیم

flume@hell:~# flume-ng agent -n agent -c conf -f /home/iot-data-stream.conf

هر فایل جدیدی که در مسیر /log/event/spool/ ایجاد گردد به محیط HDFS و در مسیر flume/event/iot/ منتقل می‌شود.

برای توضیحات کامل در مورد تمام پارامترها به http://flume.apache.org/FlumeUserGuide.html مراجعه کنید.

 

برچسب خورده : , , , , , , . Bookmark the پیوند یکتا.

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

This site uses Akismet to reduce spam. Learn how your comment data is processed.