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

本文涉及的产品
服务治理 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的热门话题分析
                本实验围绕社交用户发布的文章做了详尽的分析,通过分析能得到用户群体年龄分布,性别分布,地理位置分布,以及热门话题的热度。
                SaaS 模式云数据仓库必修课
                本课程由阿里云开发者社区和阿里云大数据团队共同出品,是SaaS模式云原生数据仓库领导者MaxCompute核心课程。本课程由阿里云资深产品和技术专家们从概念到方法,从场景到实践,体系化的将阿里巴巴飞天大数据平台10多年的经过验证的方法与实践深入浅出的讲给开发者们。帮助大数据开发者快速了解并掌握SaaS模式的云原生的数据仓库,助力开发者学习了解先进的技术栈,并能在实际业务中敏捷的进行大数据分析,赋能企业业务。 通过本课程可以了解SaaS模式云原生数据仓库领导者MaxCompute核心功能及典型适用场景,可应用MaxCompute实现数仓搭建,快速进行大数据分析。适合大数据工程师、大数据分析师 大量数据需要处理、存储和管理,需要搭建数据仓库?学它! 没有足够人员和经验来运维大数据平台,不想自建IDC买机器,需要免运维的大数据平台?会SQL就等于会大数据?学它! 想知道大数据用得对不对,想用更少的钱得到持续演进的数仓能力?获得极致弹性的计算资源和更好的性能,以及持续保护数据安全的生产环境?学它! 想要获得灵活的分析能力,快速洞察数据规律特征?想要兼得数据湖的灵活性与数据仓库的成长性?学它! 出品人:阿里云大数据产品及研发团队专家 产品 MaxCompute 官网 https://www.aliyun.com/product/odps&nbsp;
                相关文章
                |
                4天前
                |
                分布式计算 Spark 大数据
                深入探究Apache Spark在大数据处理中的实践应用
                【6月更文挑战第2天】Apache Spark是流行的开源大数据处理框架,以其内存计算速度和低延迟脱颖而出。本文涵盖Spark概述、核心组件(包括Spark Core、SQL、Streaming和MLlib)及其在数据预处理、批处理分析、交互式查询、实时处理和机器学习中的应用。通过理解Spark内部机制和实践应用,可提升大数据处理效率,发挥其在各行业的潜力。
                |
                9天前
                |
                分布式计算 Hadoop 大数据
                探索大数据技术:Hadoop与Spark的奥秘之旅
                【5月更文挑战第28天】本文探讨了大数据技术中的Hadoop和Spark,Hadoop作为分布式系统基础架构,通过HDFS和MapReduce处理大规模数据,适用于搜索引擎等场景。Spark是快速数据处理引擎,采用内存计算和DAG模型,适用于实时推荐和机器学习。两者各有优势,未来将继续发展和完善,助力大数据时代的发展。
                |
                22天前
                |
                消息中间件 分布式计算 大数据
                大数据组件之storm简介
                大数据组件之storm简介
                28 2
                |
                22天前
                |
                SQL 分布式计算 资源调度
                常用大数据组件的Web端口号总结
                这是关于常用大数据组件Web端口号的总结。通过虚拟机名+端口号可访问各组件服务:Hadoop HDFS的9870,YARN的ResourceManager的8088和JobHistoryServer的19888,Zeppelin的8000,HBase的10610,Hive的10002。ZooKeeper的端口包括客户端连接的2181,服务器间通信的2888以及选举通信的3888。
                27 2
                常用大数据组件的Web端口号总结
                |
                22天前
                |
                监控 大数据 数据处理
                大数据组件之Storm简介
                【5月更文挑战第2天】Apache Storm是用于实时大数据处理的分布式系统,提供容错和高可用的实时计算。核心概念包括Topology(由Spouts和Bolts构成的DAG)、Spouts(数据源)和Bolts(数据处理器)。Storm通过acker机制确保数据完整性。常见问题包括数据丢失、性能瓶颈和容错理解不足。避免这些问题的方法包括深入学习架构、监控日志、性能调优和编写健壮逻辑。示例展示了实现单词计数的简单Topology。进阶话题涵盖数据延迟、倾斜的处理,以及Trident状态管理和高级实践,强调调试、性能优化和数据安全性。
                26 4
                |
                22天前
                |
                存储 运维 监控
                |
                22天前
                |
                分布式计算 DataWorks 大数据
                MaxCompute操作报错合集之大数据计算的MaxCompute Spark引擎无法读取到表,是什么原因
                MaxCompute是阿里云提供的大规模离线数据处理服务,用于大数据分析、挖掘和报表生成等场景。在使用MaxCompute进行数据处理时,可能会遇到各种操作报错。以下是一些常见的MaxCompute操作报错及其可能的原因与解决措施的合集。
                MaxCompute操作报错合集之大数据计算的MaxCompute Spark引擎无法读取到表,是什么原因
                |
                22天前
                |
                SQL 分布式计算 大数据
                MaxCompute操作报错合集之spark3.1.1通过resource目录下的conf文件配置,报错如何解决
                MaxCompute是阿里云提供的大规模离线数据处理服务,用于大数据分析、挖掘和报表生成等场景。在使用MaxCompute进行数据处理时,可能会遇到各种操作报错。以下是一些常见的MaxCompute操作报错及其可能的原因与解决措施的合集。
                |
                22天前
                |
                分布式计算 大数据 数据处理
                [AIGC大数据基础] Spark 入门
                [AIGC大数据基础] Spark 入门
                228 0
                |
                2天前
                |
                负载均衡 应用服务中间件 测试技术
                探索微服务架构中的API网关
                在微服务的大潮中,API网关如同一座桥梁,连接着分散的服务与外部世界。本文将深入探讨API网关的设计理念、核心功能以及在实际开发中的应用,揭示其在微服务架构中的重要性和实现细节。