Apache Flume - Nguồn Trình tạo Trình tự
Trong chương trước, chúng ta đã biết cách tìm nạp dữ liệu từ nguồn twitter sang HDFS. Chương này giải thích cách tìm nạp dữ liệu từSequence generator.
Đ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 HDFS cùng với Flume. Do đó, hãy xác minh cài đặt Hadoop và khởi động HDFS trước khi tiếp tục. (Tham khảo chương trước để biết cách khởi động HDFS).
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ụngsequence generator source, một memory channel, và một HDFS sink.
Nguồn trình tạo trình tự
Nó là nguồn tạo ra các sự kiện liên tục. Nó duy trì một bộ đếm bắt đầu từ 0 và tăng lên 1. Nó được sử dụng cho mục đích thử nghiệm. 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 - seq
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. Mặc định của nó là 100. (tùy chọn).
HDFS Sink
Phần chìm này ghi dữ liệu vào HDFS. Để 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 - hdfs
hdfs.path - đường dẫn của thư mục trong HDFS nơi dữ liệu sẽ được lưu trữ.
Và chúng tôi có thể cung cấp một số giá trị tùy chọn dựa trên kịch bản. Dưới đây là các thuộc tính tùy chọn của ổ HDFS mà chúng tôi đang định cấu hình trong ứng dụng của mình.
fileType - Đây là định dạng tệp bắt buộc của tệp HDFS của chúng tôi. SequenceFile, DataStream và CompressedStreamlà ba loại có sẵn với luồng này. Trong ví dụ của chúng tôi, chúng tôi đang sử dụngDataStream.
writeFormat - Có thể là văn bản hoặc có thể ghi.
batchSize- Đó là số sự kiện được ghi vào một tệp trước khi nó được chuyển vào HDFS. Giá trị mặc định của nó là 100.
rollsize- Đó là kích thước tệp để kích hoạt cuộn. Giá trị mặc định là 100.
rollCount- Là số sự kiện được ghi vào tệp trước khi cuộn. Giá trị mặc định của nó là 10.
Ví dụ - Tệp cấu hình
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ạngseq_gen .conf trong thư mục conf của Flume.
# Naming the components on the current agent
SeqGenAgent.sources = SeqSource
SeqGenAgent.channels = MemChannel
SeqGenAgent.sinks = HDFS
# Describing/Configuring the source
SeqGenAgent.sources.SeqSource.type = seq
# Describing/Configuring the sink
SeqGenAgent.sinks.HDFS.type = hdfs
SeqGenAgent.sinks.HDFS.hdfs.path = hdfs://localhost:9000/user/Hadoop/seqgen_data/
SeqGenAgent.sinks.HDFS.hdfs.filePrefix = log
SeqGenAgent.sinks.HDFS.hdfs.rollInterval = 0
SeqGenAgent.sinks.HDFS.hdfs.rollCount = 10000
SeqGenAgent.sinks.HDFS.hdfs.fileType = DataStream
# Describing/Configuring the channel
SeqGenAgent.channels.MemChannel.type = memory
SeqGenAgent.channels.MemChannel.capacity = 1000
SeqGenAgent.channels.MemChannel.transactionCapacity = 100
# Binding the source and sink to the channel
SeqGenAgent.sources.SeqSource.channels = MemChannel
SeqGenAgent.sinks.HDFS.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/seq_gen.conf
--name SeqGenAgent
Nếu mọi thứ suôn sẻ, nguồn bắt đầu tạo số thứ tự sẽ được đẩy vào HDFS dưới dạng tệp nhật ký.
Dưới đây là ảnh chụp nhanh của cửa sổ nhắc lệnh tìm nạp dữ liệu được tạo bởi trình tạo chuỗi vào HDFS.
Xác minh HDFS
Bạn có thể truy cập giao diện người dùng Web quản trị Hadoop bằng URL sau:
http://localhost:50070/
Nhấp vào menu thả xuống có tên Utilitiesở phía bên phải của trang. Bạn có thể thấy hai tùy chọn như được hiển thị trong sơ đồ dưới đây.
Bấm vào Browse the file system và nhập đường dẫn của thư mục HDFS nơi bạn đã lưu trữ dữ liệu được tạo bởi trình tạo chuỗi.
Trong ví dụ của chúng tôi, đường dẫn sẽ là /user/Hadoop/ seqgen_data /. Sau đó, bạn có thể xem danh sách các tệp nhật ký được tạo bởi trình tạo trình tự, được lưu trữ trong HDFS như được cung cấp bên dưới.
Xác minh nội dung của tệp
Tất cả các tệp nhật ký này chứa các số ở định dạng tuần tự. Bạn có thể xác minh nội dung của tệp này trong hệ thống tệp bằng cách sử dụngcat lệnh như hình dưới đây.