.Net for Apache Spart 学习笔记1

一、Apache Spark是什么?
  Apache  Spart是一种流行的开源分布式处理引擎,一种开源集群计算系统,适用于大型数据集(通常是TB级别)的分析, Spark可用于处理批量数据,实时流,机器学习和即时查询。

    Apache  Spart最初由加州伯克利大学(UC Berkeley) AMP lab实验室开发并于2010年开源,目前已经成为阿帕奇软件基金会(Apache Software Foundation)的顶级项目。Apache  Spart大部分代码使用Scala语言编写。

     相比于传统的MapReduce大数据分析,Spark效率更高、运行时速度更快,Apache Spark的快速成功得益于它的强大功能和易于使用性。较之于Hadoop,Spark的集群配置比Hadoop集群的配置更简单,运行速度更快且更容易编程,它使得普通的开发具备Hadoop的数据处理能力、使得大多数的开发人员具备了大数据和实时数据分析能力 。

      Spark整个生态系统构建在Spark内核引擎之上,内核使得Spark具备快速的内存计算能力,也使得其API支持Java、Scala,、Python、R四种编程语言。Streaming具备实时流数据的处理能力。Spark SQL使得用户使用他们最擅长的语言查询结构化数据,DataFrame位于Spark SQL的核心,DataFrame将数据保存为行的集合,对应行中的各列都被命名,通过使用DataFrame,可以非常方便地查询、绘制和过滤数据。MLlib为Spark中的机器学习框架。Graphx为图计算框架,提供结构化数据的图计算能力。

二、.NET for Apache Spart 简介

     先前, Spark API只支持Java、Scala,、Python、R四种编程语言访问,却不能通过.NET进行访问。而.NET for Apache Spark的出现,使得使用可以通过C# F# 访问Spark API。 .NET for Apache Spark就是旨在使.NET开发人员可以跨所有Spark API访问Apache®Spark™。

    NET for Apache Spark为C#和F#提供了高性能的API来操作Spark。使用这个.NET API,您可以访问Apache Spark的所有功能,包括SparkSQL、DataFrames、流、MLLib等等。.NET for Apache Spark允许您重用作为.NET开发人员已经拥有的所有知识、技能、代码和库。

     NET for Apache Spark符合.NET Standard 2.0标准,它使用 .NET Core 在 Windows、Linux 和 macOS 上运行,它还使用 .NET Framework 在 Windows 上运行。 可以将应用程序部署到所有主要云提供商,包括 Azure HDInsight Spark、Amazon EMR Spark、Azure Databricks 和 AWS 上的 Databricks。、

三、.NET for Apache Spark 体系结构

C#/F# 语言与 Spark 的绑定是在新的 Spark 互操作层上编写的,该互操作层可提供更轻松的扩展性。 这一新的 Spark 互操作层是使用语言扩展的最佳做法编写的,并针对互操作性和性能进行了优化。 长期来看,此扩展性可用于在 Spark 中添加对其他语言的支持。


四、.NET for Apache Spark  特点

    (1) 可以用C#或者F# 进行Apache Spark开发

      .NET for Apache Spark 为您提供了使用 C# 和F# 来操作Apache Spark的APIs。使用这些.NET API,您可以访问Apache Spark的所有功能,包括Spark SQL,用于处理结构化数据和Spark流。

   (2) 高性能,易于使用

      第一版的.NET for Apache Spark在流行的TPC-H基准性能测试中的表现就很优异。TPC-H基准性能测试由一组面向业务的查询组成。NET for Apache Spark在Python和Scala上表现良好。此外,在UDF性能至关重要的情况下,比如查询1,JVM和CLR.NET之间传递3B行非字符串数据的速度比Python快2倍。

        同样重要的是,这是.NET for Apache Spark的第一个预览版,我们的目标是进一步投资于改进和基准测试性能(例如,Arrow优化)。您可以按照我们的指示在我们的GitHub仓储上对此进行基准测试。

 (3) 利用.NET生态系统

     .NET For Apache Spark允许您重用作为.NET开发人员已经拥有的所有知识、技能、代码和库,可以利用.NET开发人员可以使用的大型库生态系统,如Newtonsoft.Json,ML.NET、MathNet.NDigics、NodaTime等。

(4) 跨平台

    .NET for Apache Spark可以在Linux、MacOS和Windows上使用,就像.NET的其他部分一样。

     .NET for Apache Spark在Azure HDInsight中默认可用,可以安装在Azure Databricks、Azure Kubernetes服务、AWS数据库、AWS EMR等中。

   (5) 开源免费

     .NET for Apache Spark是一个拥有来自3,700多家企业的60,000多名代码贡献者的强大开源社区的一部分。

      .NET是免费的,其中包括用于 .NET for Apache Spark。没有任何费用或许可证费用,包括用于商业用途的费用。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容