Apache Flume - Nguồn NetCat

Chương này lấy một ví dụ để giải thích cách bạn có thể tạo các sự kiện và sau đó đăng nhập chúng vào bảng điều khiển. Đối với điều này, chúng tôi đang sử dụngNetCat nguồn và logger bồn rửa.

Điều kiện tiên quyết

Để chạy ví dụ được cung cấp trong chương này, bạn cần cài đặt Flume.

Cấu hình Flume

Chúng tôi phải định cấu hình nguồn, kênh và bồn rửa bằng cách sử dụng tệp cấu hình trong confthư mục. Ví dụ được đưa ra trong chương này sử dụngNetCat Source, Memory channel, và một logger sink.

Nguồn NetCat

Trong khi cấu hình nguồn NetCat, chúng ta phải chỉ định một cổng trong khi cấu hình nguồn. Bây giờ nguồn (nguồn NetCat) lắng nghe cổng đã cho và nhận từng dòng chúng ta đã nhập vào cổng đó dưới dạng một sự kiện riêng lẻ và chuyển nó đến bộ chìm thông qua kênh được chỉ định.

Trong khi định cấu hình nguồn này, bạn phải cung cấp giá trị cho các thuộc tính sau:

  • channels

  • Source type - netcat

  • bind - Tên máy chủ hoặc địa chỉ IP để liên kết.

  • port - Số cổng mà chúng ta muốn nguồn lắng nghe.

Kênh

Chúng tôi đang sử dụng memorykênh. Để cấu hình kênh bộ nhớ, bạn phải cung cấp giá trị cho loại kênh. Dưới đây là danh sách các thuộc tính mà bạn cần cung cấp trong khi định cấu hình kênh bộ nhớ -

  • type- Nó chứa loại kênh. Trong ví dụ của chúng tôi, loại làMemChannel.

  • Capacity- Đây là số lượng sự kiện tối đa được lưu trữ trong kênh. Giá trị mặc định của nó là 100. (tùy chọn)

  • TransactionCapacity- Là số lượng sự kiện tối đa mà kênh chấp nhận hoặc gửi. Giá trị mặc định của nó là 100. (tùy chọn).

Logger Sink

Bồn rửa này ghi lại tất cả các sự kiện được chuyển đến nó. Nói chung, nó được sử dụng cho mục đích thử nghiệm hoặc gỡ lỗi. Để cấu hình bồn rửa này, bạn phải cung cấp các chi tiết sau.

  • Channel

  • type - người khai thác gỗ

Tệp cấu hình mẫu

Dưới đây là một ví dụ về tệp cấu hình. Sao chép nội dung này và lưu dưới dạngnetcat.conf trong thư mục conf của Flume.

# Naming the components on the current agent
NetcatAgent.sources = Netcat   
NetcatAgent.channels = MemChannel 
NetcatAgent.sinks = LoggerSink  

# Describing/Configuring the source 
NetcatAgent.sources.Netcat.type = netcat 
NetcatAgent.sources.Netcat.bind = localhost
NetcatAgent.sources.Netcat.port = 56565  

# Describing/Configuring the sink 
NetcatAgent.sinks.LoggerSink.type = logger  

# Describing/Configuring the channel 
NetcatAgent.channels.MemChannel.type = memory 
NetcatAgent.channels.MemChannel.capacity = 1000 
NetcatAgent.channels.MemChannel.transactionCapacity = 100 
 
# Bind the source and sink to the channel 
NetcatAgent.sources.Netcat.channels = MemChannel
NetcatAgent.sinks.LoggerSink.channel = MemChannel

Chấp hành

Duyệt qua thư mục chính của Flume và thực thi ứng dụng như hình dưới đây.

$ cd $FLUME_HOME
$ ./bin/flume-ng agent --conf $FLUME_CONF --conf-file $FLUME_CONF/netcat.conf 
   --name NetcatAgent -Dflume.root.logger=INFO,console

Nếu mọi thứ diễn ra tốt đẹp, nguồn bắt đầu lắng nghe cổng đã cho. Trong trường hợp này, nó là56565. Dưới đây là ảnh chụp nhanh cửa sổ nhắc lệnh của nguồn NetCat đã khởi động và đang nghe cổng 56565.

Truyền dữ liệu đến nguồn

Để chuyển dữ liệu đến nguồn NetCat, bạn phải mở cổng được cung cấp trong tệp cấu hình. Mở một thiết bị đầu cuối riêng biệt và kết nối với nguồn (56565) bằng cách sử dụngcurlchỉ huy. Khi kết nối thành công, bạn sẽ nhận được thông báo “connected”Như hình bên dưới.

$ curl telnet://localhost:56565 
connected

Bây giờ bạn có thể nhập từng dòng dữ liệu của mình (sau mỗi dòng, bạn phải nhấn Enter). Nguồn NetCat nhận mỗi dòng dưới dạng một sự kiện riêng lẻ và bạn sẽ nhận được thông báo “OK”.

Bất cứ khi nào bạn hoàn tất việc chuyển dữ liệu, bạn có thể thoát khỏi bảng điều khiển bằng cách nhấn (Ctrl+C). Dưới đây là ảnh chụp nhanh của bảng điều khiển mà chúng tôi đã kết nối với nguồn bằng cách sử dụngcurl chỉ huy.

Mỗi dòng được nhập vào bảng điều khiển trên sẽ được nguồn nhận như một sự kiện riêng lẻ. Vì chúng tôi đã sử dụngLogger chìm, các sự kiện này sẽ được đăng nhập vào bảng điều khiển (bảng điều khiển nguồn) thông qua kênh được chỉ định (kênh bộ nhớ trong trường hợp này).

Ảnh chụp nhanh sau đây cho thấy bảng điều khiển NetCat nơi các sự kiện được ghi lại.