云服务器价格_云数据库_云主机【优惠】最新活动-搜集站云资讯

中间件_网站建设营销_优惠

小七 141 0

[Guest Blog,MinIO]:使用s3select在对象存储上运行Peta规模的Spark作业

当你看到下周Spark+AI峰会上令人惊叹的会谈名单时,你看不到关于如何利用对象存储的大量讨论。从某种程度上说,如果你想在peta规模的数据集上运行Spark作业,并让它在公共或私有云中对你的应用程序可用,那么这就是逻辑存储架构。虽然合乎逻辑,但至少在历史上有一个问题,那就是对象存储的性能不足以使运行Spark作业成为可能。随着一种现代的、云计算的本地方法的出现,这种方法发生了变化,并对apachespark产生了影响™ 社区是相当重要的。此更改的核心是对s3api的扩展,以包括SQL查询功能s3select。使用s3select,用户可以直接在他们的对象上执行查询,只返回相关的子集,而不必下载整个对象,这比检索整个对象存储的常规方法效率要高得多。MinIO的s3selectapi实现与本机特性相匹配,同时在执行Spark作业时提供了更好的资源利用率。这些改进在一系列频繁使用的查询中提供了数量级的性能改进。在s3select中使用apachespark使用minios3selectapi,应用程序可以将查询作业卸载到MinIO服务器本身,从而显著提高分析工作流的速度。通过将可能的查询推送到MinIO,然后只将对象的相关子集加载到内存以进行进一步分析,Spark SQL运行速度更快,消耗的网络资源更少,使用的计算/内存资源更少,并允许更多的Spark作业并发运行。使用s3select实现apachespark作为Spark数据源,通过DataFrame接口实现。在非常高的级别上,Spark和s3select将传入的过滤器转换为sqls3select语句。然后将这些查询发送到MinIO。由于MinIO使用基于Select查询的数据子集进行响应,apachespark将其作为数据帧用于进一步的操作。与任何数据帧一样,这些数据现在可以被任何其他Apache Spark库使用,例如Spark MLlib、Spark Streaming等。目前,MinIO的s3select和apachespark的实现支持JSON、CSV和Parquet文件格式,用于查询下推。apachespark和s3select可以通过sparkshell、pyspark、Spark submit等进行集成,也可以将其添加为Maven依赖项、sbt Spark包或jar导入。像所有的软件一样,MinIO已经将这些代码开源。它可以在这里找到,以便进一步检查。高速查询处理为了了解性能,MinIO在8个节点上运行了TestDFSIO基准测试,并将其与aws3本身的类似性能进行了比较。MinIO的平均整体读IO为17.5gb/s,而aws3为10.3gb/s。虽然MinIO的速度提高了70%(在真正的苹果对苹果的比较中可能更快),但对于读者来说,最大的收获应该是这两个系统都彻底重新定义了与对象存储相关的性能标准。毋庸置疑,随着MinIO可用节点数量的增加,与aws3相比的性能差距将会增大。这种性能也扩展到写操作,Minio和aws3的平均总体写入IO分别为2.92gb/Sec和2.94gb/Sec。同样,MinIO和aws3之间的差异比整体性能要小。这对apachespark社区意味着对象存储现在可以用于需要高性能和可伸缩性的Spark作业。aws3在公共云中提供了这一点。MinIO在私有云中提供了这个功能。使用Minio走私有云路线的一个优势是私有云提供了更多的机会来根据特定的用例调整硬件。这意味着NVMe驱动器、Optane内存和100 GbE网络。与上面列出的公共云数量相比,这将提供至少一个数量级的性能改进。了解更多如前所述,MinIO的代码是开源的,可以在这里获得。我们在Spark+AI峰会上就这个问题进行了唯一一次会谈,会议将在4月24日星期三下午3:20举行。此外,我们将在展示厅演示性能并讨论实施情况。请到509号展位来看看我们的下载。如果你不参加演出,你可以随时在我们的休闲频道与我们互动。.blog post--标题--meta--项目.博客-post--标题--meta--项-作者:之前{内容:"嘉宾博客";}免费试用Databricks。今天就开始吧