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

在hdfsKafka、水槽中的不同目录中登陆文件

徐欣德
2023-03-14

我想将csv文件从一台服务器(Unix服务器A)发送到hdfs目录。根据哪些csv文件,我想将它们放在hdfs中的不同目录中。

我有一个11个csv文件,将由unix服务器A上的kafka制作人发送到kafka。csv文件的第一个元素将包含一个键。我想取第一个元素并使其成为kafka消息的键。此外,我想将数据的值作为kafka中的消息发送。

当它到达kafka集群时,将有一个水槽代理获取数据,并拦截器按键对数据进行排序,将其定向到11个kafka主题通道(作为水槽中的通道)。然后,通道将把数据重定向到适当的hdfs目录。

这种设计有意义吗?还是有更好的方法?也许是火花流?

共有1个答案

充高扬
2023-03-14

乍一看,你提到的设置似乎不错。

拦截器是将事件细节放到消息头的好方法。然而,你已经提到将会是分类/指导信息的通道。相反,您可能希望将拦截器中添加的头指定为hdfs接收器中路径的一部分。

 类似资料:
  • 刚开始学习Apache Flume。我遵循Flume官方入门网站上的说明: https://cwiki.apache.org/confluence/display/FLUME/Getting开始 按照上面链接上的说明操作后,几乎一切都很好。但是后来我找不到任何日志文件。我想日志文件在{flume.directory}/logs下。有办法找到水槽日志文件吗? 这是我的log4j.properties

  • 我已经创建了一个成功执行的AWS胶水作业。但是,我无法在作业中放置任何自定义日志记录。 如何在AWS S3存储桶中创建日志文件,以便跟踪日常作业执行情况? 目前,当我的工作执行时,它会创建默认日志(即火花日志),我可以在AWS云手表中看到它。在AWS胶水中记录事件的最佳实践是什么?

  • 问题内容: 我的logback.xml中有这个添加器 因此,目前我将所有日志保存到一个文件中。如何使它像一个文件仅保存错误日志,而另一个文件保存所有其他日志? 我想在代码中仅使用1个logger实例,如下所示: 问题答案: 开始寻找logback类别,找到过滤器。 只需将过滤器说明添加到您的附加程序即可:

  • 现在我正在一个项目中工作,我们试图使用 flume 读取 tomcat 访问日志并在 Spark 中处理这些数据并以正确的格式将它们转储到数据库中。但问题是tomcat访问日志文件是每日滚动文件,文件名每天都会更改。像... 源代码部分的flume-conf文件如下 它在一个固定的文件名上运行tail命令(我使用了固定的文件名,只是为了测试)。如何在flume conf文件中将文件名作为参数传递?

  • 问题内容: 我有一个目录结构如下的项目: 我应该如何编写一个可以在part / src中(或在任何地方)的makefile来在部分c / c ++源文件中完成/链接?/ src? 我可以做一些事情-I $ projectroot / part1 / src -I $ projectroot / part1 / inc -I $ projectroot / part2 / src … 如果那行得通,

  • 由于我不允许在生产服务器上设置 Flume,因此我必须下载日志,将它们放入 Flume spoolDir 中,并有一个接收器可以从通道中使用并写入 Cassandra。一切正常。 然而,由于我在spolDir中有很多日志文件,并且当前设置一次只处理1个文件,这需要一段时间。我希望能够同时处理许多文件。我想到的一种方法是使用spolDir,但将文件分发到5-10个不同的目录中,并定义多个源/通道/接