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

本文涉及的产品
注册配置 MSE Nacos/ZooKeeper,118元/月
云原生网关 MSE Higress,422元/月
云原生大数据计算服务 MaxCompute,5000CU*H 100GB 3个月
简介: 大数据组件-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的热门话题分析
                本实验围绕社交用户发布的文章做了详尽的分析,通过分析能得到用户群体年龄分布,性别分布,地理位置分布,以及热门话题的热度。
                SaaS 模式云数据仓库必修课
                本课程由阿里云开发者社区和阿里云大数据团队共同出品,是SaaS模式云原生数据仓库领导者MaxCompute核心课程。本课程由阿里云资深产品和技术专家们从概念到方法,从场景到实践,体系化的将阿里巴巴飞天大数据平台10多年的经过验证的方法与实践深入浅出的讲给开发者们。帮助大数据开发者快速了解并掌握SaaS模式的云原生的数据仓库,助力开发者学习了解先进的技术栈,并能在实际业务中敏捷的进行大数据分析,赋能企业业务。 通过本课程可以了解SaaS模式云原生数据仓库领导者MaxCompute核心功能及典型适用场景,可应用MaxCompute实现数仓搭建,快速进行大数据分析。适合大数据工程师、大数据分析师 大量数据需要处理、存储和管理,需要搭建数据仓库?学它! 没有足够人员和经验来运维大数据平台,不想自建IDC买机器,需要免运维的大数据平台?会SQL就等于会大数据?学它! 想知道大数据用得对不对,想用更少的钱得到持续演进的数仓能力?获得极致弹性的计算资源和更好的性能,以及持续保护数据安全的生产环境?学它! 想要获得灵活的分析能力,快速洞察数据规律特征?想要兼得数据湖的灵活性与数据仓库的成长性?学它! 出品人:阿里云大数据产品及研发团队专家 产品 MaxCompute 官网 https://www.aliyun.com/product/odps&nbsp;
                相关文章
                |
                15天前
                |
                存储 SQL 关系型数据库
                Mysql高可用架构方案
                本文阐述了Mysql高可用架构方案,介绍了 主从模式,MHA模式,MMM模式,MGR模式 方案的实现方式,没有哪个方案是完美的,开发人员在选择何种方案应用到项目中也没有标准答案,合适的才是最好的。
                75 3
                Mysql高可用架构方案
                |
                19天前
                |
                分布式计算 大数据 Apache
                ClickHouse与大数据生态集成:Spark & Flink 实战
                【10月更文挑战第26天】在当今这个数据爆炸的时代,能够高效地处理和分析海量数据成为了企业和组织提升竞争力的关键。作为一款高性能的列式数据库系统,ClickHouse 在大数据分析领域展现出了卓越的能力。然而,为了充分利用ClickHouse的优势,将其与现有的大数据处理框架(如Apache Spark和Apache Flink)进行集成变得尤为重要。本文将从我个人的角度出发,探讨如何通过这些技术的结合,实现对大规模数据的实时处理和分析。
                54 2
                ClickHouse与大数据生态集成:Spark & Flink 实战
                |
                27天前
                |
                消息中间件 存储 Java
                RocketMQ(一):消息中间件缘起,一览整体架构及核心组件
                【10月更文挑战第15天】本文介绍了消息中间件的基本概念和特点,重点解析了RocketMQ的整体架构和核心组件。消息中间件如RocketMQ、RabbitMQ、Kafka等,具备异步通信、持久化、削峰填谷、系统解耦等特点,适用于分布式系统。RocketMQ的架构包括NameServer、Broker、Producer、Consumer等组件,通过这些组件实现消息的生产、存储和消费。文章还提供了Spring Boot快速上手RocketMQ的示例代码,帮助读者快速入门。
                |
                10天前
                |
                SQL 数据采集 分布式计算
                【赵渝强老师】基于大数据组件的平台架构
                本文介绍了大数据平台的总体架构及各层的功能。大数据平台架构分为五层:数据源层、数据采集层、大数据平台层、数据仓库层和应用层。其中,大数据平台层为核心,负责数据的存储和计算,支持离线和实时数据处理。数据仓库层则基于大数据平台构建数据模型,应用层则利用这些模型实现具体的应用场景。文中还提供了Lambda和Kappa架构的视频讲解。
                【赵渝强老师】基于大数据组件的平台架构
                |
                10天前
                |
                SQL 机器学习/深度学习 分布式计算
                【赵渝强老师】Spark生态圈组件
                本文介绍了Spark的生态圈体系架构,包括其核心执行引擎Spark Core、结构化数据处理模块Spark SQL、实时数据流处理模块Spark Streaming,以及机器学习框架MLlib和图计算框架GraphX。文中通过图片和视频详细解析了各模块的功能及访问接口。
                |
                20天前
                |
                SQL 机器学习/深度学习 分布式计算
                Spark快速上手:揭秘大数据处理的高效秘密,让你轻松应对海量数据
                【10月更文挑战第25天】本文全面介绍了大数据处理框架 Spark,涵盖其基本概念、安装配置、编程模型及实际应用。Spark 是一个高效的分布式计算平台,支持批处理、实时流处理、SQL 查询和机器学习等任务。通过详细的技术综述和示例代码,帮助读者快速掌握 Spark 的核心技能。
                48 6
                |
                18天前
                |
                存储 分布式计算 Hadoop
                数据湖技术:Hadoop与Spark在大数据处理中的协同作用
                【10月更文挑战第27天】在大数据时代,数据湖技术凭借其灵活性和成本效益成为企业存储和分析大规模异构数据的首选。Hadoop和Spark作为数据湖技术的核心组件,通过HDFS存储数据和Spark进行高效计算,实现了数据处理的优化。本文探讨了Hadoop与Spark的最佳实践,包括数据存储、处理、安全和可视化等方面,展示了它们在实际应用中的协同效应。
                64 2
                |
                20天前
                |
                Kubernetes 关系型数据库 MySQL
                Kubernetes入门:搭建高可用微服务架构
                【10月更文挑战第25天】在快速发展的云计算时代,微服务架构因其灵活性和可扩展性备受青睐。本文通过一个案例分析,展示了如何使用Kubernetes将传统Java Web应用迁移到Kubernetes平台并改造成微服务架构。通过定义Kubernetes服务、创建MySQL的Deployment/RC、改造Web应用以及部署Web应用,最终实现了高可用的微服务架构。Kubernetes不仅提供了服务发现和负载均衡的能力,还通过各种资源管理工具,提升了系统的可扩展性和容错性。
                58 3
                |
                19天前
                |
                存储 分布式计算 Hadoop
                数据湖技术:Hadoop与Spark在大数据处理中的协同作用
                【10月更文挑战第26天】本文详细探讨了Hadoop与Spark在大数据处理中的协同作用,通过具体案例展示了两者的最佳实践。Hadoop的HDFS和MapReduce负责数据存储和预处理,确保高可靠性和容错性;Spark则凭借其高性能和丰富的API,进行深度分析和机器学习,实现高效的批处理和实时处理。
                58 1
                |
                19天前
                |
                分布式计算 Java 开发工具
                阿里云MaxCompute-XGBoost on Spark 极限梯度提升算法的分布式训练与模型持久化oss的实现与代码浅析
                本文介绍了XGBoost在MaxCompute+OSS架构下模型持久化遇到的问题及其解决方案。首先简要介绍了XGBoost的特点和应用场景,随后详细描述了客户在将XGBoost on Spark任务从HDFS迁移到OSS时遇到的异常情况。通过分析异常堆栈和源代码,发现使用的`nativeBooster.saveModel`方法不支持OSS路径,而使用`write.overwrite().save`方法则能成功保存模型。最后提供了完整的Scala代码示例、Maven配置和提交命令,帮助用户顺利迁移模型存储路径。

                热门文章

                最新文章