Windows本地
下载的安装包:spark-2.2.2-bin-hadoop2.7
本地启动(windows):将下载到的软件解压之后,直接启动bin/spark-shell2.cmd。启动成功后如下图
测试代码: sc.textFile("D:/data.txt").flatMap(_.split(" ")).map((_,1)).reduceByKey(_+_).foreach(println)
上面测试代码是一个词频统计功能,单词文件自己随便添加数据即可,以空格作为分隔符。
——————————————————————————————
CentOS6.7平台
1、获取安装包
下载地址:http://archive.apache.org/dist/spark
上传下载好的 Spark 到集群中的一个节点,比如是 hadoop02,put c:/spark-2.3.0-bin-hadoop2.7.tgz
2、解压安装包
使用之前安装 hadoop 集群相同的 hadoop 用户安装 spark 集群,现在规划安装目录/home/hadoop/apps/,解压缩进行安装:tar -zxvf spark-2.3.0-bin-hadoop2.7.tgz -apps /home/hadoop/apps/
3、修改配置文件
修改spark-env.sh:
进入 SPARK_HOME 的 conf 目录中,进行如下更改:
cd /home/hadoop/apps/spark-2.3.0-bin-hadoop2.7/conf
mv spark-env.sh.template spark-env.sh
然后修改 spark-env.sh:
export JAVA_HOME=/usr/local/java/jdk1.8.0_73
export SPARK_MASTER_HOST=hadoop02
export SPARK_MASTER_PORT=7077
最后修改 slave:
进入 SPARK_HOME 的 conf 目录中,进行如下更改:
cd /home/hadoop/apps/spark-2.3.0-bin-hadoop2.7/conf
mv slaves.template slaves
在 slaves 的最后添加所有 worker 节点的主机名
hadoop01
hadoop02
hadoop03
4、将 spark 安装包 copy 到所有安装节点
scp -r spark-2.3.0-bin-hadoop2.7 hadoop03:/home/hadoop/apps/
scp -r spark-2.3.0-bin-hadoop2.7 hadoop04:/home/hadoop/apps/
5、配置环境变量
vim ~/.bashrc
export SPARK_HOME=/home/hadoop/apps/spark-2.3.0-bin-hadoop2.7
export PATH=$PATH:$SPARK_HOME/bin:$SPARK_HOME/sbin
source ~/.bashrc
千万注意:HADOOP_HOME/sbin 和 SPARK_HOME/sbin 目录中都包含 start-all.sh 和 stopall.sh 脚本。所以会有冲突。所以在使用有冲突的命令等要千万注意。如果区分不清楚,那么不推荐配置环境变量。
将start-all.sh修改为start-all-spark.sh、将stopall.sh修改为stop-all-spark.sh
6、启动 Spark 集群
[hadoop@hadoop02 ~]$ cd /home/hadoop/apps/spark-2.3.0-bin-hadoop2.7
[hadoop@hadoop02 spark-2.3.0-bin-hadoop2.7]$ sbin/start-all-spark.sh
7、验证集群启动是否成功
7.1、jps 验证每个节点上对应的进程是否都启动正常
7.2、验证Spark Web UI ,打开浏览器访问:http://hadoop02:8080/ ,hadoop02 就是 master 所在的服务器。
7.3、测试能否运行一个 Spark 例子程序
[hadoop@hadoop3 ~]$ ~/apps/spark-2.3.0-bin-hadoop2.7/bin/spark-submit \
--class org.apache.spark.examples.SparkPi \
--master spark://hadoop02:7077 \
--executor-memory 512m \
--total-executtor-cores 1 \
~/apps/spark-2.3.0-bin-hadoop2.7/examples/jars/spark-examples_2.11-2.3.0.jar \
100
--master spark://hadoop02:7077 指定 Master 的地址
--executor-memory 512m 指定每个 worker 可用内存为 500m
--total-executor-cores 1 指定整个集群使用的 CPU 核数为 1 个
7.4、进入 Spark Shell 提交 wordcount 程序
数据准备:cat words.txt
hello huangbo
hello xuzheng
hello wangbaoqiang
进入 Spark Shell:
[hadoop@hadoop2 ~] spark-shell
或者
[hadoop@hadoop2 ~]$ ~/apps/spark-2.3.0-bin-hadoop2.7/bin/spark-shell \
> --master spark://hadoop02:7077 \
> --executor-memory 512m \
> --total-executor-cores 1
执行程序:
sc.textFile("/home/hadoop/words.txt").flatMap(_.split(" ")).map((_,1)).reduceByKey(_+_).foreach(println)