Spark学习(一)---Spark简介和运行环境

news/2024/11/14 14:10:05/

文章目录

  • 1.Spark介绍
      • 1.1 Spark核心模块
      • 1.2 使用Spark写一个WordCount
      • 1.2 Spark运行环境
        • 1.2.1 Local模式
        • 1.2.2 Standalone 模式
        • 1.2.3 高可用模式(HA)模式
        • 1.2.4 Yarn模式

1.Spark介绍

Hadoop中的MapReduce框架在设计之初并不是为了满足循环迭代式数据流处理,因此在多并行运行的数据可复用场景(如:机器学习,图像挖掘算法、交互式数据挖掘算法)中存在诸多效率问题。所以Spark就是在传统的MR计算框架的基础上,利用其计算过程的优化,从而大大加快了数据分析、挖掘的运行和读写速度,并且将计算单元缩小到更适合并行计算和重复使用的RDD模型。

Spark和Hadoop的根本差异就在于多个作业(job)之间的数据通信问题:Spark多个作业之间数据通信是基于内存的,而Hadoop框架是基于磁盘的。

1.1 Spark核心模块

在这里插入图片描述

Spark Core
Spark Core中提供了Spark最基本和核心的功能,Spark其他的功能都是在Spark Core的基础上进行扩展的。
Spark SQL
Spark SQL是Spark用来操作结构化数据的组件,通过Spark SQL,用户可以使用SQL或者HQL来查询数据
Spark Streaming
Spark Streaming是Spark平台上针对实时数据进行流式计算的组件,提供了丰富的处理数据流的API
Spark MLlib
Spark MLlib是Spark提供的一个机器学习的算法库,MLlib不仅提供了模型评估,数据导入等额外的功能,还提供了一些机器学习的原语
Spark GraphX
GraphX是Spark面向图计算提供的框架和算法库

1.2 使用Spark写一个WordCount

