zoukankan      html  css  js  c++  java
  • Spark2.3.1版本全分布模式的安装与部署

    部署Spark的全分布模式,至少需要三台Linux机器,首先要有一些准备工作,就是配置Hadoop的全分布环境。我准备了三台机器,分别命名为Master,Worker1,Worker2
    如果不清楚如何配置Hadoop的全分布环境,点击如下链接进行配置:
    Hadoop2.X的安装与配置(全分布模式)

    配置完Hadoop全分布环境后,接下来开始安装配置Spark2.3.1版本全分布模式,这里部署的全分布模式是standalone模式。

    接下来开始进行配置,在主节点Master上进行配置,然后把配置好的文件复制到其它机器
    1、在Windows上下载Spark2.3.1安装包
    点击如下链接进行下载:
    由于配置的Hadoop版本是2.7.7,所以下载spark-2.3.1-bin-hadoop2.7.tgz这个压缩包
    Spark官网下载地址

    2、将安装包上传到Linux上,并解压缩
    使用WinSCP将压缩包上传到事先创建好的tools目录下

    使用SecureCRT远程连接上Linux,将压缩包解压到事先创建好的software目录下

    1
    2
    3
    4
    [root@Master ~]# cd tools/
    [root@Master tools]# ls
    hadoop-2.7.7.tar.gz jdk-8u131-linux-x64.tar.gz spark-2.3.1-bin-hadoop2.7.tgz
    [root@Master tools]# tar -zxvf spark-2.3.1-bin-hadoop2.7.tgz -C ~/software/

    3、修改spark-env.sh配置文件
    使用vi编辑器修改spark-env.sh配置文件

    1
    2
    3
    [root@Master tools]# cd ~/software/spark-2.3.1-bin-hadoop2.7/conf/
    [root@Master conf]# cp spark-env.sh.template spark-env.sh
    [root@Master conf]# vi spark-env.sh

    在spark-env.sh文件末尾添加如下内容:分别是JAVA_HOME,主机名和端口号

    1
    2
    3
    export JAVA_HOME=/root/software/jdk1.8.0_131
    export SPARK_MASTER_HOST=Master
    export SPARK_MASTER_PORT=7077

    这里添加的是你自己那台机器的JAVA_HOME路径,主机名,端口号不变,就是7077。
    添加完成后,保存退出。

    4、修改slaves配置文件
    使用vi编辑器修改slaves配置文件

    1
    2
    [root@Master conf]# cp slaves.template slaves
    [root@Master conf]# vi slaves

    删除slaves文件末尾的localhost,并添加从节点的主机名:

    1
    2
    Worker1
    Worker2

    添加完成后,保存退出。

    5、把主节点上配置好的spark环境复制到从节点上
    由于配置了SSH免密码登录,所以这里复制到其他机器上不需要输入密码。
    复制到第一个从节点Worker1上

    1
    2
    [root@Master ~]# cd software/
    [root@Master software]# scp -r spark-2.3.1-bin-hadoop2.7/ root@Worker1:/root/software/

    复制到第二个从节点Worker2上

    1
    [root@Master software]# scp -r spark-2.3.1-bin-hadoop2.7/ root@Worker2:/root/software/

    可以在从节点Worker1上看到复制过来的spark-2.3.1

    大专栏  Spark2.3.1版本全分布模式的安装与部署>
    1
    2
    3
    [root@Worker1 ~]# cd software/
    [root@Worker1 software]# ls
    hadoop-2.7.7 jdk1.8.0_131 spark-2.3.1-bin-hadoop2.7

    可以在从节点Worker2上看到复制过来的spark-2.3.1

    1
    2
    3
    [root@Worker2 ~]# cd software/
    [root@Worker2 software]# ls
    hadoop-2.7.7 jdk1.8.0_131 spark-2.3.1-bin-hadoop2.7

    到这里Spark的全分布模式的配置就完成了。

    启动Spark全分布集群:
    由于hadoop和spark命令启动脚本start-all.sh有冲突,所以在系统的环境变量配置文件bash_profile中,不配置Spark的环境。
    启动Spark,在主节点Master上,进入spark目录中进行启动。

    1
    2
    3
    4
    5
    [root@Master ~]# cd ~/software/spark-2.3.1-bin-hadoop2.7/
    [root@Master spark-2.3.1-bin-hadoop2.7]# sbin/start-all.sh
    starting org.apache.spark.deploy.master.Master, logging to /root/software/spark-2.3.1-bin-hadoop2.7/logs/spark-root-org.apache.spark.deploy.master.Master-1-Master.out
    Worker2: starting org.apache.spark.deploy.worker.Worker, logging to /root/software/spark-2.3.1-bin-hadoop2.7/logs/spark-root-org.apache.spark.deploy.worker.Worker-1-Worker2.out
    Worker1: starting org.apache.spark.deploy.worker.Worker, logging to /root/software/spark-2.3.1-bin-hadoop2.7/logs/spark-root-org.apache.spark.deploy.worker.Worker-1-Worker1.out

    从打印出的日志可以看到,在主节点上启动了Master,两个从节点上各自启动了一个Worker。
    因为在系统的环境变量配置文件bash_profile中配置了Hadoop的环境,所以除了在spark-2.3.1-bin-hadoop2.7/sbin目录下使用start-all.sh命令启动的是Spark集群的全分布环境,其它任何位置使用start-all.sh命令启动的是Hadoop集群的全分布环境。

    使用jps命令查看后台进程,也可以看到各个节点启动的进程。

    1
    2
    3
    [root@Master ~]# jps
    18576 Jps
    18510 Master

    1
    2
    3
    [root@Worker1 ~]# jps
    14097 Jps
    14026 Worker
    1
    2
    3
    [root@Worker2 ~]# jps
    13669 Worker
    13739 Jps



    若要查看集群的基本信息,可以在网页中输入主节点IP:8080端口进行访问。

    注意:若使用购买的Linux服务器,这里的IP为公网IP。

    在这个网页中也可以看到此时有两个从节点Worker


    若要关闭Spark集群,在主节点使用如下命令关闭

    1
    2
    3
    4
    [root@Master spark-2.3.1-bin-hadoop2.7]# sbin/stop-all.sh 
    Worker2: stopping org.apache.spark.deploy.worker.Worker
    Worker1: stopping org.apache.spark.deploy.worker.Worker
    stopping org.apache.spark.deploy.master.Master

    到这里Spark2.3.1版本全分布模式的配置,以及启动关闭就介绍完了。

    如果在安装过程中遇到什么问题,欢迎评论。
    本文均为原创,如需转载请注明链接http://www.ggstu.com

  • 相关阅读:
    js中(function(){…})()立即执行函数写法理解
    JS 立即执行的函数表达式(function)写法
    javascript中call,apply,bind的用法对比分析
    C++成员函数指针的应用
    typeid详解
    dynamic_cast
    C++标准转换运算符dynamic_cast
    继承的构造函数
    考虑写一个不抛出异常的swap函数
    布隆过滤器(转)
  • 原文地址:https://www.cnblogs.com/lijianming180/p/12402218.html
Copyright © 2011-2022 走看看