Spark分布式部署
预先注意事项:
注意事项:文章中的文件路径可能与读者的文件路径存在差异,希望读者可以自行发现,自行解决。
阅读本文章前,需要预先部署好Hadoop平台,因为后续编程需要使用Hadoop的存储机制HDFS。
详细的hadoop安装步骤可以参考本人文章:
https://www.cnblogs.com/Theext/p/15208355.html
一、Master安装Spark
1.1 Spark安装(Master进行)
进入官网:https://spark.apache.org/downloads.html
下载好spark-xxx-hadoop.tar.gz以后,解压到文件夹
sudo tar -zxf ~/下载/spark-xxx-hadoop.tgz -C /usr/local/
cd /usr/local
sudo mv ./spark-xxx-hadoop ./spark #改名字,方便使用
sudo chown -R hadoop:hadoop ./spark # 此处的 hadoop 为你的用户名
1.2 Spark文件配置
1.2.1 编辑spark-env.sh
进入spark的conf文件夹复制spark-env.sh.template并重命名为
cd /usr/local/spark/conf
cp spark-env.sh.template spark-env.sh
修改文件
vi spark-env.sh
添加如下内容:
export JAVA_HOME=/usr/lib/jvm/jdk.xxx
export SPARK_Master_IP=192.168.222.130 #主节点的IP
#export SPARK_WORKER_MEMORY=8g #执行任务的节点分配的内存大小
#export SPARK_EXECUTOR_MEMORY=4g #executor的内存大小
export SPARK_WORKER_CORES=4 #任务节点工作的核心数
export HADOOP_HOME=/usr/local/hadoop #hadoop主目录
export HADOOP_CONF_DIR=/usr/local/hadoop/etc/hadoop #spark使用hadoop作为地产存储介质
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/lib/jvm/jdk/jre/lib/amd64
1.2.2 编辑 workers
把workers.template拷贝为workers
cp workers.template workers
修改workers文件
vi workers
workers文件,添加以下内容
Master
Slave01
Slave02
二、配置Spark集群(Master进行各节点同步)
将Master的文件spark同步到其他机器上,既无需每台机器单独配置。
sudo scp -r /usr/local/spark hadoop@Slave01:/usr/local
sudo scp -r /usr/local/spark hadoop@Slave02:/usr/local
三、更新~/.bashrc (每台机器都需要此部操作)
需要配置SPARK环境变量,请在Linux终端中输入下面命令打开当前登录用户的环境变量配置文件.bashrc:
vi ~/.bashrc
在文件最前面添加如下,第一行为spark安装目录路径(注意,等号“=”前后不能有空格),然后保存退出:
export SPARK_HOME=/usr/local/spark
export PATH=$JAVA_HOME/bin:$SPARK_HOME/bin:$PATH
执行如下命令让.bashrc文件的配置立即生效:
source ~/.bashrc
四、Spark启动
先启动Hadoop
/usr/local/hadoop/sbin/start-all.sh #hadoop
再启动Spark
/usr/local/spark/sbin/start-all.sh #saprk
五、Spark集群检查
可以正常访问 http://Master:8080/
各个节点的状态可以看到
到此,Spark集群搭建完成。
六、Spark关闭,可以选择关闭或者不关闭Hadoop
关闭spark
/usr/local/spark/sbin/stop-all.sh
关闭hadoop
/usr/local/hadoop/sbin/stop-all.sh