【Spark实战】Windows环境下编译Spark2 Linux上部署Spark On Yarn

文章目录

    • Windows环境下编译Spark2
      • 环境准备
      • 编译准备
    • Linux上部署Spark On Yarn
      • 安装前提
      • 部署关键步骤
        • 配置hadoop变量
      • 部署Spark-SQL

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官方地址

编译准备

  1. maven远程仓库使用的是阿里云的

  2. 解压源码包spark-2.3.4.zip,修改根模块的pom文件。主要目的是为了变更hadoop的版本号,默认是2.6.5

<hadoop.version>2.9.2hadoop.version>
  1. 修改spark-2.3.4\dev\make-distribution.sh文件
    主要是为了跳过maven命令检查版本块,直接赋予版本,这块其实很耗时,而且截取版本号时,也不准确。
# 增加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 "hive";\
#     # 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
  1. 为了加速编译

    由于脚本的问题,即使单独安装了,也会去下载这两个安装包放到特定的目录下,目前脚本里下载链接已经失败,需要手动下载,再将zinc-0.3.15和scala-2.11.8解压到spark-2.3.4\build下。

【Spark实战】Windows环境下编译Spark2 Linux上部署Spark On Yarn_第1张图片

  1. 执行编译

    采用编译成像 Spark 下载页面分发的那样的 Spark 发行版那样,在Git bash下使用 ./dev/make-distribution.sh脚本,具体执行一下命令。

     ./dev/make-distribution.sh --tgz -Pyarn -Phive -Phive-thriftserve
    

    在这里插入图片描述
    【Spark实战】Windows环境下编译Spark2 Linux上部署Spark On Yarn_第2张图片

    编译结果包为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_DIRYARN_CONF_DIRHDFS_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

【Spark实战】Windows环境下编译Spark2 Linux上部署Spark On Yarn_第3张图片

使用:quit退出交互。

部署Spark-SQL

前提

  1. 需要使用hive中的hive-site.xml文件:需要使用hive中的hive-site.xml文件。拷贝到spark的配置文件夹下/home/bigdata/software/spark2/conf。需要确认hive-site.xml下的hive.metastore.warehouse.dir属性。
  2. mysql-connector-java-8.0.29.jar:将mysql连接的包放到/home/bigdata/software/spark2/jars下。hive的元数据存储数据库使用的mysql。

启动

[bigdata@spark2host01 spark2]$./bin/spark-sql --master yarn

【Spark实战】Windows环境下编译Spark2 Linux上部署Spark On Yarn_第4张图片

使用exit退出。

你可能感兴趣的:(#,Spark实战,Spark,spark,windows,linux)