linux7.3+spark2.2 安装
spark-2.2.0-bin-hadoop2.7.tgz
scala-2.12.3.tgz
一、安装 Scala
tar -zcvf scala-2.12.3.tgz再次修改环境变量sudo vim /etc/profile,添加以下内容:
export SCALA_HOME=/usr/src/scala
export SPARK_HOME=/usr/src/spark
export PATH=$PATH:$SCALA_HOME/bin:$SPARK_HOME/bin
同样的方法使环境变量生效,并验证 scala 是否安装成功
$ source /etc/profile #生效环境变量
$ scala -version #如果打印出如下版本信息,则说明安装成功
二、Spark安装
下载解压,进入官方下载地址下载最新版 Spark。我下载的是 spark-2.2.0-bin-hadoop2.7.tar.gz。在~/目录下解压,tar -zcvf spark-2.2.0-bin-hadoop2.7.tar.gz
配置 Spark
cd ~spark-2.2.0-bin-hadoop2.7/conf #进入spark配置目录
cp spark-env.sh.template spark-env.sh #从配置模板复制
vim spark-env.sh #添加配置内容
在spark-env.sh末尾添加以下内容(这是我的配置,你可以自行修改):
export SPARK_HOME=/usr/src/spark-2.2.0-bin-hadoop2.7
export SCALA_HOME=/usr/src/scala-2.10.6
export JAVA_HOME=/usr/lib/jvm/jdk1.8.0_77
export HADOOP_HOME=/usr/src/hadoop-2.7.2
export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$SCALA_HOME/bin
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
export YARN_CONF_DIR=$YARN_HOME/etc/hadoop
export SPARK_MASTER_IP=218.199.92.227
export SPARK_LOCAL_DIRS=/usr/src/spark-2.2.0-bin-hadoop2.7
export SPARK_DRIVER_MEMORY=1G
export SPARK_LIBARY_PATH=.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib:$HADOOP_HOME/lib/native
注:在设置Worker进程的CPU个数和内存大小,要注意机器的实际硬件条件,如果配置的超过当前Worker节点的硬件条件,Worker进程会启动失败。
vim slaves在slaves文件下填上slave主机名:
centos129
centos130
配置spark-defaults.conf:
spark.master spark://centos128:7077
spark.eventLog.enabled true
spark.eventLog.dir hdfs://mycluster/directory
spark.serializer org.apache.spark.serializer.KryoSerializer
spark.driver.memory 1g
spark.executor.extraJavaOptions -XX:+PrintGCDetails -Dkey=value -Dnumbers="one two three"
将配置好的spark-2.2.0-bin-hadoop2.7文件夹分发给所有slaves吧
scp -r ~/spark-2.2.0-bin-hadoop2.7 fang@centos129:~/
scp -r ~/spark-2.2.0-bin-hadoop2.7 fang@centos129:~/
启动
Spark ,sbin/start-all.sh
验证 Spark 是否安装成功
jps
六、运行示例
本例以集群模式运行SparkPi实例程序(deploy-mode 设置为cluster)
./bin/spark-submit --class org.apache.spark.examples.SparkPi --master yarn --deploy-mode cluster --driver-memory 1G --executor-memory 1G --executor-cores 1 /usr/src/spark/examples/jars/spark-examples_2.11-2.2.0.jar 40
>不占用spark自身服务的core和内存
>而是作为container,在NodeManger上运行
>占用YARN中的资源
-与MR job产生竞争
spark-shell:
SPARK_JAVA_OPS="-Dspark.executor.memory=8g \
-Dspark.cores.max=72 \
-Dspark.storage.memory.Fraction=0.8 \
-Dspark.shuffle.memory.Fraction=0.5 \
-Dspark.scheduler.mode=FAIR"
export SPARK_JAVA_OPTS
spark-shell
spark-shell进入spark
Spark context Web UI available at http://192.168.44.128:4040
NFO ui.MasterWebUI: Bound MasterWebUI to 0.0.0.0, and started at http://192.168.44.128:8081