2014-09-24 18 views
5

Tôi đang cố gắng loại bỏ một cái gì đó rất đơn giản, nơi tôi muốn đẩy nội dung từ các tệp nhật ký của tôi lên S3. Tôi đã có thể tạo ra một tác nhân flume mà sẽ đọc nội dung từ một tập tin đăng nhập truy cập apache và sử dụng một bồn rửa logger. Bây giờ tôi đang cố gắng tìm một giải pháp mà tôi có thể thay thế bồn rửa chén bằng một bồn rửa S3. (Tôi biết điều này không tồn tại theo mặc định)Sử dụng máng để truyền dữ liệu đến S3

Tôi đang tìm một số gợi ý để hướng dẫn tôi trong đường dẫn chính xác. Dưới đây là tệp thuộc tính thử nghiệm mà tôi đang sử dụng hiện tại.

a1.sources=src1 
a1.sinks=sink1 
a1.channels=ch1 

#source configuration 
a1.sources.src1.type=exec 
a1.sources.src1.command=tail -f /var/log/apache2/access.log 

#sink configuration 
a1.sinks.sink1.type=logger 

#channel configuration 
a1.channels.ch1.type=memory 
a1.channels.ch1.capacity=1000 
a1.channels.ch1.transactionCapacity=100 

#links 
a1.sources.src1.channels=ch1 
a1.sinks.sink1.channel=ch1 

Trả lời

14

S3 được xây dựng trên HDFS để bạn có thể sử dụng HDFS sink, bạn phải thay thế đường dẫn hdfs vào thùng của mình theo cách này. Đừng quên thay thế AWS_ACCESS_KEY và AWS_SECRET_KEY.

agent.sinks.s3hdfs.type = hdfs 
agent.sinks.s3hdfs.hdfs.path = s3n://<AWS.ACCESS.KEY>:<AWS.SECRET.KEY>@<bucket.name>/prefix/ 
agent.sinks.s3hdfs.hdfs.fileType = DataStream 
agent.sinks.s3hdfs.hdfs.filePrefix = FilePrefix 
agent.sinks.s3hdfs.hdfs.writeFormat = Text 
agent.sinks.s3hdfs.hdfs.rollCount = 0 
agent.sinks.s3hdfs.hdfs.rollSize = 67108864 #64Mb filesize 
agent.sinks.s3hdfs.hdfs.batchSize = 10000 
agent.sinks.s3hdfs.hdfs.rollInterval = 0 
+0

gì nếu bạn không có quyền truy cập vào các HDFS? – user99999991

0

này có ý nghĩa, nhưng rollSize của giá trị này có thể được kèm theo

agent_messaging.sinks.AWSS3.hdfs.round = true 
agent_messaging.sinks.AWSS3.hdfs.roundValue = 30 
agent_messaging.sinks.AWSS3.hdfs.roundUnit = minute 
Các vấn đề liên quan