Spark安装笔记——备赛笔记——2024全国职业院校技能大赛“大数据应用开发”赛项——任务2:离线数据处理

将下发的ds_db01.sql数据库文件放置mysql中

12、编写Scala代码,使用Spark将MySQL的ds_db01库中表user_info的全量数据抽取到Hive的ods库中表user_info。字段名称、类型不变,同时添加静态分区,分区字段为etl_date,类型为String,且值为当前日期的前一天日期(分区字段格式为yyyyMMdd)。使用hive cli执行show partitions ods.user_info命令,将结果截图粘贴至答案表.docx中对应的任务序号下;
13、 编写Scala代码,使用Spark将MySQL的ds_db01库中表sku_info的全量数据抽取到Hive的ods库中表sku_info。字段名称、类型不变,同时添加静态分区,分区字段为etl_date,类型为String,且值为当前日期的前一天日期(分区字段格式为yyyyMMdd)。使用hive cli执行show partitions ods.sku_info命令,将结果截图粘贴至答案表.docx中对应的任务序号下;

软件名称

版本

ubuntu

18.04    64 位

Hadoop:hadoop-3.1.3.tar.gz

3.1.3

Jdk:jdk-8u212-linux-x64.tar.gz

1.8

Spark:spark-3.1.1-bin-hadoop3.2.tgz

3.1.1

Hive:apache-hive-3.1.2-bin.tar.gz

3.1.2

MySQL

5.7

Scala:scala-2.12.x.tgz

2.12

Vue.js

3.2

ECharts

5.1

JDBC驱动:   mysql-connector-java-5.1.37.jar

集成开发工具:IDEA 2022 社区版

Spark的详情


Spark的简介


Spark是一种通用的大数据计算框架,是基于RDD(弹性分布式数据集)的一种计算模型。那到底是什么呢?可能很多人还不是太理解,通俗讲就是可以分布式处理大量集数据的,将大量集数据先拆分,分别进行计算,然后再将计算后的结果进行合并。


为什么使用Spark


Spark在存储器内运行程序的运算速度能做到比Hadoop MapReduce的运算速度快上100倍,即便是运行程序于硬盘时,Spark也能快上10倍速度。Spark允许用户将数据加载至集群存储器,并多次对其进行查询,非常适合用于机器学习算法。
Spark也支持伪分布式(pseudo-distributed)本地模式,不过通常只用于开发或测试时以本机文件系统取代分布式存储系统。在这样的情况下,Spark仅在一台机器上使用每个CPU核心运行程序。


Spark的优势


更高的性能。因为数据被加载到集群主机的分布式内存中。数据可以被快速的转换迭代,并缓存用以后续的频繁访问需求。在数据全部加载到内存的情况下,Spark可以比Hadoop快100倍,在内存不够存放所有数据的情况下快hadoop10倍。
通过建立在Java,Scala,Python,SQL(应对交互式查询)的标准API以方便各行各业使用,同时还含有大量开箱即用的机器学习库。
与现有Hadoop 1和2.x(YARN)生态兼容,因此机构可以无缝迁移。
方便下载和安装。方便的shell(REPL: Read-Eval-Print-Loop)可以对API进行交互式的学习。
借助高等级的架构提高生产力,从而可以讲精力放到计算上。


Spark的基本节点名称及作用


Driver
Spark的驱动器,它是执行程序的main方法的进程,它负责创建SparkContext、RDD,以及RDD的转化操作和代码的执行。shell模式下,后台会制动创建Spark驱动器,创建SparkContext对象。
Master
主节点,用于与Worker节点通信,进行资源的调度与分配,接受Driver发来的任务请求,在Standalone模式下才会有Worker节点。
Worker
工作节点,主要用于创建执行器,接受Master的领导,在Worker接收到Matser的请求后会自动启动Executor进程。在standlone节点下才会有Worker节点。
Executor
执行Job Task,返回结果给Driver
Executor是一个工作进程,负责在Spark作业中完成运行任务,任务间互相独立,并行运行 。Executor启动后会反向向Driver注册自己,这样Driver就能更好的服务于自己的Executor。
Task
Task是一个工作任务,一个任务会发给一个Executor


Spark安装的三种方式
  • 通用配置
  • 部署local模式(直接解压即可,不需要配置)
  • 部署Standalone模式
  • 部署Yarn模式

通用配置

  • 解压
tar -zxf /usr/local/intsall/spark-3.1.1-bin-hadoop3.2.tgz -C /opt/
  • 配置环境变量
vi /root/.bash_profile
export SPARK_HOME=/opt/spark-3.1.1-bin-hadoop3.2
export PATH=$PATH:$SPARK_HOME/bin:$SPARK_HOME/sbin

部署local模式(直接解压即可,不需要配置)

  • 启动spark

    • 切换到spark的bin目录下,然后运行下面的命令
    • ./spark.shell
      22/09/25 08:28:04 WARN NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
      Using Spark's default log4j profile: org/apache/spark/log4j-defaults.properties
      Setting default log level to "WARN".
      To adjust logging level use sc.setLogLevel(newLevel). For SparkR, use setLogLevel(newLevel).
      Spark context Web UI available at http://master:4040
      Spark context available as 'sc' (master = local[*], app id = local-1664094491831).
      Spark session available as 'spark'.
      Welcome to
            ____              __
           / __/__  ___ _____/ /__
          _\ \/ _ \/ _ `/ __/  '_/
         /___/ .__/\_,_/_/ /_/\_\   version 2.4.5
            /_/
               
      Using Scala version 2.11.12 (Java HotSpot(TM) 64-Bit Server VM, Java 1.8.0_231)
      Type in expressions to have them evaluated.
      Type :help for more information.
      
      scala> 
      

      部署Standalone模式

    • 修改配置文件

  • spark-env.sh
mv spark-env.sh.template spark-env.sh
vi spark-env.sh
export JAVA_HOME=/usr/java/jdk1.8.0_162
export SPARK_MASTER_IP=master
export SPARK_MASTER_HOST=master
export SPARK_MASTER_PORT=7077
  • workers
mv workers.template workers
vi workers
master
slave1
slave2
  • 分发
scp -r /opt/spark-3.1.1-bin-hadoop3.2 slave1:/opt/
scp -r /opt/spark-3.1.1-bin-hadoop3.2 slave2:/opt/

  • 启动
./sbin/start-all.sh
  • 运行官方案例
./spark-submit --master spark://master:7077 --class org.apache.spark.examples.SparkPi ../examples/jars/spark-examples_2.12-3.1.1.jar 

#出现 Pi is roughly 3.1335756678783393 表示运行成功

部署Yarn模式

  • 配置环境变量
#配置HADOOP_CONF_DIR
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
  • 启动spark on yarn模式运行官方案例
    ./spark-submit --master yarn --class org.apache.spark.examples.SparkPi ../examples/jars/spark-examples_2.12-3.1.1.jar 
    
    #出现 Pi is roughly 3.129915649578248 表示启动成功
    

你可能感兴趣的:(大数据,spark,笔记)