Apache Flume - Cấu hình
Sau khi cài đặt Flume, chúng ta cần định cấu hình nó bằng cách sử dụng tệp cấu hình là tệp thuộc tính Java có key-value pairs. Chúng ta cần chuyển các giá trị cho các khóa trong tệp.
Trong tệp cấu hình Flume, chúng ta cần -
- Kể tên các thành phần của tác nhân hiện tại.
- Mô tả / Cấu hình nguồn.
- Mô tả / Cấu hình bồn rửa.
- Mô tả / Định cấu hình kênh.
- Ràng nguồn và mạch chìm vào kênh.
Thông thường chúng ta có thể có nhiều tác nhân trong Flume. Chúng ta có thể phân biệt từng tác nhân bằng cách sử dụng một tên duy nhất. Và sử dụng tên này, chúng ta phải cấu hình từng tác nhân.
Đặt tên cho các thành phần
Trước hết, bạn cần đặt tên / liệt kê các thành phần như nguồn, chìm và kênh của tác nhân, như hình dưới đây.
agent_name.sources = source_name
agent_name.sinks = sink_name
agent_name.channels = channel_name
Flume hỗ trợ nhiều nguồn, bồn rửa và kênh khác nhau. Chúng được liệt kê trong bảng dưới đây.
Nguồn | Kênh truyền hình | Chìm |
---|---|---|
|
|
|
Bạn có thể sử dụng bất kỳ trong số chúng. Ví dụ: nếu bạn đang chuyển dữ liệu Twitter bằng nguồn Twitter thông qua kênh bộ nhớ đến ổ cắm HDFS và id tên tác nhânTwitterAgent, sau đó
TwitterAgent.sources = Twitter
TwitterAgent.channels = MemChannel
TwitterAgent.sinks = HDFS
Sau khi liệt kê các thành phần của tác nhân, bạn phải mô tả (các) nguồn, (các) phần chìm và (các) kênh bằng cách cung cấp giá trị cho các thuộc tính của chúng.
Mô tả Nguồn
Mỗi nguồn sẽ có một danh sách các thuộc tính riêng biệt. Thuộc tính có tên “type” chung cho mọi nguồn và nó được sử dụng để chỉ định loại nguồn mà chúng tôi đang sử dụng.
Cùng với thuộc tính “type”, cần cung cấp các giá trị của tất cả các required thuộc tính của một nguồn cụ thể để định cấu hình nó, như được hiển thị bên dưới.
agent_name.sources. source_name.type = value
agent_name.sources. source_name.property2 = value
agent_name.sources. source_name.property3 = value
Ví dụ, nếu chúng ta xem xét twitter source, sau đây là các thuộc tính mà chúng tôi phải cung cấp các giá trị để định cấu hình nó.
TwitterAgent.sources.Twitter.type = Twitter (type name)
TwitterAgent.sources.Twitter.consumerKey =
TwitterAgent.sources.Twitter.consumerSecret =
TwitterAgent.sources.Twitter.accessToken =
TwitterAgent.sources.Twitter.accessTokenSecret =
Mô tả bồn rửa
Cũng giống như nguồn, mỗi bồn rửa sẽ có một danh sách các thuộc tính riêng biệt. Thuộc tính có tên “type” phổ biến đối với mọi bồn rửa và nó được sử dụng để chỉ định loại bồn rửa mà chúng tôi đang sử dụng. Cùng với thuộc tính “type”, cần cung cấp giá trị cho tất cả cácrequired thuộc tính của một bồn rửa cụ thể để định cấu hình nó, như được hiển thị bên dưới.
agent_name.sinks. sink_name.type = value
agent_name.sinks. sink_name.property2 = value
agent_name.sinks. sink_name.property3 = value
Ví dụ, nếu chúng ta xem xét HDFS sink, sau đây là các thuộc tính mà chúng tôi phải cung cấp các giá trị để định cấu hình nó.
TwitterAgent.sinks.HDFS.type = hdfs (type name)
TwitterAgent.sinks.HDFS.hdfs.path = HDFS directory’s Path to store the data
Mô tả kênh
Flume cung cấp nhiều kênh khác nhau để truyền dữ liệu giữa các nguồn và bồn rửa. Do đó, cùng với các nguồn và các kênh, cần phải mô tả kênh được sử dụng trong tác nhân.
Để mô tả từng kênh, bạn cần đặt các thuộc tính bắt buộc, như hình dưới đây.
agent_name.channels.channel_name.type = value
agent_name.channels.channel_name. property2 = value
agent_name.channels.channel_name. property3 = value
Ví dụ, nếu chúng ta xem xét memory channel, sau đây là các thuộc tính mà chúng tôi phải cung cấp các giá trị để định cấu hình nó.
TwitterAgent.channels.MemChannel.type = memory (type name)
Ràng buộc Nguồn và Chìm với Kênh
Vì các kênh kết nối nguồn và nguồn chìm, nên cần phải liên kết cả hai nguồn với kênh, như hình dưới đây.
agent_name.sources.source_name.channels = channel_name
agent_name.sinks.sink_name.channels = channel_name
Ví dụ sau đây cho thấy cách liên kết các nguồn và phần chìm với một kênh. Ở đây, chúng tôi xem xéttwitter source, memory channel, và HDFS sink.
TwitterAgent.sources.Twitter.channels = MemChannel
TwitterAgent.sinks.HDFS.channels = MemChannel
Bắt đầu một tác nhân Flume
Sau khi cấu hình, chúng ta phải khởi động tác nhân Flume. Nó được thực hiện như sau:
$ bin/flume-ng agent --conf ./conf/ -f conf/twitter.conf
Dflume.root.logger=DEBUG,console -n TwitterAgent
ở đâu -
agent - Lệnh khởi động tác nhân Flume
--conf ,-c<conf> - Sử dụng tệp cấu hình trong thư mục conf
-f<file> - Chỉ định một đường dẫn tệp cấu hình, nếu thiếu
--name, -n <name> - Tên của đại lý twitter
-D property =value - Đặt giá trị thuộc tính hệ thống Java.