Learning Spark笔记1-Spark介绍

Learning Spark


三个优点


容易使用-你可以使用你的笔记本开发应用程序,使用高级API让你专注于你的计算内容上。
快速的-
通用引擎-让你组合多种类型的计算(例如,SQL查询、文本处理、机器学习)


Apache Spark


Spark被设计为快速的通用的机群计算平台


速度方面,Spark扩展Mapreduce支持更多的计算类型,包括交互查询和流。一个主要的特征是Spark在内存中计算,该系统比Mapreduce运行在磁盘上的复杂应用更高效。


在一般方面,Spark可以将各-种工作负载放在同一个引擎中,Spark以简单的廉价方式组合不同的处理类型,此外它会降低分开工具的管理成本


Spark被设计为高度可访问的,提供Python、Java、Scala和SQL的简单API,丰富的内建库,他也会整合其他的大数据工具,尤其是Spark可以运行在Hadoop集群上,可以访问Hadoop数据源,包括Cassandra。


统一的栈


Spark包括多个紧密结合的组件。其核心是Spark计算引擎,它为多个专门的高级组件提供工作负载,如SQL或机器学习。


紧密整合理念有几个好处:
1.所有库和高层组件得益于底层改进,例如Spark核心引擎优化,SQL和machine learning库也会自动加速。


2.运行堆栈的成本最小化


3.紧密结合的最大好处是,建立应用程序可以无缝的组合不同的处理模型。在Spark中,您可以编写一个使用机器学习的应用程序,以便从数据流中获取数据。同时,分析人员也可以通过SQL来实时查询结果数据(例如,使用非结构化日志文件加入数据)。此外,更复杂的数据工程师和数据科学家可以通过Python shell访问相同的数据进行临时分析。


Spark Core


Spark Core包括基本的Spark功能,任务调度、内存管理、故障恢复和与存储系统交互的组件。Spark Core是弹性分布式数据集API的所在,也是主要的编程抽象。RDD表示以并行的方式操作分布式的跨多个计算节点的集合,Spark Core提供很多的API建立和维护这些集合。


Spark SQL


Spark SQL是处理结构化数据的Spark的包。它允许通过SQL查询数据,像hive一样,它提供很多数据源,包括hive table、Parquet和JSON。除了提供了一个SQL的接口到Spark,Spark SQL允许开发人员将SQL查询与Python,Java和Scala中的RDD支持的编程数据操作混合在一起,从而将SQL与复杂的分析结合在一起。




Spark Streaming




Spark Streaming是一个Spark组件有能力处理流式数据。流式数据包括由web服务生成的日志文件,或者是由使用web服务用户的更新的状态队列消息。Spark Streaming提供了一个与Spark Core RDD API相匹配的数据流的API,使得程序员很容易学习,在不同的应用中移动数据,操作来自内存、磁盘或实时到达的数据。




MLlib


Spark自带一个库包括通常的机器学习功能,该库提供了多种类型的机器学习算法包括,分类、回归、聚类、协同过滤,以及支持功能,如模型评估和数据导入。它也提供一些低级机器学习原语,包括梯度下降优化算法,所有这些方法都被设计为跨集群扩展的。


GraphX


GraphX是一个操作图形的库(社交网络图),执行图形并行计算。像Spark Streaming 和Spark SQL,GraphX扩展Spark RDD API。GraphX也提供了各种操作来操作图,一个通常的库算法(例如 PageRank和角计数)


Cluster Managers


Spark被设计为可以从一个扩展到几千了计算节点,Spark可以运行在各种集群管理器上,包括Hadoop Yarn、Apache Mesos和它自己的集群管理器Standalone Scheduler。




Core Spark概念


每个Spark都有一个驱动程序,它可以在集群上启动各种并行操作。驱动程序包括你的应用的主函数和集群上分布式数据集。Spark shell就是驱动程序。


驱动程序通过SparkContext对象访问Spark,该对象代表与计算集群的连接。在shell中,SparkContext是自动被创建的,叫sc。sc.textFile()创建一个文件文本的行的RDD。


驱动通常管理一些叫做executor的节点。例如,我们在集群上运行count()操作,不同的机器可能计算文件不同范围的行的数量


ps:这里所说的驱动程序是由程序员编写的Spark程序




import org.apache.spark.SparkConf;
import org.apache.spark.api.java.JavaSparkContext;
SparkConf conf = new SparkConf().setMaster("local").setAppName("My App");
JavaSparkContext sc = new JavaSparkContext(conf);


两个参数


1.集群URL
2.应用名字,web UI界面看到的
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

艺菲

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值