zoukankan      html  css  js  c++  java
  • spark安装配置


    准备:
    1. 规划3个集群节点:
    hosts主机都已经配置好映射,映射主机名分别为master,slave1,slave2,
    且已经进行ssh免密配置,确保端口互通,防火墙关闭

    2. 先安装好scala(参考:https://www.cnblogs.com/sea520/p/13518158.html)

    一. 下载
    spark安装包下载地址:https://archive.apache.org/dist/spark/spark-2.4.6/
    将下载的spark-2.4.6-bin-hadoop2.7.tgz上传到master机器目录

    (参考:
    开发源码与编译下载 https://github.com/apache/spark/tree/branch-2.4
    官方的下载地址已经无法选择版本下载:http://spark.apache.org/downloads.html)


    二. 安装

    1.解压 (解压后主目录:/opt/soft/spark-2.4.6-bin-hadoop2.7)
    tar -zxvf /opt/soft/download_jars/spark-2.4.6-bin-hadoop2.7.tgz -C /opt/soft/

    2. 配置环境变量


    3. 配置环境变量
    3.1 打开 vim /etc/profile添加以下配置

    # spark home
    export SPARK_HOME=/opt/soft/spark-2.4.6-bin-hadoop2.7
    export PATH=$SPARK_HOME/bin:$PATH

    3.2 让环境变量立即生效
    source /etc/profile

    4. 修改Spark配置文件
    spark配置文件模版在: cd ${SPARK_HOME}/conf/
    主要修改两个配置文件:spark-env.sh和slaves

    4.1 spark-env.sh修改:
    # 复制模版
    cp spark-env.sh.template spark-env.sh
    # 添加配置 (请修改成你自己的各种目录环境,注意最后一个 HADOOP_CONF_DIR=你的hadoop主目录/etc/hadoop   ,/etc/hadoop要保留哦)
    vim spark-env.sh
    export SCALA_HOME=/opt/soft/scala-2.13.3
    export JAVA_HOME=/opt/soft/jdk1.8.0_261
    export SPARK_MASTER_IP=master
    export SPARK_WORKER_MEMORY=1g
    export HADOOP_CONF_DIR=/opt/soft/hadoop-3.1.2/etc/hadoop


    4.2 slaves修改
    cp slaves.template slaves
    vim slaves
    # localhost
    slave1
    slave2

    5. node节点分发(如果在内网,用内网IP比主机名快很多,主机名是映射的公网太慢)
    scp -r /opt/soft/spark-2.4.6-bin-hadoop2.7 hadoop@172.17.0.5:/opt/soft/
    scp -r /opt/soft/spark-2.4.6-bin-hadoop2.7 hadoop@172.17.0.13:/opt/soft/


    6. 其他各node节点(slave1,slave2)分别配置环境变量与刷新环境变量(执行3.1,3.2两个步骤),
    刷新profile文件使配置生效,验证安装是否OK


    7.启动Spark集群

    7.1启动前确定Hadoop集群已经启动。

    7.2启动命令:
    /opt/soft/spark-2.4.6-bin-hadoop2.7/sbin/start-all.sh

    master节点进程:

     

    worker节点进程:

    ====================================================================================================

    小小尝试: 进行 Spark集群测试,运行第一个spark任务WorldCount

    ====================================================================================================


    8. Spark集群测试--运行第一个spark任务WorldCount

    8.1 准备一个测试文件,摘录一段百度词条中对spark的介绍内容。
    vim spark-test.txt

    在spark-test.txt中输入以下文字:
    hi,sea
    Apache Spark 是专为大规模数据处理而设计的快速通用的计算引擎。Spark是UC Berkeley AMP lab (加州大学伯克利分校的AMP实验室)所开源的类Hadoop MapReduce的通用并行框架,Spark,拥有Hadoop MapReduce所具有的优点;但不同于MapReduce的是——Job中间输出结果可以保存在内存中,从而不再需要读写HDFS,因此Spark能更好地适用于数据挖掘与机器学习等需要迭代的MapReduce的算法。
    Spark 是一种与 Hadoop 相似的开源集群计算环境,但是两者之间还存在一些不同之处,这些有用的不同之处使 Spark 在某些工作负载方面表现得更加优越,换句话说,Spark 启用了内存分布数据集,除了能够提供交互式查询外,它还可以优化迭代工作负载。
    Spark 是在 Scala 语言中实现的,它将 Scala 用作其应用程序框架。与 Hadoop 不同,Spark 和 Scala 能够紧密集成,其中的 Scala 可以像操作本地集合对象一样轻松地操作分布式数据集。
    尽管创建 Spark 是为了支持分布式数据集上的迭代作业,但是实际上它是对 Hadoop 的补充,可以在 Hadoop 文件系统中并行运行。通过名为 Mesos 的第三方集群框架可以支持此行为。Spark 由加州大学伯克利分校 AMP 实验室 (Algorithms, Machines, and People Lab) 开发,可用来构建大型的、低延迟的数据分析应用程序。---sea

    8.2 将测试文件上传到hdfs中
    hadoop fs -put spark-test.txt /sea

    8.3 启动spark-shell:
    spark-shell


    启动后注意观察这几行输出:
    Spark context Web UI available at http://master:4040
    Spark context available as 'sc' (master = local[*], app id = local-1597655266634).
    Spark session available as 'spark'.

    启动后可以通过浏览器访问http://master:4040/查看Jobs,Stages,Storage,Environment,Executors等情况

    8.3 输入测试代码

    val f = sc.textFile("hdfs://master:9000/sea/spark-test.txt")
    回车



    f.flatMap(line => line.split(" ")).map(word => (word, 1)).reduceByKey(_+_).collect().foreach(println)
    回车,观察结果

     

    到这里安装与第一个例子都搞定了,其他的可以根据实际需要进行配置与调优,如配置yarn调度,spark工作内存等

    本着资源共享的原则,欢迎各位朋友在此基础上完善,并进一步分享,让我们的实现更加优雅。如果有任何疑问和需要进一步交流可以留言沟通 Testner创始人(testner.club) Sea

     转自:https://www.cnblogs.com/sea520/p/13518590.html

     
  • 相关阅读:
    @FeignClient同一个name使用多个配置类报错,解决方案【转+改进】
    spring cloud 与spring boot 版本不匹配引发的问题总结
    无聊系列
    基于redis+lua实现的分布式限流
    elasticsearch 优化笔记
    redis+lua库存扣减和冲正
    es-dsl笔记
    wiki—-Confluence搭建
    Linux常用命令
    SQLSERVER|CDC 日志变更捕获机制
  • 原文地址:https://www.cnblogs.com/javalinux/p/14902381.html
Copyright © 2011-2022 走看看