Spark系列(一)Spark1.0.0源码编译及安装

时间:2022-08-20 06:01:45

最近想对自己学的东西做些回顾,想到写博客是个不错的方式,方便他人也有利自己,刚开始写不足之处大家多担待。

编译前需要安装JDK1.6以上、scala、Maven、Ant、hadoop2.20 如下图(/etc/profile):

Spark系列(一)Spark1.0.0源码编译及安装

Spark编译有提供了两种方式:

  1. Maven编译:在 /etc/profile文中添加:export MAVEN_OPTS="-Xmx2g -XX:MaxPermSize=512M -XX:ReservedCodeCacheSize=512m"
    执行命令:mvn -Pyarn -Dhadoop.version=2.2.0 -Dyarn.version=2.2.0 -DskipTests clean package
  2. SBT 编译配置文件:Spark安装目录下的 project/SparkBuilder.scala 执行:SPARK_HADOOP_VERSION=2.2.0 SPARK_YARN=true sbt/sbt assembly

说明:第一次编译时间会比较长因为需要下载依赖的jar包,(如果编译有失败基本上都是网络原因,重新执行编译命令就ok了);
编译完Spark后整个目录大小大概900M,如果再通过scp拷贝到其他节点那占空间,所以下一步还需要生成Spark部署包;

Spark 部署包生成命令make-distribution.sh
--hadoop VERSION : Hadoop 版本号,不加此参数时hadoop 版本为1.0.4 。
--with-yarn :是否支持Hadoop YARN ,不加参数时为不支持yarn 。
--with-hive :是否在Spark SQL 中支持hive ,不加此参数时为不支持hive 。
--skip-java-test :是否在编译的过程中略过java 测试,不加此参数时为略过。
--with-tachyon :是否支持内存文件系统Tachyon ,不加此参数时不支持tachyon 。
--tgz :在根目录下生成 spark-$VERSION-bin.tgz ,不加此参数时不生成tgz 文件,只生
成/dist 目录。
--name NAME :和— tgz 结

例:
生成支持yarn 、hive 的部署包:
./make-distribution.sh --hadoop 2.2.0 --with-yarn --with-hive --tgz

注:参数具有顺序性,安装过程中又会输入提示(如果你的JDK版本不是1.6)直接输入YES回车即可;

完成Spark部署包的生成后解压scp到各个节点,然后更改以下配置:

  • 配置Spark安装目录下的 conf/slave文件,添加各个节点IP或主机名(如果配置主机名需配置 /etc/sysconfig/hosts文件 IP与主机名的对应关系) 4.2、配置Spark安装目录下的conf/spark-env.sh文件

export SPARK_MASTER_IP=chenx  [Master主机名]
  export SPARK_MASTER_PORT=7077  [访问端口]
  export SPARK_WORKER_CORES=1  [使用的内核数]
  export SPARK_WORKER_INSTANCES=1  
  export SPARK_WORKER_MEMORY=3g  [使用内存大小]

以下为Spark的HA配置根据需求二选一;

//Spark 基于文件系统的HA配置

export SPARK_DAEMON_JAVA_OPTS="-Dspark.deploy.recoveryMode=FILESYSTEM -Dspark.deploy.recoveryDirectory=/temp/recovery"

//Spark基于zookeeper的HA配置

export SPARK_DAEMON_JAVA_OPTS="-Dspark.deploy.recoveryMode=ZOOKEEPER -Dspark.deploy.zookeeper.url=hadoop1:2181,hadoop2:2181,hadoop3:2181 -Dspar
  k.deploy.zookeeper.dir=/temp/recover"

最后运行: ./sbin/start-all.sh

单机模式运行jps命令看到 Master和Worker两个进程就ok了;