高效地将大量数据移动到elasticseach hadoop

rseugnpd  于 2021-06-04  发布在  Hadoop
关注(0)|答案(1)|浏览(306)

我使用rabbitmq和一组工作人员从twitter下载tweet并处理它们。我还有一个hadoop上的elasticsearch示例。我需要的是将收集到的每一条tweet移到那个示例中,但是由于我正在处理大量的数据,我不知道如何做到这一点。
如何将数据移动到elasticsearch?会不会太多,使插入每个推文收到?Flume适合这个吗?我主要关心的是避免平台中的瓶颈。实际上,我现在不使用flume来获取tweet,因为我需要多个具有不同关键字的代理,并且每30分钟动态更新一次关键字。

lx0bsm1f

lx0bsm1f1#

你有几个选项可以将你的tweet索引到elasticsearch中,因为你已经公开了你的架构。我将考虑的三个主要选择:
use可以使用elasticsearch rabbitmq河:这将自动将rabbitmq队列的所有内容索引到es中。链接在这里:https://github.com/elasticsearch/elasticsearch-river-rabbitmq/blob/master/readme.md
请注意,他们的示例是索引tweet,这些tweet通过rabbitmq路由到es中,因此它似乎很适合您的模型。你可能想读一读关于es rivers的书:http://www.elasticsearch.org/guide/en/elasticsearch/rivers/current/
使用logstash从rabbitmq中提取并加载到elasticsearch中:http://www.logstash.net/docs/1.4.2/inputs/rabbitmq 以及http://www.logstash.net/docs/1.4.2/outputs/elasticsearch
通过rest api滚动您自己的索引接口:文档和示例如下:http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/docs-index_.html 请注意,该示例也用于加载tweet。如果您担心每次索引一条tweet的性能影响,那么它还支持通过api进行批量插入。

相关问题