在上一篇文章中,小编为您详细介绍了关于《Xgboost 对于多分类问题?kaggle数据集很大》相关知识。本篇中小编将再为您讲解标题什么样是 Spark?用 C++ 实现 Spark 有意义么。
云计算。这种问题可以直接去官网看。
关于Spark:
Spark是UC Berkeley AMP lab所开源的类Hadoop MapReduce的通用的并行计算框架,Spark基于map reduce算法实现的分布式计算,
拥有Hadoop MapReduce所具有的优点;但不同于MapReduce的是Job中间输出和结果可以保存在内存中,从而不再需要读写HDFS,
因此Spark能更好地适用于数据挖掘与机器学习等需要迭代的map reduce的算法
Spark与Hadoop的对比
Spark的中间数据放到内存中,对于迭代运算效率更高。
Spark更适合于迭代运算比较多的ML和DM运算。因为在Spark里面,有RDD的抽象概念。
Spark比Hadoop更通用。
Spark提供的数据集操作类型有很多种,不像Hadoop只提供了Map和Reduce两种操作。比如map, filter, flatMap, sample, groupByKey, reduceByKey, union,join, cogroup, mapValues, sort,partionBy等多种操作类型,Spark把这些操作称为Transformations。同时还提供Count, collect, reduce, lookup, save等多种actions操作。
这些多种多样的数据集操作类型,给给开发上层应用的用户提供了方便。各个处理节点之间的通信模型不再像Hadoop那样就是唯①的Data Shuffle①种模式。用户可以命名,物化,控制中间结果的存储、分区等。可以说编程模型比Hadoop更灵活。
不过由于RDD的特性,Spark不适用那种异步细粒度更新状态的应用,例如web服务的存储或者是增量的web爬虫和索引。就是对于那种增量修改的应用模型不适合。
容错性。
在分布式数据集计算时通过checkpoint来实现容错,而checkpoint有两种方式,①个是checkpoint data,①个是loggingthe updates。用户可以控制采用哪种方式来实现容错。
可用性。
Spark通过提供丰富的Scala, Java,PythonAPI及交互式Shell来提高可用性。
Spark与Hadoop的结合
Spark可以直接对HDFS进行数据的读写,同样支持Spark on YARN。Spark可以与MapReduce运行于同集群中,共享存储资源与计算,数据仓库Shark实现上借用Hive,几乎与Hive完全兼容。
Spark的适用场景
Spark是基于内存的迭代计算框架,适用于需要多次操作特定数据集的应用场合。需要反复操作的次数越多,所需读取的数据量越大,受益越大,数据量小但是计算密集度较大的场合,受益就相对较小
由于RDD的特性,Spark不适用那种异步细粒度更新状态的应用,例如web服务的存储或者是增量的web爬虫和索引。就是对于那种增量修改的应用模型不适合。
总的来说Spark的适用面比较广泛且比较通用。
C++ 的坑太多而必要的 feature 又不足(比如可序列化的 closure),不太看好 C++ 版的 Spark,即便做出来,应该也挺难用的。
不过我个人挺期待有人来实现 Rust 版的 Spark。当然 Rust 现在也还没有可序列化的 closure,不过基于 LLVM IR + compiler plugin 目测不是特别困难。或者更进①步说,希望能够出现 native 的类 Spark 计算引擎。当然,跟 Hadoop 的交互会成为①个大问题。不过印象里 Hadoop 本身也有计划通过 Avro RPC 来暴露语言无关的通讯接口,所以这个问题今后或许会有所改善?
Spark 当初选择 Scala,很重要的①个原因当然是为了和 Hadoop 互操作。但 JVM 本身很多时候确实已经成为系统优化的①大桎梏,比如严重的 GC 停顿导致大数据量的分析任务跑不下去。其他答案中说单机性能不足,多上几个节点就好了。但是节点多了,往往也会遇上 scalability 的问题。所以提高单机性能仍然相当有必要。Spark 近期展开的 Project Tungsten 实际上就是为了在维持 JVM 这个大前提下利用 unsafe 尽量往 native 靠近以大幅提升性能,为未来⑤年做准备。目前来看,Tungsten 已经有了明显的效果。①方面是现有作业的性能往往可以有明显的提升,另①方面是原先在给定集群规模下由于受制于 JVM 内存管理而跑不了的数据量,现在也可以轻松跑起来了。\", \"extras\": \"\", \"created_time\": ①④③⑦②⑨④⑧⑥⑤ · \"type\": \"answer
编后语:关于《什么样是 Spark?用 C++ 实现 Spark 有意义么》关于知识就介绍到这里,希望本站内容能让您有所收获,如有疑问可跟帖留言,值班小编第一时间回复。 下一篇内容是有关《ThinkPad X230i(2306-6QC)和ThinkPad X230(2306-8PC)有什么样区别?联想thinkpad e535 进入BIOS设置U盘启动顺序》,感兴趣的同学可以点击进去看看。
小鹿湾阅读 惠尔仕健康伙伴 阿淘券 南湖人大 铛铛赚 惠加油卡 oppo通 萤石互联 588qp棋牌官网版 兔牙棋牌3最新版 领跑娱乐棋牌官方版 A6娱乐 唯一棋牌官方版 679棋牌 588qp棋牌旧版本 燕晋麻将 蓝月娱乐棋牌官方版 889棋牌官方版 口袋棋牌2933 虎牙棋牌官网版 太阳棋牌旧版 291娱乐棋牌官网版 济南震东棋牌最新版 盛世棋牌娱乐棋牌 虎牙棋牌手机版 889棋牌4.0版本 88棋牌最新官网版 88棋牌2021最新版 291娱乐棋牌最新版 济南震东棋牌 济南震东棋牌正版官方版 济南震东棋牌旧版本 291娱乐棋牌官方版 口袋棋牌8399 口袋棋牌2020官网版 迷鹿棋牌老版本 东晓小学教师端 大悦盆底 CN酵素网 雀雀计步器 好工网劳务版 AR指南针 布朗新风系统 乐百家工具 moru相机 走考网校 天天省钱喵 体育指导员 易工店铺 影文艺 语音文字转换器