Spark基本概念以及环境搭建

spark介绍 一、spark 是什么? Spark是一种快速、通用、可扩展的大数据分析引擎,2009年诞生于加州大学伯克利分校 AMPLab, 2010年开源,2013年6月成为Apache孵化项目,2014年2月成为Apache顶级项目。项目是用Scala进行编写。 目前,Spark生态系统已经发展成为一个包含多个子项目的集合,其中包含SparkSQL、Spark Streaming、GraphX、MLib、... 阅读详情

Spark基本概念

一、什么是Spark

在这里插入图片描述

Apache Spark是用于大规模数据处理的统一分析引擎。

Spark 是一种基于内存的快速、通用、可扩展的大数据分析计算引擎。

Spark框架是基于Scala语言编写的。

二、Spark 和 Hadoop

Spark和Hadoop有什么关系?

从功能上来说:

Hadoop

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

Spark

  • Spark是由Scala语言开发的快速、通用、可扩展的大数据分析引擎
  • SparkCore中提供了Spark最基础与最核心的功能
  • SparkSQL是Spark用来操作结构化数据的组件。通过SparkSQL,用户可以使用SQL或者ApacheHive版本的SQL方言(HQL)来查询数据。
  • SparkStreaming是Spark平台上针对实时数据进行流式计算的组件,提供了丰富的处理数据流的API。

Spark 出现的时间相对较晚,主要功能主要是用于数据计算。而 Hadoop 中的HDFS、MapReduce、HBase可以分布式储存、计算。但是由于Spark主要是在内存中进行数据计算,Spark的计算速度会比MapReduce快上很多,也因为内存的问题,导致计算的不稳定。MapReduce计算虽然比较慢,但是计算的很稳定。

三、Spark核心模块

在这里插入图片描述

  • Apache Spark (Spark Core)

    ​ Spark Core 中提供了 Spark 最基础与最核心的功能,Spark 其他的功能如:Spark SQL,Spark Streaming,GraphX,MLlib 都是在 Spark Core 的基础上进行扩展的

  • Spark SQL

    ​ Spark SQL 是 Spark 用来操作结构化数据的组件。通过 Spark SQL,用户可以使用 SQL或者 Apache Hive 版本的 SQL 方言(HQL)来查询数据。

  • Spark Streaming

    ​ Spark Streaming 是 Spark 平台上针对实时数据进行流式计算的组件,提供了丰富的处理数据流的 API。

  • Spark MLlib

    ​ MLlib 是 Spark 提供的一个机器学习算法库。MLlib 不仅提供了模型评估、数据导入等额外的功能,还提供了一些更底层的机器学习原语。

  • Spark GraphX

    ​ GraphX 是 Spark 面向图计算提供的框架与算法库。

Spark环境搭建

一、介绍

在这里插入图片描述

Spark的运行环境有Local模式、Standalone 模式、Yarn 模式、K8S & Mesos 模式、Windows 模式。

Standalone 模式、Yarn 模式、K8S & Mesos 模式,这三种模式就不介绍了,有兴趣的可以去官网查看。

二、Local模式和Windows 模式

Local模式

一般用于测试和教学,不适应开发,将下载好的文件,解压缩,进入解压缩后的目录中,运行bin/spark-shell,就启动了本地模式

在这里插入图片描述

打开UI界面,如下:

在这里插入图片描述

启动之后,会自动创建一个SparkContext对象sc,使用它进行WordCount

sc.textFile("data/word.txt").flatMap(_.split(" ")).map((_,1)).reduceByKey(_+_).collect

可以输出WordCount。

Windows 模式

Spark支持Windows 环境运行Spark任务,以后大部分开发工作都是在这个模式下进行的,所以来进行配置一下。

要求:

  • scala 2.12.11
  • hadoop 2.7.1
  • java 最好是1.8.0
  • spark 3.0.1

将scala、hadoop、java、spark安装好,都添加到环境变量,接下来配置一下IDEA

1、首先添加scala依赖

在这里插入图片描述

2、创建一个maven项目,sparkProject

