当前位置: 首页 > 知识库问答 >
问题:

如何确定水槽拓扑方法?

秋和雅
2023-03-14

我正在设置flume,但是不确定我们的用例应该使用什么样的拓扑。

我们基本上有两个web服务器,它们能够以每秒2000个条目的速度生成日志。每个条目的大小约为137字节。

目前我们已经使用rsyslog(写入tcp端口),php脚本将这些日志写入其中。我们在每个Web服务器上运行一个本地水槽代理,这些本地代理侦听tcp端口并将数据直接放入hdfs。

所以localhost:tcpport是“水槽源”,“hdfs”是水槽。

我不确定上述方法,并且对以下三种方法感到困惑:

方法1:Web服务器,RSyslog

方法2:Web服务器、同一台机器上的RSyslog和在hadoop集群中的Namenode上运行的Flume收集器(在远程端口上侦听由Web服务器上的rsyslog写入的事件),以收集数据并将其转储到hdfs中。

方法3:Web服务器,RSyslog

此外,我们使用hive,所以我们直接写入分区目录。所以我们想想出一种方法,允许我们在每小时的分区上写。

基本上,我只是想知道人们是否出于类似的目的使用flume,它是否是正确可靠的工具,我的方法是否明智。

我希望这不会太模糊。任何帮助都将不胜感激。

共有1个答案

韩弘方
2023-03-14

对于您的问题,典型的建议是采用扇入或汇聚流代理部署模型。(谷歌“水槽扇入”了解更多细节)。在这个模型中,理想情况下,每个web服务器上都有一个代理。这些代理中的每一个都将事件转发给少数聚合器或收集器代理。然后,聚合器代理将事件转发到最终目的地代理,该代理写入HDFS。

这种分层架构允许您简化扩展、故障转移等。

 类似资料:
  • 自定义拓扑 Mininet 提供了 Python API,可以用来方便的自定义拓扑结构。 在 mininet/custom 目录下给出了几个例子。例如在 topo-2sw-2host.py 文件中定义了一个 mytopo,则可以通过 --topo 选项来指定使用这一拓扑,命令为 sudo mn --custom ~/mininet/custom/topo-2sw-2host.py --topo m

  • 在storm Framework中是否有任何预定义的、重写的或任何可用的方法来实现这一点。 提前致谢:)

  • 我正在构建一个 Spring 启动独立应用程序,该应用程序需要使用来自远程服务器的消息并将其写入 。我正在使用Flume嵌入式代理来可靠地记录消息。但是我收到以下错误。 引起:org.apache.flume.Flume异常:组件类型的com.security.flume.sink.Sy 根据文档仅支持。这是否意味着我们甚至不能编写自定义水槽? 我对Flume相当陌生。我真的很感谢你在这个问题上的

  • 问题内容: 在终止风暴拓扑之前如何调用特定方法。 我已经在风暴中创建了一个拓扑,我想在拓扑被杀死之前调用特定的方法。 在Storm框架中是否有任何预定义的覆盖或任何可用的方法来做到这一点。 提前致谢:) 问题答案: 哪有这回事… 解决方法是,可以先删除拓扑,然后再取消拓扑。这样可以确保被调用。 如果需要使用螺栓调用方法,请使用来通过整个拓扑发送“通知元组”(不包含要处理的数据)。并且在每个螺栓中,

  • 问题内容: 我们是新来的风暴。我们不知道如何创建拓扑,请帮助我们应对风暴。我们尝试了“ Windows上的狂风暴雨”一文中给出的示例wordcount c = topology。但是我们无法理解如何给出输入,以及风暴用户界面中输入存在的位置以及输出存在的位置。 问题答案: 输入和输出在Storm UI中不存在。在Storm UI中,您看不到发出的元组,处理时间,集群配置和集群的运行状况。要查看输出

  • 问题内容: 我正在使用Java类向拓扑集群提交拓扑,并且我还计划使用Java类取消拓扑。但是根据storm 文档,以下命令用于终止拓扑,并且没有Java方法(这有正当的理由) 那么从Java类中调用Shell脚本杀死拓扑就可以了吗?还有其他杀死拓扑的方法吗? 另外,如何获取风暴群集中正在运行的拓扑的状态? 问题答案: 要杀死拓扑,您可以尝试以下方法 获取拓扑运行状态