Flume 可以将 ElasticSearch 与 Amazon Elastic Search Service 一起使用吗?

Can Flume use ElasticSearch with Amazon Elastic Search Service?

最初我试图设置 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,不是来自亚马逊。

不清楚您的来源是什么,但 Beats 是替代 Flume 代理的 ELK 堆栈。和 Logstash and/or Kafka 是持久通道

Flume 会读取您的 hdfs-site.xml 以获得 S3 访问密钥,因此它会从

获取您的密钥

您可以安装 ES-Hadoop 让 Elastic 从 Hadoop(和 S3 文件系统)读取数据。我没有亲自尝试过,但我知道图书馆就是因为这个原因而存在的。

如果你想使用 Flume,你可以使用 syslog 或 netcat Flume 接收器写入 Logstash(如果你有),它可以索引到 Elasticsearch。我相信还有一个用于 Logstash 的 WebHDFS 插件。

另一种解决方案包括使用 NiFi 或 Streamsets 代替 Flume

https://forums.aws.amazon.com/thread.jspa?messageID=683536

When speaking about AWS ElasticSearch Service, native transport protocol is not supported. REST API over HTTP protocol is supported currently.

糟透了!