Spark 作为数据 Ingestion/Onboarding 到 HDFS
Spark as Data Ingestion/Onboarding to HDFS
在探索 [Nifi、Gobblin 等] 等各种工具时,我观察到 Databricks 现在正在推广使用 Spark 处理数据 ingestion/on-boarding。
我们在 YARN 上有一个基于 spark[scala] 的应用程序 运行ning。到目前为止,我们正在处理一个 hadoop 和 spark 集群,我们首先在 HDFS 中手动放置所需的数据文件,然后 运行 我们的 spark 作业稍后。
现在,当我们计划让我们的应用程序可供客户端使用时,我们期望来自任何数据源 [ftp、s[= 的任何类型和数量的文件 [主要是 csv、jason、xml 等] 35=],任何关系型和 nosql 数据库] 巨大的规模 [范围从 GB 到 PB]。
牢记这一点,我们正在寻找可在将数据推送到 HDFS 之前用于数据载入和数据完整性的选项。
我们根据优先级寻找的选项:
1) 用于数据摄取和健全性的 Spark:由于我们的应用程序是在 spark 集群上编写的并且 运行ning,我们计划也将其用于数据摄取和健全性任务。
我们有点担心 Spark 对许多 datasources/file types/etc 的支持。此外,我们不确定如果我们尝试从任何 FTP/SFTP 复制数据,那么所有工作人员是否会在 HDFS 上并行写入数据?使用时有什么限制吗?复制此数据时,Spark 是否维护任何审计跟踪?
2) 集群模式下的 Nifi:Nifi 在这个方面有多好?它可以用于任何数据源和任何大小的文件吗?将维护审计跟踪? Nifi 我们能处理这么大的文件吗?如果我们尝试复制 GB - PB 的数据并在将数据推送到 HDFS 之前对其执行一定的理智,那么需要多大的集群?
3) 集群模式下的 Gobblin:想听到与 Nifi 类似的答案吗?
4) 是否有任何其他更好的选择可用于此目的且涉及较少 infra/cost 且性能更好?
如能提供上述工具和技术的 guidance/pointers/comparisions,我们将不胜感激。
此致,
布佩什
经过一定的研发,考虑到使用 NIFI 或 goblin 需要更多的基础设施成本。我已经开始测试 Spark 的数据加载。
到目前为止,我已经尝试使用 Spark 作业将数据 [存在于远程分段 area/node] 导入我的 HDFS,并且我能够通过将远程位置与我所有的 spark 集群工作节点一起安装来实现.这样做会使这些工作人员在本地找到该位置,因此可以正确地激发作业 运行,并且数据已载入我的 HDFS。
由于我的整个项目都将在 Spark 上进行,因此将数据加载部分保存在 Spark 上对我来说不会花费任何额外费用。到目前为止,我进展顺利。因此,我也会向其他人建议,如果您已经启动了 spark 集群和 hadoop 集群并且 运行 那么不要增加额外的成本 [成本可能是一个主要限制因素] 去使用 spark job 来获取数据。
在探索 [Nifi、Gobblin 等] 等各种工具时,我观察到 Databricks 现在正在推广使用 Spark 处理数据 ingestion/on-boarding。
我们在 YARN 上有一个基于 spark[scala] 的应用程序 运行ning。到目前为止,我们正在处理一个 hadoop 和 spark 集群,我们首先在 HDFS 中手动放置所需的数据文件,然后 运行 我们的 spark 作业稍后。 现在,当我们计划让我们的应用程序可供客户端使用时,我们期望来自任何数据源 [ftp、s[= 的任何类型和数量的文件 [主要是 csv、jason、xml 等] 35=],任何关系型和 nosql 数据库] 巨大的规模 [范围从 GB 到 PB]。
牢记这一点,我们正在寻找可在将数据推送到 HDFS 之前用于数据载入和数据完整性的选项。
我们根据优先级寻找的选项: 1) 用于数据摄取和健全性的 Spark:由于我们的应用程序是在 spark 集群上编写的并且 运行ning,我们计划也将其用于数据摄取和健全性任务。 我们有点担心 Spark 对许多 datasources/file types/etc 的支持。此外,我们不确定如果我们尝试从任何 FTP/SFTP 复制数据,那么所有工作人员是否会在 HDFS 上并行写入数据?使用时有什么限制吗?复制此数据时,Spark 是否维护任何审计跟踪?
2) 集群模式下的 Nifi:Nifi 在这个方面有多好?它可以用于任何数据源和任何大小的文件吗?将维护审计跟踪? Nifi 我们能处理这么大的文件吗?如果我们尝试复制 GB - PB 的数据并在将数据推送到 HDFS 之前对其执行一定的理智,那么需要多大的集群?
3) 集群模式下的 Gobblin:想听到与 Nifi 类似的答案吗?
4) 是否有任何其他更好的选择可用于此目的且涉及较少 infra/cost 且性能更好?
如能提供上述工具和技术的 guidance/pointers/comparisions,我们将不胜感激。
此致, 布佩什
经过一定的研发,考虑到使用 NIFI 或 goblin 需要更多的基础设施成本。我已经开始测试 Spark 的数据加载。
到目前为止,我已经尝试使用 Spark 作业将数据 [存在于远程分段 area/node] 导入我的 HDFS,并且我能够通过将远程位置与我所有的 spark 集群工作节点一起安装来实现.这样做会使这些工作人员在本地找到该位置,因此可以正确地激发作业 运行,并且数据已载入我的 HDFS。
由于我的整个项目都将在 Spark 上进行,因此将数据加载部分保存在 Spark 上对我来说不会花费任何额外费用。到目前为止,我进展顺利。因此,我也会向其他人建议,如果您已经启动了 spark 集群和 hadoop 集群并且 运行 那么不要增加额外的成本 [成本可能是一个主要限制因素] 去使用 spark job 来获取数据。