Windows环境下编译Spark2
环境准备
- git-2.14.1
- maven-3.9.2
- jdk-1.8
- scala-2.11.8
- zinc-0.3.15 主下载地址
- spark-2.3.4 github官方地址
编译准备
-
maven远程仓库使用的是阿里云的
-
解压源码包
spark-2.3.4.zip
,修改根模块的pom文件。主要目的是为了变更hadoop的版本号,默认是2.6.5
。
<hadoop.version>2.9.2</hadoop.version>
- 修改
spark-2.3.4\dev\make-distribution.sh
文件
# 增加mvn的内存
export MAVEN_OPTS="${MAVEN_OPTS:--Xmx4g -XX:ReservedCodeCacheSize=512m}"
# 跳过maven命令检查版本块,直接赋予版本
# VERSION=$("$MVN" help:evaluate -Dexpression=project.version $@ 2>/dev/null | grep -v "INFO" | tail -n 1)
# SCALA_VERSION=$("$MVN" help:evaluate -Dexpression=scala.binary.version $@ 2>/dev/null\
# | grep -v "INFO"\
# | tail -n 1)
# SPARK_HADOOP_VERSION=$("$MVN" help:evaluate -Dexpression=hadoop.version $@ 2>/dev/null\
# | grep -v "INFO"\
# | tail -n 1)
# SPARK_HIVE=$("$MVN" help:evaluate -Dexpression=project.activeProfiles -pl sql/hive $@ 2>/dev/null\
# | grep -v "INFO"\
# | fgrep --count "<id>hive</id>";\
# # Reset exit status to 0, otherwise the script stops here if the last grep finds nothing\
# # because we use "set -o pipefail"
# echo -n)
VERSION=2.3.4
SCALA_VERSION=2.11
SPARK_HADOOP_VERSION=2.9.2
SPARK_HIVE=1
-
为了加速编译
将zinc-0.3.15和scala-2.11.8解压到
spark-2.3.4\build
下
-
执行编译
采用编译成像 Spark 下载页面分发的那样的 Spark 发行版那样,在Git bash下使用
./dev/make-distribution.sh
。./dev/make-distribution.sh --tgz -Pyarn -Phive -Phive-thriftserve
编译结果包spark-2.3.4-bin-2.9.2.tgz
。
Linux上部署Spark On Yarn
安装前提
- JDK1.8
部署关键步骤
解压缩spark-2.3.4-bin-2.9.2.tgz
tar -zxvf /opt/software_package/spark-2.3.4-bin-2.9.2.tgz -C /opt/software/bigdata/
配置hadoop变量,主要配置HADOOP_CONF_DIR
,YARN_CONF_DIR
,HDFS_CONF_DIR
,需要的目录就是Hadoop集群(HDFS、Yarn)的配置文件。
vim ~/.bashrc
# java config
export JAVA_HOME=/home/bigdata/software/java
export PATH=$JAVA_HOME/bin:$PATH
# hadoop config
export HADOOP_CONF_DIR=/home/bigdata/software/hadoop/etc/hadoop
export YARN_CONF_DIR=/home/bigdata/software/hadoop/etc/hadoop
export LD_LIBRARY_PATH=/home/bigdata/software/hadoop/lib/native
source ~/.bashrc
验证
[bigdata@spark2host01 spark2]$ ./bin/spark-submit --class org.apache.spark.examples.SparkPi --master yarn --num-executors 3 --driver-memory 1g --executor-memory 1g --executor-cores 1 examples/jars/spark-examples*.jar 10
成功执行即可。
开启spark-shell交互终端,可以打开WebUI界面
[bigdata@spark2host01 spark2]$ ./bin/spark-shell
[bigdata@spark2host01 spark2]$ ./bin/spark-shell
23/07/04 20:41:25 WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
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://IP:4040
Spark context available as 'sc' (master = local[*], app id = local-1688474490456).
Spark session available as 'spark'.
Welcome to
____ __
/ __/__ ___ _____/ /__
_\ \/ _ \/ _ `/ __/ '_/
/___/ .__/\_,_/_/ /_/\_\ version 2.3.4
/_/
Using Scala version 2.11.8 (Java HotSpot(TM) 64-Bit Server VM, Java 1.8.0_131)
Type in expressions to have them evaluated.
Type :help for more information.
UI默认端口4040:http://IP:4040
使用:quit
退出交互。
部署Spark-SQL
前提
- 需要使用hive中的
hive-site.xml
文件:需要使用hive中的hive-site.xml
文件。拷贝到spark的配置文件夹下/home/bigdata/software/spark2/conf
。需要确认hive-site.xml
下的hive.metastore.warehouse.dir
属性。 mysql-connector-java-8.0.29.jar
:将mysql连接的包放到/home/bigdata/software/spark2/jars
下。hive的元数据存储数据库使用的mysql。
启动
[bigdata@spark2host01 spark2]$./bin/spark-sql --master yarn
使用exit
退出。