package com.atguigu.bigdata.spark.coreimport org.apache.spark.{SparkConf, SparkContext}class Spark_demo_WordCount {}object Spark_demo_WordCount{def main(args: Array[String]): Unit = {System.setProperty("hadoop.home.dir", "E:\\BigDataLearn\\hadoop-3.2.3")//1.建立和Spark框架的连接val sparkConf=new SparkConf().setMaster("local").setAppName("WordCount")val sc = new SparkContext(sparkConf)//2.执行业务操作//    //读取数据,一行一行的获取数据
//    val lines = sc.textFile("datas")
//
//    //将一行一行的数据拆分(扁平化操作)
//    val words = lines.flatMap((lines: String) =>
//      lines.split(" ")
//    )
//
//    //将数据根据单词进行分组,便于统计
//    val wordGroup = words.groupBy((word: String) => word)
//
//    //对分组后的数据进行转化
//    val value = wordGroup.map((tuple) => {
//      (tuple._1, tuple._2.size)
//    })
//
//
//    //将转换结果采集到控制台打印
//    for( e<-value)
//    {
//      println(e)
//    }//wordcount不同的实现val lines = sc.textFile("datas")val words = lines.flatMap((line: String) => line.split(" "))val wordTuple = words.map((w:String)=>{(w,1)})val wordGroup = wordTuple.groupBy((tuple) => {tuple._1})for(e<-wordGroup){println(e)}val value = wordGroup.map {case (key:String, list:Iterable[(String,Int)]) => {list.reduce((t1, t2) => {(t1._1, t1._2 + t2._2)})}}val tuples = value.collect()for(e<-tuples){println(e)}//3.spark关闭连接sc.stop()}
}

1.2 Spark运行环境

Spark作为一个数据处理框架和计算引擎,被设计在所有的集群环境中运行,在国内工作中主流的环境为yarn,不过逐渐容器式的环境也慢慢流行起来。
在这里插入图片描述

1.2.1 Local模式

所谓的Local模式,就是不需要其他任何节点资源就可以在本地执行Spark代码的环境,一般用于教学,调试和演示等。

1.2.2 Standalone 模式

local 本地模式毕竟只是用来进行练习演示的,真实工作中还是要将应用提交到对应的
集群中去执行,这里我们来看看只使用 Spark 自身节点运行的集群模式,也就是我们所谓的
独立部署(Standalone)模式。Spark 的 Standalone 模式体现了经典的 master-slave 模式。
在这里插入图片描述

1.2.3 高可用模式(HA)模式

所谓的高可用是因为当前集群中的 Master 节点只有一个,所以会存在单点故障问题。所以为了解决单点故障问题,需要在集群中配置多个 Master 节点,一旦处于活动状态的 Master发生故障时,由备用 Master 提供服务,保证作业可以继续执行。这里的高可用一般采用Zookeeper 设置

1.2.4 Yarn模式

独立部署(Standalone)模式由 Spark 自身提供计算资源,无需其他框架提供资源。这
种方式降低了和其他第三方资源框架的耦合性,独立性非常强。但是你也要记住,Spark 主
要是计算框架,而不是资源调度框架,所以本身提供的资源调度并不是它的强项,所以还是
和其他专业的资源调度框架集成会更靠谱一些。所以接下来我们来学习在强大的 Yarn 环境
下 Spark 是如何工作的(其实是因为在国内工作中,Yarn 使用的非常多)。


http://www.ppmy.cn/news/737733.html

相关文章

高通骁龙CPU的手机对比

不比不知道&#xff0c;一比吓一跳&#xff01;&#xff01;&#xff01; 没有对比&#xff0c;就没有伤害&#xff01;&#xff01;&#xff01;

骁龙芯片性能排行2020_9月安兔兔性能排行榜公布,骁龙865霸榜,iQOO独占鳌头

Hello&#xff0c;大家好。手机性能已经是一个老生常谈的话题了&#xff0c;虽然现在手机的性能普遍过剩&#xff0c;但是还是有很多厂商愿意去跑一跑分&#xff0c;以此证明自己的手机才是最优秀的&#xff0c;最近安兔兔就公布了9月份的手机性能排行榜单&#xff0c;只不过这…

Cyclo(L-Pro-L-Trp-),38136-70-8,L型氨基酸环二肽,及其参数说明

&#xff08;文章资料汇总来源于&#xff1a;陕西新研博美生物科技有限公司小编MISSwu&#xff09; 为大家介绍&#xff08;CAS&#xff1a;38136-70-8&#xff09;,试剂仅用于科学研究&#xff0c;不可用于人类&#xff0c;非药用&#xff0c;非食用。 分子式&#xff1a;C16…

腾讯游戏服务器外包二面

1.基础问题 2.网络协议 3.数据结构 3.1二叉树的前序遍历 3.2实现二叉树的前序遍历 https://www.nowcoder.com/practice/5e2135f4d2b14eb8a5b06fab4c938635?tpId295&tqId2291302&ru/exam/oj&qru/ta/format-top101/question-ranking&sourceUrl%2Fexam%2Foj…

索引底层数据结构红黑树、Hash、B+树详解

一、红黑树 1.1 红黑树原理 红黑树是一种自平衡的二叉搜索树&#xff0c;它在插入和删除节点时能够自动调整树的结构&#xff0c;以保持树的平衡性。红黑树的节点有两种颜色&#xff0c;红色和黑色&#xff0c;通过一组规则来确保树的平衡性&#xff1a; 每个节点要么是红色…

单位转换html代码,万能在线单位转换器 转换器网

在线立方米(Cubic meter)、公石(hectoliter)、十升(dekaliter)、立方分米(Cubic dm)、升(liter)、分升(deciliter)、厘升(centiliter)、立方厘米(Cubic cm)、毫升(milliliter)、立方毫米(Cubic millimeter)、桶(Barrel)、蒲式耳(Bushel)、配克(Peck)、夸脱(Quart)、品脱(Pint)、…

java做度量衡换算器_简易单位换算器_度量衡单位转换

1.其他计量单位制&#xff0d;>公制&#xff1a; 在等式左边文字输入框填入非标准计量单位数量&#xff0c;如“1”&#xff0c;在等式左边非标准计量单位下拉菜单中选择单位&#xff0c;如“磅”&#xff1b;在等式右边公制计量单位下拉菜单中选择单位&#xff0c;如“公斤…

计算机 单位换算

什么是EFLOPS&#xff1f; 一个MFLOPS&#xff08;megaFLOPS&#xff09;等于每秒一百万&#xff08;10^6&#xff09;次的浮点运算&#xff0c; 一个GFLOPS&#xff08;gigaFLOPS&#xff09;等于每秒十亿&#xff08;10^9&#xff09;次的浮点运算&#xff0c; 一个TFLOPS&…