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安装的三种方式
通用配置
- 解压
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 表示启动成功
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!