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

建议的基于Hadoop的设计/组件,用于摄取周期性REST API调用

岑元徽
2023-03-14

我们计划使用 REST API 调用从endpoint摄取数据并将数据存储到 HDFS。REST 调用以定期方式(每天或每小时)完成。

我已经用Flume完成了Twitter的接收,但我认为使用Flume不适合我当前的用例,因为我在Twitter中使用的不是像这样的连续数据水龙带,而是离散的定时调用。

我现在的想法是使用定制Java来处理REST API调用并保存到HDFS,然后在Java jar上使用Oozie协调器。

我想听听关于设计的建议/备选方案(如果比我现在想的更简单),以及该用例使用哪个(哪些)基于Hadoop的组件。如果你觉得我可以坚持水槽,那么请给我一个想法,如何做到这一点。

共有1个答案

西门伟
2023-03-14

如Apache Flume网站所述:

Apache Flume是一个分布式、可靠且可用的系统,用于有效地收集、聚合大量日志数据并将其从许多不同来源移动到集中式数据存储。

如您所见,Flume的特性之一是数据的收集。由于HttpSourceAvroSurceThriftSource等,“类似推送或类似发射”的数据源很容易集成。在您的例子中,数据必须从基于超文本传输协议的服务中“主动提取”,集成并不明显,但可以完成。例如,通过使用ExecSource,它运行一个脚本获取数据并将其推送到Flume代理。

如果您使用专有代码来提取数据并将其写入HDFS,这样的设计是可以的,但您将丢失一些有趣的内置Flume特性(这可能需要您自己实现):

  • 可靠性。Flume具有确保数据在最终存储中真正持久化的机制,重试直到有效写入。这是通过使用内部通道缓冲输入(摄入负载峰值)和输出(保留数据直到有效持久化)的数据和事务概念来实现的。
  • 性能。事务的使用和配置多个并行接收器(数据处理器)的可能性将使您的部署能够处理每秒生成的大量数据。
  • 可用性。通过使用Flume,您不需要处理存储细节(例如HDFS API)。即使,如果有一天您决定更改最终存储,您也只需重新配置Flume代理以使用新的相关接收器。
 类似资料:
  • 我有如下所示的ES文档: 我需要一个搜索(或多个搜索)的以下答案 将来有的文档数(例如>现在) 将来有检查的文档数(例如>现在) 未来7天的日期直方图(日细分),包含当天具有的文档数 未来7天的日期直方图(日细分),包含当天的文档数 所以,我正试图找出如何有效地得到这些答案。我知道我可以/应该测试所有不同的方法,但我对ES相对来说是新手,所以说起来容易做起来难。 有人能给我一个建议(或者理想情况下

  • 我对hadoop很陌生,请你帮忙。我正在执行将文件从一个目录消化到另一个目录的过程。我使用的以下comand: Blockquote hadoop fs-copyfromlocal./tmp/text.txt./tmp/HarSourceFolder2 有人能帮我吗?

  • Seata 意为:Simple Extensible Autonomous Transaction Architecture,是一套一站式分布式事务解决方案,提供了 AT、TCC、Saga 和 XA 事务模式,本文详解其中的 Saga 模式。 项目地址:https://github.com/seata/seata 金融分布式应用开发的痛点 分布式系统有一个比较明显的问题就是,一个业务流程需要组合一

  • 一、高可用简介 Hadoop 高可用 (High Availability) 分为 HDFS 高可用和 YARN 高可用,两者的实现基本类似,但 HDFS NameNode 对数据存储及其一致性的要求比 YARN ResourceManger 高得多,所以它的实现也更加复杂,故下面先进行讲解: 1.1 高可用整体架构 HDFS 高可用架构如下: 图片引用自:https://www.edureka.

  • 问题内容: javdoc的内容如下: 从v1.5开始,由于下面详述的异常,建议您避免使用DateMidnight并使用toDateTimeAtStartOfDay()代替。 如果默认时区在午夜切换为夏时制,并且此LocalDate表示该切换日期,则此方法将引发异常。问题在于,在规定的日期没有午夜这样的时间,因此会引发异常。 午夜在某些时区中不存在的事实似乎足以避免完全使用(假设您的代码未使用固定的

  • 问题内容: 我需要对文件进行压缩和密码保护。是否有一个好的(免费)库? 这需要由第三方打开,因此密码保护需要使用标准工具。 问题答案: 经过大量搜索,我发现了三种方法: 一组免费的源代码,适用于单个文件zip。但是,没有许可证。用法是AesZipOutputStream.zipAndEcrypt(…)。 http://merkert.de/de/info/zipaes/src.zip (https