01-Spark基础_1

一、Spark介绍

  1. Spark是一个分布式计算框架,和MapReduce的作用一样,完成数据的计算
  2. 与MapReduce的区别:
  • Spark是基于内存计算,会将中间结果存放在内存,方便后续计算的使用; MR会将中间结果存储在磁盘上
    • 内存的读写速度要比磁盘快的多,所以Spark的计算速度要比MR快
    • Presto也是基于内存计算的,但Presto不适合海量数据处理,而且不能创建库表。Spark对海量数据在内存上的计算做了优化, 内存不足时会将结果存在在磁盘上,适合海量数据处理,并且可以进行库表创建
  • Spark的计算任务是由线程完成的,MR的计算任务是由进程完成的
    • 线程切换计算任务的速度比进程切换计算任务速度快
  1. Spark和MR的计算思想是一样的:分而治之
  2. Spark是由Scala语言编写完成的,Scala语言本质上是对Java语言的二次开发,底层还是要依赖Java的JVM
  3. Spark是Apche基金会下的顶级开源项目

二、Spark特性

  • 高效性
    • 计算速度快
      • 基于内存计算
      • 线程完成计算任务执行
  • 易用性
    • 支持多种语言开发(Python、Java、Scala、SQL、R),降低了学习难度
  • 通用性
    • 支持多种计算方式
      • SQL计算(离线计算)
      • 图计算
      • 机器学习计算
      • 流式数据计算(实时数仓中使用)
    • 支持多种开发方式
      • 交互式开发
      • 脚本式开发
        • 通过编写代码文件完成程序运行
  • 兼容性
    • 支持三方工具接入
      • 存储工具
        • HDFS
        • Kafka
        • HBASE
      • 资源调度
        • Yarn
        • Standalone(Spark自带的)
      • 高可用
        • zookeeper
    • 支持多种操作系统
      • Linux
      • Windows
      • Mac

三、Spark架构

在这里插入图片描述

四、Spark部署方式

  • Local模式部署(本地模式部署,需要运维人员部署)
    • 使用一台服务器进行部署,一般用于测试代码,在本地能运行成功的代码在集群下也能运行
  • Cluster模式部署(集群模式部署,需要运维人员部署)
    • 集群需要多台服务器
    • 多台服务器的资源需要统一管理,使用资源调度服务
      • Standalone
      • Yarn
  • 云服务(比较省事,可以直接使用)
    • 使用云服务供应商提供的服务
      • 数据可以存储在本地,用云服务连接本地数据源进行计算,在将结果保存在本地
      • 只是使用云服务的计算资源

五、Local本地模式部署

使用单台服务器进行部署
公司中的部署流程:
运维人员
1、申请服务器(10台,内存128G,磁盘1T),需要发送邮件
2、编写部署文档 部署流程,部署服务器中对应的服务说明
3、开始部署

5-1 部署流程

Spark版本使用3.1.2版本

部署文档

本地模式

1.1 上传压缩包
将spark-3.1.2-bin-hadoop3.2.tar.gz压缩包到node1下的/export/server目录

1.2 解压压缩包

tar -zxvf /export/server/spark-3.1.2-bin-hadoop3.2.tgz -C /export/server/

1.3 修改权限

如果有权限问题,可以修改为root,方便学习时操作,实际中使用运维分配的用户和权限即可

chown -R root /export/server/spark-3.1.2-bin-hadoop3.2 
chgrp -R root /export/server/spark-3.1.2-bin-hadoop3.2

1.4 修改文件名

mv /export/server/spark-3.1.2-bin-hadoop3.2 /export/server/spark  

1.5 将spark添加到环境变量

echo 'export SPARK_HOME=/export/server/spark' >> /etc/profile
echo 'export PATH=$PATH:$SPARK_HOME/bin:$SPARK_HOME/sbin' >> /etc/profile 
source /etc/profile

1.6 启动测试

spark-shell

本地模式使用的是本地资源,不需要做其他配置,解压完成后就可以直接使用

六、Spark开发方式

6-1 交互式开发

  • 通过指令进入交互终端进行开发

spark/bin目录下的命令
例如:spark-shell:使用Scala和Java进行开发
pyspark:使用Python进行开发
spark-sql:使用SQL进行开发

6-1-1 使用Python进行交互式开发

Spark依赖的Python版本是Python3,当前系统中没有Python3会报如下错误

在这里插入图片描述

Python3的安装可以借助Anaconda工具完成,Anaconda中自带Python3,同时还集成了各种Python的科学计算库(Pandas, Numpy等)

