美文网首页
Spark组件部署-集群

Spark组件部署-集群

作者: CoderInsight | 来源:发表于2022-08-09 09:41 被阅读0次

    0,前提条件

    • 配置好jdk
    • 启动好Hadoop集群
    • 防火墙、SeLinux正常关闭
    • 免密登录、hosts文件配置正常

    1,解压、配置环境变量

    [root@master opt]# tar -zxvf /soft/scala-2.11.12.tgz
    [root@master opt]# mv scala-2.11.12/ scala
    [root@master opt]# tar -zxvf /soft/spark-2.0.0-bin-hadoop2.6.tgz
    [root@master opt]# mv spark-2.0.0-bin-hadoop2.6/ spark
    [root@master opt]# tar -zxvf /soft/zookeeper-3.4.5.tar.gz
    [root@master opt]# mv zookeeper-3.4.5/ zookeeper
    
    vi /etc/profile
    export SCALA_HOME=/opt/scala
    export SPARK_HOME=/opt/spark
    export ZOOKEEPER_HOME=/opt/zookeeper
    
    export PATH=$PATH:$SCALA_HOME/bin:$SPARK_HOME/bin:$SPARK_HOME/sbin:$ZOOKEEPER_HOME/bin
    

    2,填写配置文件

    (1),SparkStandAlone全分布式部署

    1).配置文件(spark): spark-env.sh

    • HADOOP_CONF_DIR:指定hadoop的配置文件的目录
    • SPARK_MASTER_IP:指定主机的ip(我们用主机名代替了ip,因为已经在hosts中配置ip和主机名的映射)
    • SPARK_LOCAL_IP:指定当前在master的ip(在其他节点上要改为指定的主机名(如果也做了映射,显然已经做了ip和主机名之间的映射))
    [root@master opt]# cp spark/conf/spark-env.sh.template spark/conf/spark-env.sh
    
    [root@master opt]# vi spark/conf/spark-env.sh
    # 直接在配置文件最后追加以下内容(下面两个对ip的设置是说明主机的ip的,所以需要之前将主机名与ip做好映射;即时在伪分布式的时候也要做,不能直接使用localhost,因为在host中做的映射是127.0.0.1,而不是当前主机的ip)
    export JAVA_HOME=/opt/jdk
    HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
    SPARK_MASTER_IP=master
    SPARK_LOCAL_IP=master
    
    # 但是在修改完master节点之后,要对剩下的两个节点进行相应文件的SPARK_LOCAL_IP属性进行修改
    # salve1和slave2都是操作以下目录(这里就两台主机,没有采用之前的分发shell的方式,而是直接改的)
    修改slave1的 SPARK_LOCAL_IP 为:slave1
    修改slave2的 SPARK_LOCAL_IP 为:slave2
    

    2).配置文件(spark): slaves

    [root@master opt]# cp spark/conf/slaves.template spark/conf/slaves
    
    [root@master opt]# vi spark/conf/slaves
    # 删除原本的localhost,添加以下内容
    slave1
    slave2
    

    3),启动Spark集群

    # 直接在master主节点中执行
    cd /opt/spark
    sbin/start-all.sh
    

    (2),SparkStandAlone HA模式

    1),部署Zookeeper

    如果已经部署成功则不用重复部署,直接启动即可。

    A.配置文件(zookeeper): zoo.cfg
    [root@master opt]# cp zookeeper/conf/zoo_sample.cfg zookeeper/conf/zoo.cfg
    [root@master opt]# vi zookeeper/conf/zoo.cfg
    
    # 更改temp临时目录:
    原:dataDir=/tmp/zookeeper
    改:dataDir=/opt/zookeeper/tmp
    # 在配置文件最后追加服务器的配置
    server.1=master:2888:3888
    server.2=slave1:2888:3888
    server.3=slave2:2888:3888
    
    B.配置文件(zookeeper): myid
    # 三台机器分别进入到zookeeper的tmp目录下
    mkdir -p /opt/zookeeper/tmp
    cd /opt/zookeeper/tmp
    # 分别在三台机中创建myid文件,并依次填写内容1,2,3
    # master节点
    vi myid
    1
    #######  此时剩下对于其他节点的修改,等将配置好的文件同步过去之后再进行修改
    # slave1节点
    vi myid
    2
    # slave2节点
    vi myid
    3
    

    2),配置文件(spark): saprk-env.sh

    # master 节点:
    vi spark-env.sh
    export JAVA_HOME=/opt/jdk
    SPARK_LOCAL_IP=master
    SPARK_DAEMON_JAVA_OPTS="-Dspark.deploy.recoveryMode=ZOOKEEPER -Dspark.deploy.zookeeper.url=master,slave1,slave2"
    
    HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
    
    ##### 对于其他节点的操作,也是等同步到其他节点之后再进行操作
    
    # slave1节点
    vi spark-env.sh
    export JAVA_HOME=/opt/jdk
    
    HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
    SPARK_LOCAL_IP=slave1
    SPARK_DAEMON_JAVA_OPTS="-Dspark.deploy.recoveryMode=ZOOKEEPER -Dspark.deploy.zookeeper.url=master,slave1,slave2"
    
    
    # slave2节点
    vi spark-env.sh
    export JAVA_HOME=/opt/jdk
    
    HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
    SPARK_LOCAL_IP=slave2
    SPARK_DAEMON_JAVA_OPTS="-Dspark.deploy.recoveryMode=ZOOKEEPER -Dspark.deploy.zookeeper.url=master,slave1,slave2"
    

    3),配置文件(spark): slaves

    其中写几个节点的主机名,那么久会对应几个节点启动Worker进程

    slave1
    slave2
    

    4),启动Spark集群

    cd /opt/spark
    # 在主节点(master)启动Master主进程: 
    sbin/start-all.sh
    # 在主节点二(salve1)中单独启动Master主进程: 
    sbin/start-master.sh
    

    相关文章

      网友评论

          本文标题:Spark组件部署-集群

          本文链接:https://www.haomeiwen.com/subject/yljywrtx.html