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

本文涉及的产品
注册配置 MSE Nacos/ZooKeeper,182元/月
任务调度 XXL-JOB 版免费试用,400 元额度,开发版规格
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
简介: 大数据组件-Spark高可用架构部署

 image.gif编辑

👨🏻‍🎓博主介绍:大家好,我是芝士味的椒盐,一名在校大学生,热爱分享知识,很高兴在这里认识大家🌟

🌈擅长领域: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

image.gif

配置环境变量

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

vim ~/.bash_profile

image.gif

在.bash_profile添加如下配置:

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

image.gif

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

source ~/.bash_profile

image.gif

Spark配置

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

    • 配置slaves文件将 slaves.template 拷贝到 slaves
    cd /usr/local/spark/
    cp ./conf/slaves.template ./conf/slaves

    image.gif

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

    master
    slave01
    slave02

    image.gif

      • 配置spark-env.sh文件将 spark-env.sh.template 拷贝到 spark-env.sh
      cp ./conf/spark-env.sh.template ./conf/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"
      • image.gifSPARK_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"

      image.gif

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

      启动Spark集群

      启动Hadoop集群

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

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

      image.gif

      启动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
        • 启动所有Slave节点在Master节点主机上运行如下命令:
        sbin/start-slaves.sh
        • image.gif分别在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端口
            1. Yarn模式
              • 需要先修改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>
              • 测试案例
              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集群

                • 关闭Master节点
                sbin/stop-master.sh
                • 关闭Worker节点
                sbin/stop-slaves.sh
                • 关闭Hadoop集群
                cd /usr/local/hadoop/sbin/stop-all.sh


                相关实践学习
                基于MaxCompute的热门话题分析
                Apsara Clouder大数据专项技能认证配套课程:基于MaxCompute的热门话题分析
                相关文章
                |
                2月前
                |
                消息中间件 Java Kafka
                Java 事件驱动架构设计实战与 Kafka 生态系统组件实操全流程指南
                本指南详解Java事件驱动架构与Kafka生态实操,涵盖环境搭建、事件模型定义、生产者与消费者实现、事件测试及高级特性,助你快速构建高可扩展分布式系统。
                184 7
                |
                4月前
                |
                人工智能 分布式计算 大数据
                大数据≠大样本:基于Spark的特征降维实战(提升10倍训练效率)
                本文探讨了大数据场景下降维的核心问题与解决方案,重点分析了“维度灾难”对模型性能的影响及特征冗余的陷阱。通过数学证明与实际案例,揭示高维空间中样本稀疏性问题,并提出基于Spark的分布式降维技术选型与优化策略。文章详细展示了PCA在亿级用户画像中的应用,包括数据准备、核心实现与效果评估,同时深入探讨了协方差矩阵计算与特征值分解的并行优化方法。此外,还介绍了动态维度调整、非线性特征处理及降维与其他AI技术的协同效应,为生产环境提供了最佳实践指南。最终总结出降维的本质与工程实践原则,展望未来发展方向。
                225 0
                |
                7天前
                |
                分布式计算 Kubernetes 调度
                Kubeflow-Spark-Operator-架构学习指南
                本指南系统解析 Spark Operator 架构,涵盖 Kubebuilder 开发、控制器设计与云原生集成。通过四阶段学习路径,助你从部署到贡献,掌握 Kubernetes Operator 核心原理与实战技能。
                40 0
                |
                3月前
                |
                SQL JSON 分布式计算
                Spark SQL架构及高级用法
                Spark SQL基于Catalyst优化器与Tungsten引擎,提供高效的数据处理能力。其架构涵盖SQL解析、逻辑计划优化、物理计划生成及分布式执行,支持复杂数据类型、窗口函数与多样化聚合操作,结合自适应查询与代码生成技术,实现高性能大数据分析。
                |
                5月前
                |
                机器学习/深度学习 人工智能 自然语言处理
                3 秒音频也能克隆?拆解 Spark-TTS 架构的极致小样本学习
                本文深入解析了 Spark-TTS 模型的架构与原理,该模型仅需 3 秒语音样本即可实现高质量的零样本语音克隆。其核心创新在于 BiCodec 单流语音编码架构,将语音信号分解为语义 Token 和全局 Token,实现内容与音色解耦。结合大型语言模型(如 Qwen 2.5),Spark-TTS 能直接生成语义 Token 并还原波形,简化推理流程。实验表明,它不仅能克隆音色、语速和语调,还支持跨语言朗读及情感调整。尽管面临相似度提升、样本鲁棒性等挑战,但其技术突破为定制化 AI 声音提供了全新可能。
                416 35
                |
                7月前
                |
                存储 分布式计算 Hadoop
                从“笨重大象”到“敏捷火花”:Hadoop与Spark的大数据技术进化之路
                从“笨重大象”到“敏捷火花”:Hadoop与Spark的大数据技术进化之路
                308 79
                |
                11月前
                |
                监控 前端开发 数据可视化
                3D架构图软件 iCraft Editor 正式发布 @icraft/player-react 前端组件, 轻松嵌入3D架构图到您的项目,实现数字孪生
                @icraft/player-react 是 iCraft Editor 推出的 React 组件库,旨在简化3D数字孪生场景的前端集成。它支持零配置快速接入、自定义插件、丰富的事件和方法、动画控制及实时数据接入,帮助开发者轻松实现3D场景与React项目的无缝融合。
                599 9
                3D架构图软件 iCraft Editor 正式发布 @icraft/player-react 前端组件, 轻松嵌入3D架构图到您的项目,实现数字孪生
                |
                11月前
                |
                SQL 数据采集 分布式计算
                【赵渝强老师】基于大数据组件的平台架构
                本文介绍了大数据平台的总体架构及各层的功能。大数据平台架构分为五层:数据源层、数据采集层、大数据平台层、数据仓库层和应用层。其中,大数据平台层为核心,负责数据的存储和计算,支持离线和实时数据处理。数据仓库层则基于大数据平台构建数据模型,应用层则利用这些模型实现具体的应用场景。文中还提供了Lambda和Kappa架构的视频讲解。
                908 3
                【赵渝强老师】基于大数据组件的平台架构
                |
                11月前
                |
                分布式计算 大数据 Apache
                ClickHouse与大数据生态集成:Spark & Flink 实战
                【10月更文挑战第26天】在当今这个数据爆炸的时代,能够高效地处理和分析海量数据成为了企业和组织提升竞争力的关键。作为一款高性能的列式数据库系统,ClickHouse 在大数据分析领域展现出了卓越的能力。然而,为了充分利用ClickHouse的优势,将其与现有的大数据处理框架(如Apache Spark和Apache Flink)进行集成变得尤为重要。本文将从我个人的角度出发,探讨如何通过这些技术的结合,实现对大规模数据的实时处理和分析。
                727 2
                ClickHouse与大数据生态集成:Spark & Flink 实战
                |
                存储 分布式计算 算法
                大数据-106 Spark Graph X 计算学习 案例:1图的基本计算、2连通图算法、3寻找相同的用户
                大数据-106 Spark Graph X 计算学习 案例:1图的基本计算、2连通图算法、3寻找相同的用户
                205 0

                热门文章

                最新文章