zoukankan      html  css  js  c++  java
  • spark、storm与Hadoop

    spark、storm与Hadoop

    1. Storm是什么,怎么做,如何做的更好?
    Storm是一个开源的分布式实时计算系统,它可以简单、可靠地处理大量的数据流。Storm有很多应用场景,如实时分析、在线机器学习、持续计算、分布式RPC、ETL,等等。
    Storm支持水平扩展,具有高容错性,保证每个消息都会得到处理,而且处理速度很快(在一个小集群中,每个节点每秒可以处理数以百万计的消息)。
    Storm的部署和运维都很便捷,而且更为重要的是可以使用任意编程语言来开发应用。

    2. Storm与Spark、Hadoop相比是否有优势?
    Storm与Spark、Hadoop这三种框架,各有各的优点,每个框架都有自己的最佳应用场景。
    所以,在不同的应用场景下,应该选择不同的框架。

    Storm是最佳的流式计算框架,Storm由Java和Clojure写成,Storm的优点是全内存计算,所以它的定位是分布式实时计算系统,按照Storm作者的说法,Storm对于实时计算的意义类似于Hadoop对于批处理的意义。
    Storm的适用场景:
    1)流数据处理
    Storm可以用来处理源源不断流进来的消息,处理之后将结果写入到某个存储中去。
    2)分布式RPC。由于Storm的处理组件是分布式的,而且处理延迟极低,所以可以作为一个通用的分布式RPC框架来使用。

    SparkSpark是一个基于内存计算的开源集群计算系统,目的是更快速的进行数据分析。Spark由加州伯克利大学AMP实验室Matei为主的小团队使用Scala开发开发,类似于Hadoop MapReduce的通用并行计算框架,Spark基于Map Reduce算法实现的分布式计算,拥有Hadoop MapReduce所具有的优点,但不同于MapReduce的是Job中间输出和结果可以保存在内存中,从而不再需要读写HDFS,因此Spark能更好地适用于数据挖掘与机器学习等需要迭代的Map Reduce的算法。
    Spark的适用场景:
    1)多次操作特定数据集的应用场合
    Spark是基于内存的迭代计算框架,适用于需要多次操作特定数据集的应用场合。需要反复操作的次数越多,所需读取的数据量越大,受益越大,数据量小但是计算密集度较大的场合,受益就相对较小。
    2)粗粒度更新状态的应用
    由于RDD的特性,Spark不适用那种异步细粒度更新状态的应用,例如Web服务的存储或者是增量的Web爬虫和索引。就是对于那种增量修改的应用模型不适合。
    总的来说Spark的适用面比较广泛且比较通用。

    Hadoop是实现了MapReduce的思想,将数据切片计算来处理大量的离线数据数据。Hadoop处理的数据必须是已经存放在HDFS上或者类似HBase的数据库中,所以Hadoop实现的时候是通过移动计算到这些存放数据的机器上来提高效率。
    Hadoop的适用场景:
    1)海量数据的离线分析处理
    2)大规模Web信息搜索
    3)数据密集型并行计算

  • 相关阅读:
    257. Binary Tree Paths
    324. Wiggle Sort II
    315. Count of Smaller Numbers After Self
    350. Intersection of Two Arrays II
    295. Find Median from Data Stream
    289. Game of Life
    287. Find the Duplicate Number
    279. Perfect Squares
    384. Shuffle an Array
    E
  • 原文地址:https://www.cnblogs.com/handsome1013/p/6927897.html
Copyright © 2011-2022 走看看