zoukankan      html  css  js  c++  java
  • Spark学习之概念了解

    Spark简介:

    Spark是一个快速且通用的集群计算模型:

    1、Spark是快速的:
    快速是指处理几T到几批数据量的时候,他的处理时间是几秒钟或几分钟,相对于hadoop的几分钟到几小时是非常快速的,
    通用是指Spark的应用场景比较多
    Spark扩展了MapReduce的计算模型
    Spark是基于内存计算的
    当我们在处理一个大批量数据的时候,难免呢会产生一些中间的数据结果,怎么处理呢
    第一种:放在硬盘中,硬盘会带来额外的写入写出的消耗
    第二种:直接存放到内存中,放到内存中肯定比放到硬盘中要快一些。所以Spark的速度是很快的
    举例(瑞士军刀,大刀,小刀等等)
    Spark特点
    2、Spark是通用的:
    Spark容纳了其他的分布式系统拥有的功能,批处理(hadoop),迭代式处理(机器学习系统),交互式查询(hive查询)和流处理(storm)
    当我们搭建一个Spark集群时,就相当于搭建了这么多的功能
    优点:大大的降低了集群的维护成本,因为在生产环境中,集群的维护是相当耗时
    Spark是高度开放的 :
    提供了python java Scala sql的API,
    与其他的大数据工具整合的很好,包括Hadoop,kafka等

    Spark组件

    spark core:

    包括spark基本功能,包括任务调度,内存管理,容错机制
    内部定义了RDDs(弹性分布式数据集),
    提供多个APIs来创建和操作这些RDDs
    应用场景,为其他组件提供底层服务

    spark sql:

    spark处理结构化数据的库,类似Hive SQL,MySql,
    应用场景,主要为企业提供报表统计

    spark streaming:

    实时数据流处理组件,类似Storm,提供API操作实时流数据,
    应用场景,企业中用来从Kafka中接收数据做实时统计

    Mlib:

    包含通用机器学习功能的包,包括聚类,回归,模型评估和数据导入。同时支持集群平台上的横向扩展
    之前做机器学习都是Python比较多一点,Python的最大缺点是在单机上的,处理的数据量是有限的
    而Mlib呢,是集群的,他的应用场景就是机器学习

    Graphx:

    处理图的库(例如社交网络的图),并进行图的并行计算
    像spark steaming,spark sql一样,他也继承了RDD API
    他提供了各种图的操作,和常用的图的算法,例如PangeRank算法
    应用场景:就是图计算

    Cluster Manager:

    spark自带的集群管理

    Spark紧密集成的优点:

    spark底层优化,基于spark底层的组件也得到相应的优化,
    紧密集成节省了组件的部署,测试时间
    向spark增加新的组件时,其他组件,可立刻享用新组件的功能

    Hadoop&Spark比较

    Hadoop应用场景:

    离线处理,时效性要求不高的场景:Hadoop中间数据落到硬盘上,导致Hadoop处理大数据时,时效性不高,时间在几分钟到几小时不等,但数据可以存储。
    Spark应用场景:
    时效性要求高的场景和机器学习:Spark基于内存,中间数据多在内存中,数据处理块,但Spark不具备hdfs存储功能,需借助hdfs

    Doug Cutting 的观点:

    spark这是个生态系统,每个组件都有其作用,各姗其职即可,
    Spark不具有HDFS的存储能力,要借助HDFS等持久数据
    大数据将会孕育出更多的新技术

  • 相关阅读:
    微信红包限额提升方法
    微信从业人员推荐阅读的100本经典图书
    微信裂变红包
    微信公众平台开发最佳实践(第2版)
    微信公众平台开发(108) 微信摇一摇
    微信支付样例
    微信行业解决方案
    牛逼顿
    微信支付开发(4) 扫码支付模式二
    微信公众平台开发(107) 分享到朋友圈和发送给好友
  • 原文地址:https://www.cnblogs.com/longronglang/p/8453202.html
Copyright © 2011-2022 走看看