在这里插入图片描述

3、修改pom.xml,添加相关依赖

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>org.example</groupId>
    <artifactId>sparkProjectText</artifactId>
    <version>1.0-SNAPSHOT</version>

    <repositories>
        <repository>
            <id>aliyun</id>
            <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
        </repository>
        <repository>
            <id>apache</id>
            <url>https://repository.apache.org/content/repositories/snapshots/</url>
        </repository>
        <repository>
            <id>cloudera</id>
            <url>https://repository.cloudera.com/artifactory/cloudera-repos/</url>
        </repository>
    </repositories>
    <properties>
        <maven.compiler.source>16</maven.compiler.source>
        <maven.compiler.target>16</maven.compiler.target>
        <encoding>UTF-8</encoding>
        <maven.compiler.source>1.8</maven.compiler.source>
        <maven.compiler.target>1.8</maven.compiler.target>
        <scala.version>2.12.11</scala.version>
        <spark.version>3.0.1</spark.version>
        <hadoop.version>2.7.5</hadoop.version>
    </properties>

    <dependencies>
        <!--依赖Scala语言-->
        <dependency>
            <groupId>org.scala-lang</groupId>
            <artifactId>scala-library</artifactId>
            <version>${scala.version}</version>
        </dependency>

        <!--SparkCore依赖-->
        <dependency>
            <groupId>org.apache.spark</groupId>
            <artifactId>spark-core_2.12</artifactId>
            <version>${spark.version}</version>
        </dependency>

        <!-- spark-streaming-->
        <dependency>
            <groupId>org.apache.spark</groupId>
            <artifactId>spark-streaming_2.12</artifactId>
            <version>${spark.version}</version>
        </dependency>

        <!--spark-streaming+Kafka依赖-->
        <dependency>
            <groupId>org.apache.spark</groupId>
            <artifactId>spark-streaming-kafka-0-10_2.12</artifactId>
            <version>${spark.version}</version>
        </dependency>

        <!--SparkSQL依赖-->
        <dependency>
            <groupId>org.apache.spark</groupId>
            <artifactId>spark-sql_2.12</artifactId>
            <version>${spark.version}</version>
        </dependency>

        
    <build>
        <sourceDirectory>src/main/scala</sourceDirectory>
        <plugins>
            <!-- 指定编译java的插件 -->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.5.1</version>
            </plugin>
            <!-- 指定编译scala的插件 -->
            <plugin>
                <groupId>net.alchim31.maven</groupId>
                <artifactId>scala-maven-plugin</artifactId>
                <version>3.2.2</version>
                <executions>
                    <execution>
                        <goals>
                            <goal>compile</goal>
                            <goal>testCompile</goal>
                        </goals>
                        <configuration>
                            <args>
                                <arg>-dependencyfile</arg>
                                <arg>${project.build.directory}/.scala_dependencies</arg>
                            </args>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-surefire-plugin</artifactId>
                <version>2.18.1</version>
                <configuration>
                    <useFile>false</useFile>
                    <disableXmlReport>true</disableXmlReport>
                    <includes>
                        <include>**/*Test.*</include>
                        <include>**/*Suite.*</include>
                    </includes>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-shade-plugin</artifactId>
                <version>2.3</version>
                <executions>
                    <execution>
                        <phase>package</phase>
                        <goals>
                            <goal>shade</goal>
                        </goals>
                        <configuration>
                            <filters>
                                <filter>
                                    <artifact>*:*</artifact>
                                    <excludes>
                                        <exclude>META-INF/*.SF</exclude>
                                        <exclude>META-INF/*.DSA</exclude>
                                        <exclude>META-INF/*.RSA</exclude>
                                    </excludes>
                                </filter>
                            </filters>
                            <transformers>
                                <transformer
                                        implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
                                    <mainClass></mainClass>
                                </transformer>
                            </transformers>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>

</project>

4、新建一个文件夹scala

在这里插入图片描述

5、创建包,创建一个scala对象WordCount

import org.apache.spark.{SparkConf, SparkContext}

object WordCount {
  def main(args: Array[String]): Unit = {
    val conf = new SparkConf().setAppName("wc").setMaster("local[*]")
    val sc = new SparkContext(conf)

    val lines = sc.textFile("data/word.txt")

    val words = lines.flatMap(_.split(","))

    val wa = words.map((_, 1))

    val res = wa.reduceByKey(_ + _)

    res.foreach(println)

    sc.stop()
  }
}

6、运行一下,没有问题,就可以接下来的开发了

在这里插入图片描述

Intellij搭建spark开发环境 spark怎么学习呢?在一无所知的前提下,首先去官网快速了解一下spark是干什么的,官网在此。然后,安装开发环境,从wordcount开始学习。第三,上手以后可以学习其他算法了。最后,不要放弃,继续深入学习。那么,首先解决的就是如何搭建开发环境的问题。1、确保你的电脑安装了JDK,以及配置了JAVA_HOME环境变量。2、安装Intellij IDEA,下载地址。目前15.0版本对Scala的支持 阅读详情

相关推荐

Spark在Windows下的环境搭建

由于Spark是用Scala来写的,所以Spark对Scala肯定是原生态支持的,因此这里以Scala为主来介绍Spark环境的搭建,主要包括四个步骤,分别是:JDK的安装,Scala的安装,Spark的安装,Hadoop的下载和配置。为了突出”From Scratch”的特点(都是标题没选好的缘故),所以下面的步骤稍显有些啰嗦,老司机大可不必阅读,直接跳过就好。

大气人生 13万+

(一)spark是什么?

1.spark是什么? spark是一个用来实现快速,通用的集群计算平台 spark适用于各种各样原先需要多种不同的分布式平台的场景,包括批处理,迭代算法,交互式查询,流处理。通过在一个统一的框架下支持这些不同的计算,spark使我们可以简单而低耗地把各种处理流程整合在一起。 2.spark的用途 (1):数据科学任务 具备 SQL、统计、预测建模(机器学习)等方面的经验,以及一定的python,matlab,R语言能力的数据科学家对数据进行分析,以回答问题或发现一些潜在规律。 (2):数据处理任务

一智哇的博客 2万+

Spark环境搭建-Windows

spark Windows搭建

qq_47844519的博客 2869

大数据开发之Spark(入门)

1、spark查看当前spark-shell运行任务情况端口号:40402、spark master内部通信服务端口号:7077(类似于yarn的8032(rm和nm的内部通信)端口)3、spark standalone模式master web端口号:8080(类似于hadoop yarn任务运行情况查看端口号:8088)(yarn模式)89894、spark历史服务器端口号:18080(类似于hadoop历史服务器端口号:19888)

key_honghao的博客 5775

Spark实验之环境搭建

Spark实验之环境搭建 实验一 Spark环境搭建 一、 实验目的 通过实验掌握Spark运行机制,并了解其内核。 二、 实验要求 搭建Spark运行环境、分析对比Spark的几种运行模式。 三、实验内容 Spark架构 Spark Core:包含Spark的基本功能;尤其是定义RDD的API、操作以及这两者上的动作。其他Spark的库都是构建在RDD和Spark Core之上的 Sp...

大虾米 2079

Spark大数据处理讲课笔记2.2 搭建Spark开发环境

1. Spark开发环境准备工作; 2. 了解Spark的三种部署方式; 3. 搭建Spark单机版环境; 4. 搭建Spark Standalone集群; 5. 体验第一个Spark程序; 6. 在Spark Shell里基本操作; 7. 初识弹性分布式数据集RDD

howard2005的专栏 1795

【spark】spark的三种常用运行环境:Local,Standalone,Yarn

Spark作为一个数据处理框架和计算引擎,被设计在所有常见的集群环境中运行,在国内工作中主流的环境为Yarn,不过逐渐容器式环境也慢慢流行起来。spark提供了基于不同环境下的部署模式,本篇针对常用的部署和运行模式,简单做一下总结。...

weixin_44441131的博客 2080

Mac搭建Spark环境

一、首先搭建hadoop环境 https://xingqijiang.blog.youkuaiyun.com/article/details/78736449 二、安装scala 命令行执行:brew install scala 执行完成后,终端输入:scala -version 进行查看,如下表明安装成功: jiangxingqideMacBook-Pro:~ jiangxingqi$ scal...

1547

Spark 开发入门

文章目录Spark是什么DAG有向无环图spark环境搭建Spark开发pyspark使用pythonSpark初始化创建RDD数据的读取和保存文本文件Json文件RDD的转换操作RDD的行动操作集合操作mysql读取 Spark是什么 整个Hadoop生态圈分为分布式文件系统HDFS、计算框架MapReduce以及资源调度框架Yarn。但是随着时代的发展,MapReduce其高强度的磁盘IO、网络通信频率以及写死了的使得其严重拖慢了整个生态圈的运行速度。Spark因此而生。 首先我们来讲一下原有的MapR

0 error(s) 1674

山东大学软件测试实验2——系统功能测试

​ 给出一个被测试的 Web 应用系统(SUT)。http://211.87.232.162:8080/注:友情链接不用延伸测试。针对被测试的 Web 应用系统进行功能测试,发现其存在的缺陷。 ​

m0_74033391的博客 2408

基于STM32的宠物智能照护嵌入式系统设计

嵌入式系统是实现物联网终端设备本地化感知、决策与执行的核心技术载体,其关键在于多传感器融合、低功耗执行控制与轻量级云边协同。本文围绕环境监测(温湿度、烟雾、余粮)、机电执行(步进电机食盘、继电器风扇)和可靠通信(MQTT+ESP8266)三大技术主线,深入解析STM32F103在资源约束下的外设调度策略、ADC采样抗干扰设计、DHT11时序精准控制及HX711称重滤波算法等工程实践要点。系统强调本地闭环优先原则,确保离线基础功能可用,同时通过阿里云IoT平台实现远程监控与告警联动,为中小型智能硬件项目提供可

weixin_29155599的博客 292

spark环境的搭建

spark环境快速搭建

qq_62907049的博客 686

六轴机器人正解

采用的是John H.Craig在【机器人学导论】中的改进DH模型 1.六轴坐标系 2.DH参数 i αi−1\alpha_{i-1}αi−1​ ai−1a_{i-1}ai−1​ did_idi​ θi\theta_iθi​初值 1 0 0 0 0 2 -90 a1a_1a1​ 0 -90 3 0 a2a_2a2​ 0 -90 4 -90 a3a_3a3​ d4d...

m0_37581770的博客 2511

Spark 初识+环境搭建

2. 环境搭建 版本说明: Linux: CentOS-7 Hadoop: Hadoop-2.7.7 JDK: jdk1.8 1️⃣ Step1:下载压缩包 官网下载地址:https://spark.apache.org/downloads.html 2️⃣ Step2:上传压缩包至服务器,并解压。 tar -zxvf xxxx 3️⃣ Step3:配置 spark-envs.sh 配置文件。 1、进入到 Spark 解压后的目录内,进入到 conf 目录中。 2、将 spark-env.sh.te

weixin_47243236的博客 564

NV 英伟达2022数字芯片笔试题

作者:数字IC打工人 链接:【开卷】第27期 NV 英伟达2022数字芯片笔试题_笔经面经_牛客网 来源:牛客网 1、Single Choice: Given thefollowing FIFO and rules, how deep does the FIFO need to be to preventunderflow or overflow? RULES: clk_A=25MHz; clk_B=100MHz; en_B is periodically asserted: period.

weixin_44072819的博客 6385

BitLocker恢复密钥丢失?从原理到实战的完整解锁与系统重生指南

磁盘加密技术是数据安全的核心防线,它通过对存储设备上的数据进行编码,确保未经授权的用户无法访问。其原理主要基于加密算法(如AES)与密钥管理机制,在操作系统启动前或数据读写时进行实时加解密。这项技术的核心价值在于防止设备丢失或被盗后的数据泄露,尤其对于笔记本电脑和移动设备至关重要。典型的应用场景包括企业办公电脑、存有敏感信息的个人设备以及符合合规性要求的行业。当使用Windows系统自带的BitLocker加密功能时,若因硬件改动、系统更新等触发保护机制,用户可能会面临需要输入恢复密钥才能启动的困境。本文聚

weixin_34006965的博客 487

Spark环境搭建(Stand alone模式 && Stand alone HA模式)

Standalone模式是Spark自带的一种集群模式,不同于前面本地模式启动多个进程来模拟集群的环境,Standalone模式是真实地在多个机器之间搭建Spark集群的环境,完全可以利用该模式搭建多机器集群,用于实际的大数据处理。开启两个任务,就会在master进程中开启两个对应的 Driver,对应的Executor各自汇报给对应的Driver,Executor数量根据你任务情况而定。在 standalone 模式下, master进程和 worker进程是固定的。

m0_48639280的博客 2129

【100%通过率】2023华为od机试C卷【螺旋数组矩阵】C++ 实现

给出数字个数n和行数m(1 < n,m < 999),从左上角的1开始,按照顺时针螺旋向内写方式,依次写出2,3...n,最终形成个一m行矩阵。疫情期间,小明隔离在家,百无聊赖,在纸上写数字玩。输入一行,两个整数,空格隔开,依次表示n、m。4.数字不够时,使用单个*号占位。3.填充数字时优先填充外部。1:模拟整个过程打印即可。1.每行数字的个数一样多。小明对这个矩阵有些要求。2.列的数量尽可能少。

MISAYAONE的博客 1244

Spark环境搭建流程

spark安装测试

qq_57174393的博客 1986

AgentScope实战训练营:构建计划可视化管理和HITL的AI智能计划助手

本文基于AgentScope Java SDK和Spring Boot WebFlux,从零构建一个支持SSE流式对话、计划可视化管理和HITL的AI智能计划助手Web应用PlanNotebook。涵盖项目架构设计、ReActAgent初始化、自定义工具注册、Hook机制实现、SSE事件协议定义、前端流式渲染等核心技术点,提供完整可运行的代码示例和详细的REST API参考。

program哲学 396

【Autosar COM】Marvell 88Q5050 以太网交换机驱动技术解析

本驱动实现了对Marvell 88Q5050交换机的全面控制,通过模块化设计满足AUTOSAR规范要求。增加DMA加速机制提升大数据量处理性能实现TSN(时间敏感网络)特性支持引入异步通知机制替代轮询操作增强安全特性,如MACsec支持该驱动架构为车载以太网交换机控制提供了可靠基础,其设计思想可推广到其他车载网络控制器开发中。随着车载网络技术的演进,驱动需持续迭代以支持新特性与更高通信速率需求。

1450

Spark环境搭建

本文是使用VMware Workstation搭建Spark环境,操作系统为CentOS 7的详细步骤

2201_75779723的博客 2628

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

云计算Spark环境搭建并搭建conda环境

云计算Spark环境搭建并搭建conda环境

weixin_49933737的博客 1855

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

PyCharm搭建Spark环境

准备工作 1.需要java环境和hadoop环境 2.去官网下载spark并解压(http://spark.apache.org/downloads.html) 配置spark环境变量 1.配置SPARK_HOME,值为spark的解压安装路径。 2.配置Path,值为 %SPARK_HOME%\bin。 3.spark环境搭建完成,在cmd中输入pyspark测试能否正常启动。 出现该spar...

weixin_45343343的博客 1035

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

Spark环境搭建教程

Spark环境搭建 Spark Local本地模式 Standalone-独立集群 Standalone-HA Spark-On-Yarn Spark 是一种基于内存的快速、通用、可扩展的大数据分析计算引擎

xgb2018的博客 4531
上一篇: python爬虫之Scrapy(一)
下一篇: SparkCore--详细
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

打赏作者

努力生活的黄先生

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

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

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

打赏作者

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

抵扣说明:

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

余额充值