大数据----Hadoop----Spark入门介绍

20 篇文章 0 订阅
1 篇文章 0 订阅


Hadoop生态圈包含多种组件,貌似各不相同,但是都有三种共同的特征:
1.依赖于Hadoop的YARN、HDFS、MapReduce;
2.都是处理大数据的工具,并提供建立端到端数据流水线所需的各种功能;
3.建立分布式的理念相通。

Spark

Spark基本的数据结构叫做弹性分布式数据集(RDD)。这是一个分布于集群节点的只读数据集合,并以容错的、并行的方式进行维护。
传统的MapReduce框架中的Map阶段和Reduce阶段的结果均要写磁盘,这大大降低了系统性能。
为了解决MapReduce的性能问题,Spark使用RDD作为分布式程序的工作集合,它提供一种分布式共享内存的受限形式。在分布式共享内存系统中,应用可以向全局地址空间的任意位置进行读写操作,而RDD是只读的,对其只能进行创建、转化和求值等操作。
利用RDD可以方便地实现迭代算法,简单地说就是能够在一个循环中多次访问数据集合。RDD还适合探索式的数据分析,能够对数据重复执行类似于数据库风格的查询。

Spark需要一个集群管理器和一个分布式存储系统作为支撑。对于集群管理,Spark支持独立管理(原生的Spark集群),Hadoop YARN和Apache Mesos。对于分布式存储,Spark可以与多种系统对接,包括HDFS、MapR文件系统、Cassandra、OpenStack Swift、Amazon S3、Kudu,或者一个用户自己实现的文件系统。

Spark框架含有Spark Core、Spark SQL、Spark Streaming、MLlib Machine Learning Library、GraphX等几个主要组件。

1.Spark Core

Spark Core是所有Spark相关组件的基础。 它以RDD这个抽象概念为核心,通过一组应用程序接口,提供分布式任务的分发、调度和基本的I/O功能。Spark Core的编程接口支持Java、Python、Scala和R等程序语言。

这组接口使用的是函数式编程模式,即一个包含对RDD进行map、filter、reduce、join等并行操作的驱动程序。这些基本操作把RDD作为输入并产生新的RDD。RDD自身是一个不变的数据集,对RDD的所有转换操作都是lazy模式,即Spark不会立刻计算结果,而只是简单地记住所有对数据集的转换操作。这些转换只有遇到action操作的时候才会开始真正执行,这样的设计使Spark更加高效容错功能是通过跟踪每个RDD的“血统” (lineage,指的是产生此RDD的一系列操作)实现的。一旦RDD的数据丢失,还可以 使用血统进行重建RDD可以由任意类型的Python、Java或Scala对象构成
Spark还有两种形式的共享变量:broadcast和accumulators。 broadcast变量引用的是需要在所有节点上有效的只读数据,accumulators可以简便地对各节点返回给驱动程序的值进行聚合。

2.Spark SQL

Spark SQL是基于Spark Core之上的一个组件,它引入了名为DataFrames的数据抽象。DataFrames能够支持结构化、半结构化数据。 Spark SQL提供了一种“领域特定语言”(Domain-Specific Language,简称DSL),用于在Scala、Java或Python中操纵DataFrames。同时Spark SQL也通过命令行接口或ODBC/JDBC提供对SQL语言的支持

3.Spark Streaming

Spark Streaming利用Spark Core的快速调度能力执行流数据的分析。它以最小批次获取数据,并对批次上的数据执行RDD转化。可以让用于批处理分析的Spark应用程序代码也可以用于流数据分析。

4.MLlib Machine Learning Library

Spark中还包含一个机器学习程序库,叫做MLlib。MLlib提供了很多机器学习算法,包括分类、回归、聚类、协同过滤等,还支持模型评估、数据导入等额外的功能。MLlib还提供了一些更底层的机器学习原语,如一个通用的梯度下降算法等。所有这些方法都被设计为可以在集群上轻松伸缩的架构。

5.GraphX

GraphX是Spark上的图(如社交网络的朋友关系图)处理框架。可以进行并行的图计算。由于RDD是只读的,因此GraphX不适合需要更新图的场景。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值