Spark 使用介绍

2022-09-19 warehouse

安装部署

与 Spark 相关的包可以从官网或者 Apache 的归档仓库 archive.apache.org 中下载相关的包,注意其中的 hadoop 版本。 官方有点慢,可以从国内镜像 mirrors.aliyun.com 中下载。

这里以 Without Hadoop 的为例,不过建议使用 Hadoop 版本,否则 SparkSQL 可能会无法使用,需要单独下载缺失的 JAR 包。

----- 增加如下全局环境变量
# vim /etc/profile
export SPARK_HOME=/opt/module/spark
export PATH=$PATH:$SPARK_HOME/bin
----- 增加Spark环境变量,这里使用的是WithoutHadoop版本
# vim conf/spark-env.sh
export SPARK_DIST_CLASSPATH=$(/opt/module/hadoop/bin/hadoop classpath)
----- 启动/停止服务,默认会本地启动一个Worker以及Master,可以通过jps命令查看
# sbin/start-all.sh
# sbin/stop-all.sh

----- 启动shell交互,可以显示指定,如下是默认值
# spark-shell --master spark://127.0.0.1:7077
----- 执行一个简单示例,计算Pi值
# bin/run-example SparkPi
# bin/spark-submit examples/src/main/python/pi.py
# bin/spark-submit --master spark://127.0.0.1:7077 \
    --class org.apache.spark.examples.SparkPi      \
    examples/jars/spark-examples_2.12-3.4.1.jar 10
----- 也可以使用Yarn做调度
# spark-shell --master yarn --deploy-mode client

运行

有多种方式可以运行 Spark 环境。

----- 本地运行,用于测试以及基本功能验证,如下会启动两个线程。
spark-shell --master local[2]

----- Standalone 通过Spark管理
spark-shell --master spark://127.0.0.1:7077

Hive 集成

也就是将 Hive 作为元数据管理,可以用来维护相关的数据组织信息,可以通过如下方式配置。

---- 复制Hive的配置文件以及元数据驱动JAR包,也可以启动时通过 --jars 参数指定
# cp hive/conf/hive-site.xml spark/conf/
# cp hive/lib/mysql-connector-java-8.0.28.jar spark/jars/

---- 然后通过如下方式执行
# spark-shell --master local[2]
scala> spark.sql("show databases").show()
scala> spark.sql("select * from user_info").show()
# spark-sql --master local[2]
spark-sql (default)> show databases;
spark-sql (default)> select * from user_info;