• spark简单学习


    为啥学spark

    中间结果输出:基于MapReduce的计算引擎通常会将中间结果输出到磁盘上,进行存储和容错。出于任务管道承接的,考虑,当一些查询翻译到MapReduce任务时,往往会产生多个Stage,而这些串联的Stage又依赖于底层文件系统(如HDFS)来存储每一个Stage的输出结果

    SparkMapReduce的替代方案,而且兼容HDFSHive,可融入Hadoop的生态系统,以弥补MapReduce的不足。

    spark  ----->   弥补Mapreduce不足(产生多个Stage)(具有快,易用,通用,兼容性)

    spark比mapreduce更加灵活,计算模型不限于Map和Reduce。存储是在内存中,而不是本地磁盘。能够减少IO开销。MapReduce计算中间结果,保存在磁盘中,Hadoop低层实现备份机制,保证数据容错;SparkRDD实现基于Lineage的容错机制和设置检查点方式的容错机制。

    1.Spark环境部署

    ①将包传到文件夹中,解压,改名   输入:tar -zxvf spark-2.3.2-bin-hadoop2.7.tgz -C /export/servers/              改名:mv spark-2.3.2-bin-hadoop2.7/ spark(到指定文件夹下改名哈)

    将spark-env.sh.template配置模板文件复制一份并命名为spark-env.sh           修改spark-env.sh文件,在该文件添加以下内容(根据自己的配置进行修改)vim spark-env.sh

     ③复制slaves.template文件,并重命名为slaves,编辑slaves配置文件,主要是指定Spark集群中的从节点IP,由于在hosts文件中已经配置了IP和主机名的映射关系,因此直接使用主机名代替IP

    ④分发文件  修改完成配置文件后,将spark目录分发至hadoop02和hadoop03节点  输入:scp -r /export/servers/spark/ hadoop03:/export/servers/
    ⑤启动Spark集群(在sbin下启动)

     

     

    2.第一个案例

    ①提交SparkPi程序。

     ②PI值计算成功

     ③Spark-Shell是一个强大的交互式数据分析工具,初学者可以很好的使用它来学习相关API。运行Spark-Shell命令。在spark/bin目录中,执行下列命令进入Spark-Shell交互环境: 

     进入普通spark集群                  bin/spark-shell --master spark://hadoop01:7077

     现在我们使用scala语言开发单词计数的spark程序   

    首先在hdfs的/spark/input路径下建立一个words.txt

     整合spark和hdfs  先修改spark-env.sh配置文件  之后重启集群服务以及重启spark集群服务

    再次启动交互式界面  bin/spark-shell --master local[2]

    spark-shell 本省就是一个driver,它会初始化一个SparkContext对象为sc,用户可以直接调用。编写scala代码实现单词计数

    3.第二个案例(求平均值)

    ①建一个数组,可以看成是科目和分数的对偶

     ②再建一个相似的数组

     ③再建一个,可以看成三个学生

     ④三个合成一个

     ⑤按照第一个分组

     ⑥求和除以长度  的平均值

    4.第三个案例(重要函数操作过程) 

    ①创建一个lines

     ②按照空格分割

     ③合成一个

     ④每个单词后面给个1

     ⑤分组分开

     ⑥计算得

    注第2到第5 可以直接通过这句话得到  val grouped = lines.flatMap(_.split(" ")).map((_,1)).groupBy(_._1)

     nice!

    终于成了,就离谱!

  • 相关阅读:
    sparksql解析流程
    推荐算法简介:基于用户的协同过滤、基于物品的协同过滤、基于内容的推荐
    数据中台
    拉链表
    大数据去重与布隆过滤器
    推荐算法简介
    java获取resources文件夹中文件的路径
    Flink中设置事件时间
    [转载]REDIS缓存穿透,缓存击穿,缓存雪崩原因+解决方案
    使用Gson或者jackson代替Fastjson
  • 原文地址:https://www.cnblogs.com/longshisan/p/14919707.html
Copyright © 2020-2023  润新知