• spark随笔


    spark基于RDD成功构建起大数据处理的一体化解决方案,将MappReduce、Streaming、SQL、Machine Learning、Graph Processing等
    大数据计算模型统一到一个技术堆栈中;Spark的Spark SQL、MLlib、GraphX、Spark Streaming等四大子框架之间可以在内存中无缝集成
    并可以相互操作彼此的数据
        spark+hadoop,hadoop负责数据存储和资源管理,spark负责一体化、多元化的不同规模的数据计算,而计算是大数据的精髓所在
     
    RDD分布式函数式编程
        RDD(弹性分布式数据集),RDD被创建后,提供了两种类型的操作:转换(transformation)和动作(action),转换时从原来的RDD构建成新的
     RDD,而动作时通过RDD来计算的结果,并将结果返回给驱动程序或者保存到外部存储系统
    eg val right=lines.filter(lines=>lines.contains("right"))    //right是新的RDD
       right.first()    //action
        动作和转换的不同之处取决于Spark计算RDD的方式,spark在第一次使用代码中的动作时才开始计算,spark可以看到整个变换链,它可以
    计算仅需要其结果的数据,对于first()动作,spark只扫描到匹配的第一行,不用读整个文件,也就是RDDS的惰性转换
        spark的RDDS在默认情况下每次都要进行重新计算,如果要重用可以使用RDD.persist(持久化方法),可以持久化到内存或磁盘
        每次调用一个新的动作,整个RDD必须从头开始计算,为了提高效率,可以将中间结果持久化
     
    Spark子框架
       Spark Streaming
         RDD之间通过lineage相连接,RDD中任意的Partition出错,都可以并行地在其他机器上将确实的Partition计算出来,这个容错恢复方式比连续计算模型(Storm)效率更高
         Spark Streaming将流式计算分解成多个Spark Job,对于每一段数据的处理都会经过Spark DAG图分解,以及Spark的任务集的调度过程
         实时性,Spark Streaming Batch Size的选取在0.5~2秒之间(Storm相对的最小延迟在100ms)
         吞吐量,Spark Streaming比storm高2~5倍
     
         Spark编程时对于RDD的操作,Spark Streaming是对DStream的操作
         Spark Streaming初始化     在开始进行DStream操作前,对SparkStreaming进行初始化生成StreamingContext
              eg var ssc=new StreamingContext('Spark://...','WordCount',Seconds(1),[Homes],[Jars])     //batch size 1秒输入的数据进行一次Job处理
         Spark Streaming有特定的窗口操作,涉及两个参数:一个是滑动窗口的宽度,一个是窗口滑动频率,必须是batch size的整数倍
              eg 过去5秒为一个输入窗口,每1秒统计一下WordCount,我们会将过去5秒的每一秒的WordCount都进行统计,然后叠加
                   val wordCounts=words.map(x=>(x,1)).reduceByKeyAndWindow(-+-,Seconds(5s),Seconds(1))
     
    Spark运行模式
         在Yarn出来前,Hadoop MapReduce属于整个Hadoop生态体系核心,但由于调度开销巨大,中间数据写磁盘导致运行速度慢等缺点,并不适合实时计算等场景
         Spark是一个分布式内存性计算框架,与yarn结合,是的Spark可以与MapReduce运行于同一个集群中
    http://www.oracle.com/technetwork/java/javase/downloads/index.html
  • 相关阅读:
    洛谷P1441 砝码称重(搜索,dfs+bitset优化)
    洛谷P1441 砝码称重(搜索,dfs+dp)
    洛谷P1242 新汉诺塔(dfs,模拟退火)
    洛谷P1415 拆分数列(dp)
    openstack-往已有集群中添加控制节点,实现控制节点的高可用
    第九步:使用nfs作为cinder-controller后端存储
    第八步:安装openstack-dashboard
    第七步(2):安装openstack-cinder服务-控制节点
    第七步(1):安装openstack-cinder服务-存储节点
    第六步:创建实例进行测试
  • 原文地址:https://www.cnblogs.com/ai464068163/p/6999971.html
Copyright © 2020-2023  润新知