【问题标题】:What is the StreamSets architecture?什么是 StreamSets 架构?
【发布时间】:2017-12-07 16:47:46
【问题描述】:

即使在完成教程之后,我也对架构不是很清楚。我们如何在分布式环境中扩展流集?比方说,我们的输入数据速度从源头开始增加,那么如何确保 SDC 不会出现性能问题?将运行多少个守护进程?是 Master Worker 架构还是 P2P 架构?

如果在多台机器上运行多个守护进程(例如,YARN 中的一个 sdc 和一个 NodeManager),那么它将如何显示数据的集中视图,即总记录数等?

另外请告诉我 Dataflow 性能管理器的架构。此产品中包含哪些所有守护程序?

【问题讨论】:

  • 您能否进一步说明有关守护进程的担忧/问题,以及您的意思?你是在说deamon threads吗?如果是这样,您是否对守护线程有特别的担忧?在 Java 中,它们的行为几乎与普通线程 w.r.t 相同。资源消耗等,这就是我想知道的原因。

标签: cloudera-quickstart-vm streamsets


【解决方案1】:

StreamSets Data Collector (SDC) 通过对输入数据进行分区来扩展。在某些情况下,这可以自动完成,例如Cluster Batch mode 在 Hadoop / MapR 集群上将 SDC 作为 MapReduce 作业运行以读取 Hadoop FS / MapR FS 数据,而Cluster Streaming mode 利用 Kafka 分区并将 SDC 作为 Spark Streaming 执行应用程序运行与 Kafka 分区一样多的管道实例。

在其他情况下,StreamSet 可以通过多线程进行扩展 - 例如,HTTP ServerJDBC Multitable Consumer 起源在单独的线程中运行多个管道实例。

在所有情况下,Dataflow Performance Manager (DPM) 都可以让您集中查看数据,包括总记录数。

【讨论】:

  • 这是否意味着 SDC 需要外部 hadoop 或 spark 集群? SDC 实例单独运行并在集群上启动作业?例如:其中一个用例是,我们每天从不同的上游系统 [通过 scp] 并行接收 1000 个文件,它们相对较大,假设每个文件的大小为 1-10GB,我们必须应用一些对所有这些文件进行转换,然后我们进行一些加入和聚合[将这个任务从 SDC 中分离出来],它是否需要一台在单个节点上具有内核和内存的大型机器?是否可以像 NiFi 那样使用 SDC 实例设置集群?
  • @Uday,Streamsets 的优势在于流数据,而不是核心 ETL 工具。 Alan Shalloway 在他的Design Patterns Explained一书中将他的汽车比作一把雨伞,我们用两者来在雨中保持干燥,但雨伞的优点是轻便且可折叠,但汽车有轮子并且可以保护多人。当然 Streamsets 可以为你做一些 ETL 工作,但是对于大文件,使用 Apache spark 处理器很好。
  • @Uday,最后,回答您的问题,是的,您可以使用 whole file 数据格式选项复制文件。
猜你喜欢
  • 2010-09-23
  • 2012-02-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-01-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多