写点什么

部署 spark2.2 集群 (standalone 模式)

作者:程序员欣宸
  • 2022 年 8 月 08 日
  • 本文字数:2032 字

    阅读完需:约 7 分钟

部署spark2.2集群(standalone模式)

欢迎访问我的 GitHub

这里分类和汇总了欣宸的全部原创(含配套源码):https://github.com/zq2599/blog_demos


  • 一起来实战部署 spark2.2 集群(standalone 模式)

版本信息

  1. 操作系统 CentOS 7.5.1804

  2. JDK:1.8.0_191

  3. scala:2.12.8

  4. spark:2.3.2

机器信息

  • 本次实战用到了三台机器,相关信息如下:



  • 接下来开始实战;

关闭防火墙

  • 执行以下命令永久关闭防火墙服务:


systemctl stop firewalld.service && systemctl disable firewalld.service
复制代码

设置 hostname(三台电脑都做)

  • 修改/etc/hostname 文件,将几台电脑的主机名分别修改为前面设定的 master、slave0 等;

设置/etc/hosts 文件(三台电脑都做)

  • 在/etc/hosts 文件尾部追加以下三行内容,三台电脑追加的内容一模一样,都是下面这些:


master 192.168.150.130slave1 192.168.150.131slave2 192.168.150.132
复制代码

创建用户(三台电脑都做)

  • 创建用户和用户组,并指定 home 目录的位置:


groupadd spark && useradd -d /home/spark -g spark -m spark
复制代码


  • 设置 spark 用户的密码:


passwd spark
复制代码


  • 以 spark 账号的身份登录;

文件下载和解压(三台电脑都做)

  • 分别去 java、scala 的官网下载以下两个文件:


jdk-8u191-linux-x64.tar.gz  scala-2.12.8.tgz
复制代码


  • 上述两个文件下载到目录/home/spark 下,依次解压后,/home/spark 下的内容如下所示:


[spark@localhost ~]$ ll总用量 427836drwxr-xr-x.  7 spark spark       245 10月  6 20:55 jdk1.8.0_191-rw-r--r--.  1 spark spark 191753373 2月   2 08:49 jdk-8u191-linux-x64.tar.gzdrwxrwxr-x.  6 spark spark        50 12月  4 18:25 scala-2.12.8-rw-r--r--.  1 spark spark  20467943 2月   2 08:49 scala-2.12.8.tgz
复制代码


  • 修改/home/spark 文件夹下的.bash_profile 文件,在尾部增加以下内容(spark 相关的是后面会用到的,这里把配置先写上):


export JAVA_HOME=/home/spark/jdk1.8.0_191export JRE_HOME=${JAVA_HOME}/jreexport CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/libexport PATH=${JAVA_HOME}/bin:$PATHexport SCALA_HOME=/home/spark/scala-2.12.8export PATH=${SCALA_HOME}/bin:$PATHexport SPARK_HOME=/home/spark/spark-2.3.2-bin-hadoop2.7export PATH=${SPARK_HOME}/bin:$PATH
复制代码


  • 执行以下命令,使得.bash_profile 的修改生效:


source .bash_profile
复制代码


  • 分别执行 java -version scala -version 命令,检查上述设置是否生效:


[spark@localhost ~]$ java -versionjava version "1.8.0_191"Java(TM) SE Runtime Environment (build 1.8.0_191-b12)Java HotSpot(TM) 64-Bit Server VM (build 25.191-b12, mixed mode)[spark@localhost ~]$ scala -versionScala code runner version 2.12.8 -- Copyright 2002-2018, LAMP/EPFL and Lightbend, Inc.
复制代码

spark 的设置(只在 master 机器操作)

  • 登录 master 机器:

  • 去 spark 的官网下载文件 spark-2.3.2-bin-hadoop2.7.tgz,下载到目录/home/spark 下,在此解压;

  • 进入目录/home/spark/spark-2.3.2-bin-hadoop2.7/conf

  • 执行以下命令,将"spark-env.sh.template"更名为"spark-env.sh":


mv spark-env.sh.template spark-env.sh
复制代码


  • 打开文件 spark-env.sh,在尾部增加以下内容:


export SPARK_MASTER_IP=node0export SPARK_MASTER_PORT=7077export SPARK_EXECUTOR_INSTANCES=1export SPARK_WORKER_INSTANCES=1export SPARK_WORKER_CORES=1export SPARK_WORKER_MEMORY=256Mexport SPARK_MASTER_WEBUI_PORT=8080export SPARK_CONF_DIR=/home/spark/spark-2.3.2-bin-hadoop2.7/confexport JAVA_HOME=/home/spark/jdk1.8.0_191export JRE_HOME=${JAVA_HOME}/jre
复制代码


  • 进入目录/home/spark/spark-2.3.2-bin-hadoop2.7/conf ,执行以下命令,将 slaves.template 更名为 slaves:


mv slaves.template slaves
复制代码


  • 打开文件 slaves,将尾部的 localhost 删除,再增加以下内容:


slave1slave2
复制代码


  • 以上就是所有设置,接下来要将 spark 文件夹同步到其他机器上

将 spark 文件夹同步到其他机器

  • 在 master 机器执行以下命令,即可将整个 spark 文件夹同步到 slave1:


scp -r ~/spark-2.3.2-bin-hadoop2.7 spark@slave1:~
复制代码


  • 期间会要求输入 slave1 的密码,输入密码后即可开始同步;

  • 在 master 机器执行以下命令,即可将整个 spark 文件夹同步到 slave2:


scp -r ~/spark-2.3.2-bin-hadoop2.7 spark@slave2:~
复制代码


  • 期间会要求输入 slave2 的密码,输入密码后即可开始同步;

启动 spark

  • 以 spark 账号登录 master 机器,执行以下命令即可启动 spark 集群:


/home/spark/spark-2.3.2-bin-hadoop2.7/sbin/start-all.sh
复制代码


  • 启动过程中,会要求输入 slave1、slave2 的密码,输入即可;

  • 为了避免每次启动和停止都要输入 slave1 和 slave2 的密码,建议将三台机器配置 ssh 免密码登录,请参考《Docker 下,实现多台机器之间相互 SSH 免密码登录》

  • 启动成功后,可以通过浏览器查看启动情况,如下图,地址是:http://192.168.150.130:8080/



  • 至此,spark 集群部署成功,接下来的章节,我们会一起进行更多的 spark 实战;

欢迎关注 ITpub:程序员欣宸

学习路上,你不孤单,欣宸原创一路相伴...

发布于: 刚刚阅读数: 3
用户头像

搜索"程序员欣宸",一起畅游Java宇宙 2018.04.19 加入

前腾讯、前阿里员工,从事Java后台工作,对Docker和Kubernetes充满热爱,所有文章均为作者原创,个人Github:https://github.com/zq2599/blog_demos

评论

发布
暂无评论
部署spark2.2集群(standalone模式)_spark_程序员欣宸_InfoQ写作社区