最初,我试图设置flume将s3写入aws设置,如下所示:
aws.sinks.channel1.type = hdfs
aws.sinks.channel1.hdfs.path=s3n://<id>:<secretkey>/<bucketname>
aws.sinks.channel1.hdfs.fileType=DataStream
aws.sinks.channel1.hdfs.writeFormat=Text
aws.sinks.channel1.hdfs.rollCount = 0
aws.sinks.channel1.hdfs.rollSize = 67108864
aws.sinks.channel1.hdfs.batchSize = 1000
aws.sinks.channel1.hdfs.rollInterval = 0
然而,我突然想到,我没有访问“bucketname”。
我们在amazon上的elasticsearch服务不公开文件系统层。
有没有任何方法可以使用elasticsearch接收器或某种http接收器将flume信息推送到aws上的kibana之类的东西上?
为了清楚起见,我想把elasticsearch推到amazon上。我的源代码是avro&http,而不是来自amazon。
2条答案
按热度按时间1bqhqjot1#
https://forums.aws.amazon.com/thread.jspa?messageid=683536
当谈到aws elasticsearch服务时,不支持本机传输协议。目前支持http协议上的rest api。
真倒霉!
sqxo8psd2#
不清楚你的来源是什么,但是beats是flume代理的elk stack替代品。logstash和/或kafka是持久通道
flume将读取hdfs-site.xml以获取s3访问密钥,因此它将从中获取密钥
您可以安装es-hadoop,以便从hadoop(和s3文件系统)读取数据。我没有亲自尝试过,但我知道图书馆的存在就是因为这个原因。
如果您想使用flume,可以使用syslog或netcat flume接收器来写入logstash(如果您有),logstash可以索引到elasticsearch。我相信还有一个用于logstash的webhdfs插件。
另一个解决方案包括使用nifi或streamset代替flume