学些Spark技术框架,首先对于安装配置这一关是一定要过的,Spark提供的三种安装部署模式,针对不同的需求场合可以自行选择。当然,不同模式的安装配置,部署要求也是不一样的。今天我们就为大家带来Standalone模式的Spark安装教程,大家可以参照着在自己的电脑上安装。
1、配置 jdk 环境
解压文件:
tar -zxf jdk-8u211-linux-x64.tar.gz
配置环境变量:
export JAVA_HOME=/path/to/jdk1.8.0_211
export PATH=$PATH:$JAVA_HOME/bin
2、配置 Spark 环境
解压文件:
tar -xf spark-2.4.3-bin-hadoop2.7.tgz
配置环境变量:
export SPARK_HOME=/path/to/spark-2.4.3-bin-hadoop2.7
export PATH=$PATH:$SPARK_HOME/bin
修改spark-env.sh 文件
cd spark-2.4.3-bin-hadoop2.7
cp conf/spark-env.sh.template conf/spark-env.sh
vim conf/spark-env.sh
# 增加如下内容:
export JAVA_HOME=/path/to/jdk1.8.0_211
export SPARK_MASTER_HOST=192.168.56.106
修改slaves文件
cp conf/slaves.template conf/slaves
vim conf/slaves
# 增加如下内容:
192.168.56.106
192.168.56.107
192.168.56.108
3、配置 ssh 免密登录
配置 ssh 免密登录,是为了能够在master机器上来启动所有worker节点,如果不配置免密登录,则在启动每个worker时,都需要输入一遍密码,会很麻烦。当然,如果机器少的话,也可以登录到worker节点上,手动一个一个启动worker。
执行:ssh-keygen -t rsa,一直按回车即可。
并且在用户目录下会自动生成.ssh目录执行ls ~/.ssh可以看到两个文件:
id_rsa 生成的私钥文件
id_rsa.pub 生成的公钥文件
将id_rsa.pub复制到其它机器上,执行以下几条命令:
ssh-copy-id -i ~/.ssh/id_rsa.pub royran@192.168.56.106: # master所在的主机,如果master不做woker可以不需要。
ssh-copy-id -i ~/.ssh/id_rsa.pub royran@192.168.56.107:
ssh-copy-id -i ~/.ssh/id_rsa.pub royran@192.168.56.108:
4、配置其它 worker 节点
当前已在master节点配置好了环境,还需要在其它worker节点上配置相类似的环境。
配置其它worker节点很简单,只需要将jdk1.8.0_211及spark-2.4.3-bin-hadoop2.7两个目录复制到其它worker节点机器上即可。但要注意,这两个目录在其它 worker 上的绝对路径需要与 master 上的绝对路径一致,不然无法直接在 master 上启动其它 worker 节点。
依次执行以下命令(如果已经配置好 ssh 免密,可以发现执行 scp 指令不需要两次输入密码):
scp -r /path/to/jdk1.8.0_211username@192.168.56.107:/path/to/jdk1.8.0_211
scp -r /path/to/jdk1.8.0_211username@192.168.56.108:/path/to/jdk1.8.0_211
scp -r /path/to/spark-2.4.3-bin-hadoop2.7username@192.168.56.107:/path/to/spark-2.4.3-bin-hadoop2.7
scp -r /path/to/spark-2.4.3-bin-hadoop2.7username@192.168.56.108:/path/to/spark-2.4.3-bin-hadoop2.7
5、启动 master
执行:
sbin/start-master.sh
输入jps指令(该指令在$JAVA_HOME/bin 目录下)可以查看 java 进程名,看到有Master字样,说明master进程启动成功了,启动master后,spark 默认会监听8080端口,并可以通过浏览器打开 web 界面,在地址栏输入http://192.168.56.106:8080,查看集群状态。
6、启动 worker 节点
执行:
sbin/slaves.sh
会看到类似这样的输出:
再输入jps,会列出当前启动的java进程,显示Worker字样,说明worker进程启动成功了。
此时再刷新下打开的浏览器界面(http://192.168.56.106:8080),可以看到当前启动了三个Worker节点。
7、测试
在{SPARK_HOME}/examples/src/main目录下,有一些 spark 自带的示例程序,有 java、python、r、scala 四种语言版本的程序。这里主要测试 python 版的计算PI的程序。
cd ${SPARK_HOME}/examples/src/main/python
将pi.py程序提交到 spark 集群,执行:
spark-submit --master spark://192.168.56.106:7077 pi.py
刷新浏览器界面,在Completed Applications栏可以看到一条记录,即刚才执行的计算PI的 python 程序。
另外,如果觉得在终端中输出的日志太多,可以修改日志级别:
cp ${SPARK_HOME}/conf/log4j.properties.template ${SPARK_HOME}/conf/log4j.properties
vim ${SPARK_HOME}/conf/log4j.properties
修改日志级别为WARN:
再重新执行:spark-submit --master spark://192.168.56.106:7077 pi.py,可以看到输出日志少了很多。
除了提交 python 程序外,spark-submit 还可以提交打包好的java、scala程序,可以执行spark-submit --help看具体用法。
Spark 配置文件说明
在下载下来的spark-2.4.3-bin-hadoop2.7.tgz中,conf 目录下会默认存在这几个文件,均为 Spark 的配置示例模板文件:
这些模板文件,均不会被 Spark 读取,需要将.template后缀去除,Spark 才会读取这些文件。这些配置文件中,在 Spark 集群中主要需要关注的是log4j.properties、slaves、spark-defaults.conf、spark-env.sh这四个配置文件。
log4j.properties的配置,可以参考Apache Log4j官网上的 Propertities 属性配置说明。
slaves的配置,里面为集群的所有worker节点的主机信息,可以为主机名,也可以为 ip 地址。
spark-defaults.conf的配置,可以参考Spark 官网的属性配置页。比如指定 master 节点地址,可以设置spark.master属性;指定 executor 的运行时的核数,可以设置spark.executor.cores属性等。
spark-env.sh是 Spark 运行时,会读取的一些环境变量,在本文中,主要设置了三个环境变量:JAVA_HOME、SPARK_HOME、SPARK_LOCAL_IP,这是 Spark 集群搭建过程中主要需要设置的环境变量。其它未设置的环境变量,Spark 均采用默认值。其它环境变量的配置说明,可以参考Spark 官网的环境变量配置页。
至此,Spark 集群的Standalone模式部署全部结束。
好了,以上就是今天的Spark安装教程分享了,Standalone模式是Spark当中最基础的模式,应对学习阶段的练习任务时足够的,而其他的两种模式,随着后续的学习深入,大家也可以继续尝试,多多联系。成都加米谷大数据,专业
大数据培训机构,大数据开发春季班正在招生中,详情可联系客服了解!