zoukankan      html  css  js  c++  java
  • 为什么要使用Spark?

    现有的hadoop生态系统中存在的问题

    1)使用mapreduce进行批量离线分析;
    2)使用hive进行历史数据的分析;
    3)使用hbase进行实时数据的查询;
    4)使用storm进行实时的流处理;
    5)。。。。。。
    导致:维护成本高、学习成本高
    Spark的出现弥补了Hadoop生态系统中的缺陷,使用spark搞定”一切“
     
    选用spark的原因
    1、One stack to rule them all
        
      1) 应用于流式计算的Spark Streaming
      2) 应用于即席查询(Ad-hoc)的Spark SQL
      3) 应用于机器学习(数据挖掘)的MLlib
      4)应用于图处理的GraphX
      5)将R扩展成并行计算的SparkR
      6)还有权衡精度和速度的查询引擎BlinkDB
     
    2、速度快(运行/开发)
      运行速度快的原因:
      1)基于内存计算(从表象来看)
        2)DAG(从深层次来看):把执行过程做成一张图,再来优化
         开发速度快:scala代码更优雅(但是还得学习scala啦。。。。。。)
     
     
    Spark和MapReduce对比
    1)调度:启动map和reduce任务需要时间
    2)数据共享:从HDFS上读取数据执行,每次迭代均要重写将结果写回到HDFS上,后续的迭代如果需要前面运行的结果数据时需要再去HDFS上读取,以此类推,如果迭代N次。。。
    3)输出结果数据多副本:数据需要额外的复制、序列化、磁盘/IO的开销
     Spark和MapReduce的区别:迭代时数据写入内存,而不是HDFS上,进而减少大量的磁盘IO开销。
     
  • 相关阅读:
    深度学习(dropout)
    centos 常见软件安装
    最近读的书 与论文
    如何理解反向传播 Backpropagation 梯度下降算法要点
    ubuntu 15 安装cuda,开启GPU加速
    快速排序算法
    Linux网络中接收 "二进制" 流的那些事 --- 就recv的返回值和strlen库函数进行对话
    linux源码升级编译内核
    C/C++中慎用宏(#define)
    Qt之hello world
  • 原文地址:https://www.cnblogs.com/luogankun/p/3798405.html
Copyright © 2011-2022 走看看