我爱编程

说说Apache、Hadoop和Spark的那些事

2017-10-22  本文已影响69人  小小码农甲

我想把技术写成故事,说给自己听!

一次偶然的机会,在看Spark的时候,被Apache Hadoop这个字眼吸引。Apache这个经常出现在Java程序员视野中的单词究竟是什么,其和Hadoop、Spark又到底是怎样的关系呢?带着这几个疑惑,今天我特地理了理Apache、Hadoop和Spark这三者的关系。

Apache

Apache是由Apache软件基金会(Apache Software Foundation)这个非盈利性组织运作的一个开源项目,即Apache项目。Apache项目以及其子项目都遵循Apache许可证(Apache License)。

Apache的子项目包括:

Hadoop

Hadoop即Apache Hadoop,是由Apache软件基金会开发维护的一个支持对大数据进行分布式处理的软件框架,其核心模块包括:

我们经常拿Spark和Hadoop比较,其实是拿Spark和Hadoop MapReduce比较,Spark本身可以和HDFS、Hadoop Yarn一起使用。

Spark

Spark即Apache Spark,是由Apache软件基金会开发维护的一个专门为大规模数据进行快速处理的计算引擎。与Hadoop MapReduce相比,Spark拥有以下优势:

快速

与Hadoop MapReduce相比,得益于Spark自身的DAG执行引擎,其基于硬盘的计算速度就已经可以比前者快10倍以上,基于Spark内存计算的计算速度甚至可以比前者快100倍以上。

通用

在Spark强大的分布式数据处理能力基础上,Spark为大规模数据处理提供了一个完整的技术栈。其四大子框架:Spark SQL、Spark GraphX、Spark MLLib和Spark Streaming可以基于RDD或DataFrame实现无缝对接。

易用

Spark提供了多种语言的API,支持多语言编程。

集成Hadoop

Spark可以支持Hadoop Yarn和HDFS,使得从Hadoop迁移到Spark上变得更加简单。

总结

Apache可以理解成Apache软件基金会,也是Apache HTTP Server的简称,也可以理解成Apache软件基金会运作的Apache开源项目,其中,Apache Hadoop和Apache Spark就是Apache下两个有名的开源项目。与Apache Hadoop相比,Apache Spark在大规模数据并发处理上拥有诸多优势。

上一篇 下一篇

猜你喜欢

热点阅读