【问题标题】:Data ingestion using kafka from crawlers使用来自爬虫的 kafka 获取数据
【发布时间】:2019-01-23 09:10:34
【问题描述】:

我正在尝试使用 Kafka 进行数据摄取,但对于这方面的新手来说,我有点困惑。我有多个爬虫,他们从网络平台为我提取数据。现在,问题是我想在没有任何中间脚本/服务文件的情况下使用 Kafka 将提取数据提取到 Hadoop。可能吗 ?

【问题讨论】:

标签: python apache-kafka web-crawler kafka-producer-api


【解决方案1】:

没有任何中间脚本/服务文件。有可能吗?

很遗憾,没有。

您需要一些服务 写入 Kafka(您的刮刀)。无论您是生成 Kafka HTTP 链接(然后编写生成抓取结果的中间消费者/生产者),还是只生成最终抓取结果,这都取决于您。

您还需要一个第二个服务来使用那些写入 HDFS 的主题。这可能是 Kafka Connect(通过 Confluent 的 HDFS 连接器库)或 PySpark(您必须自己编写的代码),或包括“中间脚本/服务”的其他选项。

如果您想结合这两个选项,我建议您看看 Apache Nifi 或 Streamsets,它们可以执行 HTTP 查找、(X)HTML 解析和 Kafka+HDFS 连接器,所有这些都通过集中式 GUI 进行配置。注意:我相信任何 Python 代码都必须用 JVM 语言重写,以支持此管道中的主要自定义解析逻辑

【讨论】:

  • 值得注意的是,如果他的目标是让 spark 服务只获取 kafka 数据流并将其写入 HDFS,那将是一个非常简单的 spark 应用程序。
  • 没错,也可以完全跳过将 Kafka 用作“队列”,并在 Spark 执行器中全部抓取并写入 HDFS
  • 是的,如果 kafka 实际上并没有为您的架构增加任何价值,最好不要处理它并直接写入您想要数据的位置。我对 kafka 的体验是,使用正确的设置部署集群并对其进行维护并非易事。如果您已经在使用 AWS,可以使用 Kinesis 作为托管替代方案,但在大批量时会变得昂贵。 IIRC 他们希望每月大约 45,000 美元来处理每秒 100 万条消息。
  • 这是我听说的。幸运的是,我目前正在与一个非常有经验的运营 Kafka 团队合作。 Terraform、Ansible 和 Splunk 大有可为
  • 谢谢你们!感谢您的意见。
猜你喜欢
  • 1970-01-01
  • 2022-10-12
  • 1970-01-01
  • 2012-08-08
  • 1970-01-01
  • 2012-12-15
  • 2017-03-28
  • 1970-01-01
  • 2017-11-02
相关资源
最近更新 更多