Anaconda安装

sh Anaconda3-2020.07-Linux-x86_64.sh

第一次直接按回车,阅读协议文档,跳过读取,直接按q
第二次输入yes,同意协议
第三次输入安装目录
第四次输入yes,初始化
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

如果安装过程输入错误了,不支持撤销,需要按ctrl+z退出,重新安装

pyspark模块安装

pip install pyspark=3.1.2 -i https://pypi.tuna.tsinghua.edu.cn/simple

配置环境变量

echo 'export PYSPARK_PYTHON=/export/server/anaconda3/bin/python3' >> /etc/bashrc 
source /etc/bashrc

执行编写的PySpark程序文件
在这里插入图片描述

为什么使用pyspark指令进入终端就可以直接输入pyspark命令,可以直接执行计算,而编写python脚本就需要安装pyspark模块才能执行代码?
pyspark指令时一个可执行命令,可以直接使用cat或者vim查看内容,本质是一个python脚本。所以可以说在终端中执行pypark指令本质是执行一个脚
本文件。当执行pyspark指令,会进入spark的安装包目录下的python目录下找到pyspark进行导入,运行代码。
在使用python3 执行python代码时, 是从Anaconda中的python环境中找pyspark进行导入的,所以需要在该python环境下安装pyspark模块

  • 14
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Spark 基础环境是指安装和配置 Spark 所需的软件和硬件环境。Spark 运行需要 Java 环境和 Hadoop 环境,同时也需要配置 Spark 的相关参数,如内存大小、CPU 核数等。在安装和配置好基础环境后,我们才能使用 Spark 进行数据处理和分析。 ### 回答2: Spark是一个快速、可扩展且容错的大数据处理框架,提供了丰富的API和工具,可以处理大规模的数据集。 搭建Spark基础环境包括以下几个步骤: 1. 安装Java:Spark是基于Java开发的,因此首先需要安装Java开发环境。可以从Oracle官网下载并安装适合操作系统的Java版本。 2. 下载Spark:在Apache Spark官网下载最新版本的Spark压缩包,并解压到指定目录。 3. 配置环境变量:将Spark的bin目录添加到系统的环境变量中。这样可以方便地在任意位置运行Spark的命令。 4. 配置Spark集群:如果需要在多台机器上运行Spark应用程序,需要进行集群配置。首先,在每台机器上安装好Java,并将Spark解压到相同的目录。然后,编辑Spark的配置文件,设置集群的主节点和从节点。 5. 验证安装:通过在终端运行spark-shell命令,验证Spark是否正确安装。spark-shell命令会启动一个Scala解释器,并连接到Spark集群。 6. 运行第一个Spark应用程序:编写一个简单的Spark应用程序,如WordCount,用于统计文本文件中单词的个数。将程序保存为Scala文件,并使用spark-submit命令来运行。 以上就是搭建Spark基础环境的主要步骤。搭建好Spark环境后,可以使用Spark提供的丰富API和工具来进行大数据处理和分析,如数据清洗、转换、机器学习等。Spark的功能强大且易于使用,适用于各种大规模数据处理场景。 ### 回答3: Spark是一个快速通用的集群计算系统,它提供了高效的数据处理和分析能力。要运行Spark,我们需要配置和搭建一些基础环境。 首先,我们需要安装Java JDK。Spark运行在Java虚拟机上,因此我们需要安装适当版本的Java开发工具包。通常建议使用Oracle JDK的最新稳定版本,然后设置JAVA_HOME环境变量。 其次,我们需要安装Spark本身。Spark官方网站提供了预编译的二进制发行版,我们可以从网站上下载并解压缩到我们喜欢的位置。然后,我们可以设置SPARK_HOME环境变量,以便在终端窗口中使用Spark命令。 接下来,我们需要选择一个合适的集群管理器来运行Spark应用程序,比如Standalone模式、Hadoop YARN和Apache Mesos等。我们需要根据自己的需求进行选择和配置。例如,在Standalone模式下,我们需要启动一个Spark Master和多个Spark Worker来管理和运行任务。 最后,在运行Spark应用程序之前,我们需要通过编写一个Spark应用程序来使用Spark的功能。Spark提供了Java、Scala和Python等多种编程语言的API。我们可以使用任何一种编程语言来编写应用程序并在Spark上运行。 总之,Spark基础环境搭建包括安装Java JDK、安装Spark本身、选择和配置集群管理器,以及编写Spark应用程序。搭建好这些基础环境后,我们就可以开始使用Spark进行快速、高效的集群计算了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值