Spark基础

Spark基础

Hadoop与Spark的区别

Hadoop
1、Hadoop是由java语言编写的,在分布式服务器集群上存储海量数据并运行分布式分析应用的开源框架
2、作为Hadoop分布式文件系统,HDFS处于Hadoop生态圈的最下层,存储着所有的数据,支持者Hadoop的所有服务器。它的理论基础源于Google的TheGoogleFileSystem这篇论文,它是GFS的开源实现。
3、MapReduce是一种编程模型,Hadoop根据Goodle的MapReduce论文将其实现,作为Hadoop 的分布式计算模型,是Hadoop的核心。基于这个框架,分布式并行的程序的编写变得异常简单。综合了HDFS的分布式存储和MapReduce的分布式计算、Hadoop在处理海量数据时,性能横向拓展变得非常容易。
4、HBase是对Google的Bigtable的开源实现,但又和Bigtable存在许多不同之处。HBase是一个基于HDFS的分布式数据库,擅长实时地随机读写超大规模数据集。他也是Hadoop非常重要地组件

Spark
1、Spark是一种由Scala语言开发地快速、通用、可拓展地大数据分析引擎
2、Spark Core中提供了Spark最基础与最核心的功能
3、Spark SQL是Spark用来操作结构化数据的组件。通过Spark SQL,用户可以使用SQL或者Apache Hice版本的HQL来查询数据
4、Spark Streaming是Spark平台上针对实时数据进行流式计算的组件,提供了丰富的处理数据
流的API
编程方式
Hadoop的MapReduce计算数据时,要转化为Map和Reduce两个过程,从而难以描述复杂的数据处理过程;而Spark的计算模型不局限于Map和Reduce操作,还提供了多种数据集的操作类型,编程模型比MapReduce更加灵活。
数据存储
Hadoop的MapReduce进行计算时,每次产生的中间结果都存储在本地磁盘中;而Spark在计算时产生的中间结果存储在内存中。
数据处理
Hadoop在每次执行数据处理时,都有从磁盘中加载数据,导致磁盘IO开销较大而Spark在执行数据处理时,要将数据加载到内存中,直接在内存中加载中间结果数据集,减少了磁盘的IO开销。
数据容错
MapReduce计算的中间结果数据,保存在磁盘中,Hadoop底层实现了备份机制,从而保证了数据容错;Spark RDD实现了基于Lineage的容错机制和设置检查点方式的容错机制,弥补数据在内存处理时,因断电导致数据丢失的问题。

Spark的组件

1)Spark Core:Spark核心组件,实现了Spark的基本功能,包含任务调度、内存管理、错误恢复、与存储系统交互等模块。Spark Core中还包含对弹性分析式数据集的API定义。
2)Spark SQL:用来操作结构化数据的核心组件,通过Spark SQL可直接查询Hive、HBase等多种外部数据源中的数据。Spark SQL的重要特定是能够统一处理关系表和RDD
3)Spark Streaming:Spark提供的流式计算框架,支持高吞吐量、可容错处理的实时流式数据处理,其核心原理就是将流数据分解成一系列短小的批处理作业
4)MLib:Spark提供的关于机器学习功能的算法程序库,包括分类、回归、聚类、协同过滤算法等,还提供了模型,评估,数据导入等额外的功能。
5)GraphX:Spark提供的分布式图处理框架,拥有对图计算和图挖掘算法的API接口及丰富的功能和运算符,便于对分布式图处理的需求,能在海量数据上运行复杂的图算法。
6)独立调度器、Yarn、Mesos:集群管理器,负责Spark框架高效的在一个到数千个节点之间进行伸缩计算的资源管理

Spark环境运行环境

Linux系统:CentOS_6.7及以上版本
Hadoop:2.7.4及以上版本
JDK:1.8及以上版本
Spark:2.3.2及以上版本
未完待续

Spark开发环境

Windows系统
Scala:scala2.1.2及以上版本
JDK:1.8及以上版本
Idea:2019版本(随意)

安装Scala

1)下载Scala安装包
在这里插入图片描述
2)解压并配置windows下环境变量
在这里插入图片描述
3)进入命令行,输入scala查看是否安装成功
在这里插入图片描述

在开发工具IDEA中下载安装Scala插件

1)下载IDEA安装包,打开安装包进行单击Next按钮进行安装,直到出现Welcome to IntelliJ IDEA界面则安装结束
2)访问https://plugins.jetbrains.com/plugin/1347-scala下载Scala插件
在这里插入图片描述
3)单击IDEA主界面右下角的【Configure】→【Plugins】→【Install plugin from disk】→【OK】→【OK】,单击【Restart】按钮,重启IDEA工具,安装结束。

开发第一个Scala程序

创建工程

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

创建包和Scala类

在这里插入图片描述

编写代码

package cn.itcast.scala

object HelloWolrd {
    def main(args: Array[String]) {
      println("Hello, world!")
    }
}

运行代码

在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
对于学习Spark基础知识,我建议按照以下思路进行: 1. 理解分布式计算概念:Spark是一个分布式计算框架,因此了解分布式计算的基本概念是很重要的。你可以学习分布式计算的原理、架构和常用的算法。 2. 学习Spark核心概念:掌握Spark核心概念是学习Spark的首要任务。这包括理解RDD(弹性分布式数据集)、DataFrame和DataSet等数据抽象概念,以及Spark的运行架构和作业调度模型等。 3. 学习Spark编程模型:掌握Spark编程模型是使用Spark进行开发的基础。你可以学习Spark提供的编程接口,如Scala、Java和Python,以及使用这些接口来编写Spark应用程序。 4. 实践使用Spark:通过实际的项目或练习来巩固所学知识。可以选择一些小规模的数据集进行处理和分析,尝试使用Spark的各种功能和API来解决实际问题。 5. 深入学习Spark生态系统:除了核心Spark框架外,还有很多与之配套的工具和库,如Spark SQL、Spark Streaming、MLlib和GraphX等。学习这些工具和库可以进一步扩展你的Spark技能。 6. 参考文档和学习资源:Spark官方文档是学习的重要参考资源,可以深入了解每个模块的详细信息。此外,还可以参考Spark的书籍、教程和在线课程等学习资源。 通过以上步骤,你应该能够建立起对Spark基础知识和编程能力。记得不断实践和探索,提升自己在Spark领域的技能。祝你学习顺利!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值