【问题标题】:Best way to stream PDF Files流式传输 PDF 文件的最佳方式
【发布时间】:2015-11-27 01:28:32
【问题描述】:

通过消息队列流式传输 PDF 文件的好方法是什么?

在 KAFKA 中这样做是个好主意吗?

这是我的想法:

  1. 从文件放置位置提取 PDF 文件。
  2. 通过 Kafka 流式传输文件。
  3. 解析文件以进行一些低级信息检索和清理。这可能会在 Storm 拓扑或 Spark 中完成。也许是一些自定义 Map Reduce 代码。
  4. 最后,我想在这些文档上运行一些机器学习算法。

请注意,上述步骤只是可能性。如果您有更好的实现,请提出建议。

【问题讨论】:

  • 您的问题相当广泛...您应该提供更多详细信息。您希望每分钟处理多少个文件?为什么在两者之间需要 Kafka? Storm 可以直接访问该文件。你想应用什么样的机器学习?这与流处理有什么关系?您打算使用 Mahout 或 SAMOA 之类的库吗?
  • Kafka-Storm 只是我必须使用的堆栈的一部分,所以我更喜欢使用 Kafka。我很确定我现在每分钟不会处理太多文件,但是将来可能会发生变化。您对 Storm 能够自行获取文件提出了一个很好的观点。例如通过自定义 Spout,对吗?我正在尝试构建一个 RandomForest 分类器来标记和索引一些报告。你会推荐 Mahout 吗?基本上,现在我有一些 Python 机器学习代码,但我认为如果需要我可以在 Java 中复制它们。
  • 我不是机器学习专家;因此,我不能推荐任何图书馆。 Mahout 可用于 Spark(很快 Flink),而 SAMOA 可用于 Storm(很快 Flink)。 SAMOA 专为流式机器学习量身定制。 (顺便说一句:我需要和免责声明;我是 Flink 的提交者)。我只是想知道如果您没有太多数据,您是否需要拥有一个大数据系统。您预计未来的数据速率是多少?你真的需要能够横向扩展吗?关于使用 Kafka:如果没有理由使用它,我会避免使用它——它使整个项目更简单。

标签: pdf apache-kafka apache-storm


【解决方案1】:

我将其分为三个问题:

  1. 摄取
  2. 解析
  3. 分析

这样您就可以进行一次提取,但随着您对数据和问题的理解不断发展,您可以迭代解析和分析。

对于摄取,我会将实际文件推送到可广泛访问的位置,例如 HDFS 或 HTTP 服务器,然后通过 Kafka 发送一条短消息,说明给定位置的文件刚刚添加并准备好解析.解析文件后,将该信息存储在数据库中,以便在解析算法发生变化时再次遍历整个提取的文件集。

【讨论】:

  • 感谢您的信息!我相信我需要 Flume/Storm/Gobblin 之类的东西来将 Kafka 连接到 HDFS。对“最佳”方法有何想法?
  • 明确地说,Kafka 消息的生产者(可能是一个独立的应用程序)会将文件写入 HDFS 等。 Kafka 消息的消费者将是从 HDFS 读取文件的消费者。在这两种情况下,Kafka 实际上都没有直接与 HDFS 交互。消费者不一定是 Storm,但它不会受到伤害。
  • 正确,我们所做的只是将消息并行放入Kafka和HDFS中。
猜你喜欢
  • 2010-10-11
  • 1970-01-01
  • 1970-01-01
  • 2013-08-15
  • 2014-01-29
  • 2010-10-06
  • 1970-01-01
  • 2018-10-04
  • 1970-01-01
相关资源
最近更新 更多