Spark高可用架构部署

Spark高可用架构部署,第1张

Spark高可用架构部署 解压
sudo tar -zxf ~/download/spark-2.0.2-bin-without-hadoop.tgz -C /usr/local/
cd /usr/local
sudo mv ./spark-2.0.2-bin-without-hadoop/ ./spark
sudo chown -R hadoop ./spark
配置环境变量

在Mster节点主机的终端中执行如下命令:

vim ~/.bash_profile

在.bash_profile添加如下配置:

export SPARK_HOME=/usr/local/spark
export PATH=$PATH:$SPARK_HOME/bin:$SPARK_HOME/sbin

执行如下命令使得配置立即生效:

source ~/.bash_profile
Spark配置

在Master节点主机上进行如下 *** 作:

配置slaves文件将 slaves.template 拷贝到 slaves

cd /usr/local/spark/
cp ./conf/slaves.template ./conf/slaves

slaves文件设置Worker节点。编辑slaves内容,把默认内容localhost替换成如下内容:

master
slave01
slave02

配置spark-env.sh文件将 spark-env.sh.template 拷贝到 spark-env.sh

cp ./conf/spark-env.sh.template ./conf/spark-env.sh

编辑spark-env.sh,添加如下内容:

export SCALA_HOME=/usr/local/src/scala-2.13.5
export JAVA_HOME=/usr/local/src/jdk1.8.0_144
export HADOOP_HOME=/usr/local/src/hadoop-2.6.0
export HADOOP_CONF_DIR=/usr/local/src/hadoop-2.6.0/etc/hadoop
#export SPARK_MASTER_IP=master
#export SPARK_WORKER_MEMORY=1g
#export SPARK_EXECUTOR_MEMORY=1g
#export SPARK_DRIVER_MEMORY=500m
#export SPARK_WORKER_CORES=2
export SPARK_HOME=/usr/local/src/spark-2.0.1-bin-without-hadoop
export SPARK_DIST_CLASSPATH=$(/usr/local/src/hadoop-2.6.0/bin/hadoop classpath)
export SPARK_HISTORY_OPTS="
-Dspark.history.ui.port=18080
-Dspark.history.retainedApplication=30
-Dspark.history.fs.logDirectory=hdfs://mycluster/directory"
#下面这个决定spark是否高可用
export SPARK_DAEMON_JAVA_OPTS="
-Dspark.deploy.recoveryMode=ZOOKEEPER 
-Dspark.deploy.zookeeper.url=Master:2181,Worker1:2181,Worker2:2181 
-Dspark.deploy.zookeeper.dir=/spark"

SPARK_MASTER_IP 指定 Spark 集群 Master 节点的 IP 地址;

修改sprak-default.conf的内容如下:

# Example:# 
spark.master                     spark://master:7077spark.eventLog.enabled           
truespark.eventLog.dir               hdfs://mycluster/directory
# spark.serializer                 org.apache.spark.serializer.KryoSerializer
# spark.driver.memory              5g
# spark.executor.extraJavaOptions  -XX:+PrintGCDetails -Dkey=value -Dnumbers="one two three"

配置好之后使用scp将整个spark包发送到集群机器上,并且发送.bash_profile文件并且source.

启动Spark集群 启动Hadoop集群

启动Spark集群前,要先启动Hadoop集群。在Master节点主机上运行如下命令:

cd /usr/local/hadoop/sbin/start-all.sh
启动Spark集群

    启动Master节点在Master节点主机上运行如下命令,ui访问8080:

    cd /usr/local/spark/sbin/start-master.sh
    

    在Master节点上运行jps命令,可以看到多了个Master进程:

    15093 Jps
    14343 SecondaryNameNode
    14121 NameNode
    14891 Master
    14509 ResourceManager
    
    

    启动所有Slave节点在Master节点主机上运行如下命令:

    sbin/start-slaves.sh
    

    分别在slave01、slave02节点上运行jps命令,可以看到多了个Worker进程

    37553 DataNode
    37684 NodeManager
    37876 Worker
    37924 Jps
    
    

    在浏览器上查看Spark独立集群管理器的集群信息在master主机上打开浏览器,访问http://master:8080

    如果是高可用可以在任意的机器上使用start-master.sh启动达成spark高可用,然后kill掉之前的master,过一会zookeeper更新就可以看见第二台master状态转变为Active,并且转移了task到自身。

    如需启动spark的历史服务器如下指令,ui访问18080

    start-history-server.sh
    

    测试loacl模式,求派案例

    **bin/spark-submit \
    --class org.apache.spark.examples.SparkPi \
    --master spark://master:7077,slave1:7077,slave2:7077  \
    --executor-memory 1G \
    --total-executor-cores 2 \
    ./examples/jars/spark-examples_2.11-2.1.1.jar \
    100**
    

    注意:提交的任务会在console上直接可视的执行,也就是client模式

    测试cluster模式,求派案例

    **bin/spark-submit \
    --class org.apache.spark.examples.SparkPi \
    --master spark://master:7077,slave1:7077,slave2:7077  \
    --deploy-mode cluster  \
    --executor-memory 1G \
    --total-executor-cores 2 \
    ./examples/jars/spark-examples_2.11-2.1.1.jar \
    100**
    

    注意:提交的任务不会直接在console上可视的执行,而是直接被提交到spark节点上执行,可以查看ui观察运行成功与否。

    如需看job页面需要预先启动spark-shell,才可以访问4040端口

    Yarn模式

      需要先修改hadoop的yarn-site.xml

      
      	yarn.nodemanager.pmem-check-enabled
      	false
      
      
      	yarn.nodemanager.vmem-check-enabled
      	false
      
      

      测试案例

      bin/spark-submit \--class org.apache.spark.examples.SparkPi \--master yarn \--deploy-mode client \./examples/jars/spark-examples_2.11-2.1.1.jar 0
      
关闭Spark集群

    关闭Master节点

    sbin/stop-master.sh
    

    关闭Worker节点

    sbin/stop-slaves.sh
    

    关闭Hadoop集群

    cd /usr/local/hadoop/sbin/stop-all.sh


欢迎分享,转载请注明来源:内存溢出

原文地址: https://www.outofmemory.cn/zaji/5705734.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存