大数据组件-Spark高可用架构部署

举报
芝士味的椒盐 发表于 2022/04/29 11:53:04 2022/04/29
【摘要】 ​ ​👨🏻‍🎓博主介绍:大家好,我是芝士味的椒盐,一名在校大学生,热爱分享知识,很高兴在这里认识大家🌟🌈擅长领域:Java、大数据、运维、电子🙏🏻如果本文章各位小伙伴们有帮助的话,🍭关注+👍🏻点赞+🗣评论+📦收藏,相应的有空了我也会回访,互助!!!🤝另本人水平有限,旨在创作简单易懂的文章,在文章描述时如有错,恳请各位大佬指正,在此感谢!!! 解压sudo tar -...

 

👨🏻‍🎓博主介绍:大家好,我是芝士味的椒盐,一名在校大学生,热爱分享知识,很高兴在这里认识大家🌟
🌈擅长领域:Java、大数据、运维、电子
🙏🏻如果本文章各位小伙伴们有帮助的话,🍭关注+👍🏻点赞+🗣评论+📦收藏,相应的有空了我也会回访,互助!!!
🤝另本人水平有限,旨在创作简单易懂的文章,在文章描述时如有错,恳请各位大佬指正,在此感谢!!!
 


解压

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集群

  1. 启动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
    
    
  2. 启动所有Slave节点在Master节点主机上运行如下命令:

    sbin/start-slaves.sh
    

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

    37553 DataNode
    37684 NodeManager
    37876 Worker
    37924 Jps
    
    
  3. 在浏览器上查看Spark独立集群管理器的集群信息在master主机上打开浏览器,访问http://master:8080

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

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

    start-history-server.sh
    
  6. 测试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模式
  7. 测试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观察运行成功与否。
  8. 如需看job页面需要预先启动spark-shell,才可以访问4040端口

  9. Yarn模式

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

      <property>
      	<name>yarn.nodemanager.pmem-check-enabled</name>
      	<value>false</value>
      </property>
      <property>
      	<name>yarn.nodemanager.vmem-check-enabled</name>
      	<value>false</value>
      </property>
      
    2. 测试案例

      bin/spark-submit \\--class org.apache.spark.examples.SparkPi \\--master yarn \\--deploy-mode client \\./examples/jars/spark-examples_2.11-2.1.1.jar \\100
      

关闭Spark集群

  1. 关闭Master节点

    sbin/stop-master.sh
    
  2. 关闭Worker节点

    sbin/stop-slaves.sh
    
  3. 关闭Hadoop集群

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


【版权声明】本文为华为云社区用户原创内容,未经允许不得转载,如需转载请自行联系原作者进行授权。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。