Spark(三)安装部署Spark

  1. Standalone模式(独立部署模式):无需第三方群集管理器即可快速启动独立群集

    1. 安装Java8,并且配置环境变量
    2. 准备三台虚拟机 Spark001(192.168.1.127),Spark002(192.168.1.128),Spark003(192.168.1.129)。我用的是Centos7虚拟机
    3. 配置主机名,配置本机主机名与IP映射,分别在三台主机上配置其他两台的主机与名IP映射

      1. Spark001(192.168.1.127):

        1. 配置主机名:设置虚拟机名,编辑etc目录下的hostname文件,运行命令:vi /etc/hostname

          [root@spark001 ~]# vi /etc/hostname
          spark001
        2. 配置主机名与IP的映射以及与其他两台机器的主机名与IP映射:编辑etc下的hosts文件,运行命令:vi /etc/hosts,将自己和其他两台机器的主机名与IP映射添加进去。

          [root@spark001 ~]# vi /etc/hosts
          127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
          ::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
          192.168.1.127 spark001
          192.168.1.128 spark002
          192.168.1.129 spark003
      2. Spark002(192.168.1.128):

        1. 配置主机名:设置虚拟机名,编辑etc目录下的hostname文件,运行命令:vi /etc/hostname

          [root@spark001 ~]# vi /etc/hostname
          spark002
        2. 配置主机名与IP的映射以及与其他两台机器的主机名与IP映射:编辑etc下的hosts文件,运行命令:vi /etc/hosts,将自己和其他两台机器的主机名与IP映射添加进去。

          [root@spark002 ~]# vi /etc/hosts
          127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
          ::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
          192.168.1.127 spark001
          192.168.1.128 spark002
          192.168.1.129 spark003
      3. Spark003(192.168.1.129):

        1. 配置主机名:设置虚拟机名,编辑etc目录下的hostname文件,运行命令:vi /etc/hostname

          [root@spark001 ~]# vi /etc/hostname
          spark003
        2. 配置主机名与IP的映射以及与其他两台机器的主机名与IP映射:编辑etc下的hosts文件,运行命令:vi /etc/hosts,将自己和其他两台机器的主机名与IP映射添加进去。

          [root@spark003 ~]# vi /etc/hosts
          127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
          ::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
          192.168.1.127 spark001
          192.168.1.128 spark002
          192.168.1.129 spark003
    4. 配置三台机器SSH免密码登录:

      1. 分别在三台机器上执行命令,执行结束以后在.ssh目录下会生成公钥和私钥文件,下边以spark001为例:

        [root@spark001 ~]# ssh-keygen -t rsa
        Generating public/private rsa key pair.
        Enter file in which to save the key (/root/.ssh/id_rsa): 
        Enter passphrase (empty for no passphrase): 
        Enter same passphrase again: 
        Your identification has been saved in /root/.ssh/id_rsa.
        Your public key has been saved in /root/.ssh/id_rsa.pub.
        The key fingerprint is:
        2d:c5:7e:81:d9:e4:c7:45:74:5a:0c:fe:30:02:91:2f root@spark001
        The key's randomart image is:
        +--[ RSA 2048]----+
        |          oo. .=*|
        |         ..B o +o|
        |          =.= B  |
        |         +E .+ + |
        |        S o..   .|
        |         . .     |
        |                 |
        |                 |
        |                 |
        +-----------------+
        [root@spark001 ~]# 
        [root@spark001 .ssh]# ll
        -rw------- 1 root root 1675 6月  29 11:19 id_rsa
        -rw-r--r-- 1 root root  395 6月  29 11:19 id_rsa.pub
        -rw-r--r-- 1 root root 1580 6月  29 11:13 known_hosts
      2. 分别在三台机器分别上运行命令,并提示输入密码,这样就会把自己的公钥追加到对方的authorized_keys文件中,就可以免密码登录了:
        1. Spark001(192.168.1.127):
          1. ssh-copy-id root@spark002
          2. ssh-copy-id root@spark003
        2. Spark002(192.168.1.128)
          1. ssh-copy-id root@spark001
          2. ssh-copy-id root@spark003
        3. Spark003(192.168.1.129)
          1. ssh-copy-id root@spark001
          2. ssh-copy-id root@spark002
      3. 安装Spark集群:

        1. 解压我们编译好的spark
        2. 配置spark环境变量
        3. 配置spark001上的${SPARK_HOME}/conf/spark-env.sh,添加如下配置

          export JAVA_HOME=/usr/java/jdk1.8.0_131#指定JAVA_HOME位置
          export SPARK_MASTER_IP=spark001#指定spark老大Master的IP
          spark-env.sh里环境变量名称spark-env.sh里环境变量含义
          SPARK_MASTER_HOST将主服务器绑定到特定的主机名或IP地址,例如公共主机名或IP地址。
          SPARK_MASTER_PORT在不同的端口上启动主设备(默认:7077)。
          SPARK_MASTER_WEBUI_PORT主Web UI的端口(默认值:8080)。
          SPARK_MASTER_OPTS仅以“-Dx = y”形式应用于主服务器的配置属性(默认值:无)。请参阅下面的可能选项列表。
          SPARK_LOCAL_DIRS用于Spark中“临时”空间的目录,包括存储在磁盘上的映射输出文件和RDD。这应该位于系统中的快速本地磁盘上。它也可以是不同磁盘上多个目录的逗号分隔列表。
          SPARK_WORKER_CORES允许Spark应用程序在计算机上使用的核心总数(默认值:所有可用核心)。
          SPARK_WORKER_MEMORY的存储器总量以允许火花应用程序在计算机上,例如使用1000m,2g(默认值:总内存减去1 GB); 请注意,每个应用程序的单独内存均使用其spark.executor.memory属性进行配置。
          SPARK_WORKER_PORT在特定端口上启动Spark worker(默认值:random)。
          SPARK_WORKER_WEBUI_PORT工作者Web UI的端口(默认值:8081)。
          SPARK_WORKER_DIR用于运行应用程序的目录,其中包括日志和暂存空间(默认值:SPARK_HOME / work)。
          SPARK_WORKER_OPTS仅适用于“-Dx = y”形式的工作线程的配置属性(默认值:无)。请参阅下面的可能选项列表。
          SPARK_DAEMON_MEMORY要分配给Spark主服务器和工作服务器守护程序的内存(默认值:1g)。
          SPARK_DAEMON_JAVA_OPTSSpark master和worker守护进程的JVM选项以“-Dx = y”的形式(默认值:无)。
          SPARK_PUBLIC_DNSSpark主服务器和工作服务器的公有DNS名称(默认值:无)。
        4. spark001上配置${SPARK_HOME}/conf/slaves,添加如下配置

          spark001
          spark002
          spark003
        5. spark001上的spark远程复制到其他两台机器上

          scp -r spark-2.1.0-bin-2.6.0-cdh5.7.0 root@spark002:/opt/
          scp -r spark-2.1.0-bin-2.6.0-cdh5.7.0 root@spark003:/opt/
        6. spark001上启动spark集群:在${SPARK_HOME}/sbin/目录下执行start-all.sh

        7. 利用命令行查看集群启动是否成功,分别在三台机器上运行jps命令,如果在spark001上出现了一个Master进程和一个Worker进程,在其他两台机器上分别出现了Woker进程,说明你启动成功了。
        8. 利用浏览器查看集群是否启动成功,在浏览器中直接访问http://192.168.1.127:8080/,出现的页面如下说明启动成功了
          这里写图片描述
  2. Yarn模式:Hadoop NextGen(YARN)之上部署Spark。该部署方式不需要部署任何有关Spark有关环境,它只依赖于Hadoop Yarn。原理就是依赖于Yarn来调度Spark

    1. 编译好的Spark源码,编译的时候一定要指定Yarn依赖
    2. 已部署好的Hadoop环境
    3. 解压编译好的Spark
    4. ${HADOOP_HOME}/etc/hadoop目录拷贝到${SPARK_HOME}/conf/
    5. 配置${SPARK_HOME}/conf/spark-env.sh,添加如下配置

      HADOOP_CONF_DIR=/opt/spark-2.1.0-bin-2.6.0-cdh5.7.0/conf/hadoop //具体目录可根据自己的实际目录自行修改
    6. 补充:配置到这里,Spark就可以跑在YARN上了,也没必要启动sparkmasterslaves服务,因为是靠yarn进行任务调度,所以直接提交任务即可。有些关于Spark on YARN部署的博客,实际上介绍的是Sparkstandalone运行模式。如果启动Sparkmasterworker服务,这是Sparkstandalone运行模式,不是Spark on YARN运行模式,请不要混淆。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值