一篇文章搞懂大数据(hadoop和spark)

由于现在互联网公司数据规模量的扩展,以MySQL这种数据库很快就超过了千万,再优化也就只能分表分库了,这样是不是还是显得麻烦,这时候分布式作用就提现了,他告诉你只要扩展节点就能更容纳更多数据了。

Hadoop权威指南里也说了,当货物量增多,是养更强壮的马来拉货更容易还是用更多的马来拉货更容易,显然是后者。这就是分布式的思路,而Hadoop集分布式存储、管理为依托,打造了开源大数据平台,而Spark是什么呢?Spark是Hadoop中另一个计算模式MapReduce的改进版,Hadoop在做ETL表处理时,他的shuffle过程每做一次都要将中间过程持久化下来,后来Spark根据这种规则特点将中间过程在内存中进行迭代计算,这样计算速度将大幅提高。

Spark以其内存迭代思想,提供丰富的开源API接口,实现各种场景的大数据批处理计算,由于Spark本身就是Scala写的,配合Scala函数式编程开发风味尤佳。之所以选用函数式,是因为函数式在数据流的处理是比命令式的更符合数据流的特性。比如SQL就是经典的函数式编程语言。

 

hadoop和大数据的关系?和spark的关系? - 小枣君的回答

hadoop和Spark是两种不同的大数据处理框架,他们的组件都非常多,往往也不容易学,我把他们两者整理在一幅图中,给大家一个全貌的感觉。至于各组件的详细介绍、相关联系和区别,以及它们在大数据平台建设中的具体实施关注点,待点赞数达到1000,我再对帖子进行详细的更新,请大家随手帮忙点个赞。

一篇文章搞懂大数据(hadoop和spark)_第1张图片

 

以上这些大数据组件是日常大数据工作中经常会碰到的,每个组件大概的功能,我已经在图中做了标识。下面,针对这幅图我给大家两点重要提示:

a.蓝色部分,是Hadoop生态系统组件,黄色部分是Spark生态组件,虽然他们是两种不同的大数据处理框架,但它们不是互斥的,Spark与hadoop 中的MapReduce是一种相互共生的关系。Hadoop提供了Spark许多没有的功能,比如分布式文件系统,而Spark 提供了实时内存计算,速度非常快。有一点大家要注意,Spark并不是一定要依附于Hadoop才能生存,除了Hadoop的HDFS,还可以基于其他的云平台,当然啦,大家一致认为Spark与Hadoop配合默契最好摆了。

b.技术趋势:Spark在崛起,hadoop和Storm中的一些组件在消退。大家在学习使用相关技术的时候,记得与时俱进掌握好新的趋势、新的替代技术,以保持自己的职业竞争力。

HSQL未来可能会被Spark SQL替代,现在很多企业都是HIVE SQL和Spark SQL两种工具共存,当Spark SQL逐步成熟的时候,就有可能替换HSQL;

MapReduce也有可能被Spark 替换,趋势是这样,但目前Spark还不够成熟稳定,还有比较长的路要走;

Hadoop中的算法库Mahout正被Spark中的算法库MLib所替代,为了不落后,大家注意去学习Mlib算法库;

Storm会被Spark Streaming替换吗?在这里,Storm虽然不是hadoop生态中的一员,但我仍然想把它放在一起做过比较。由于Spark和hadoop天衣无缝的结合,Spark在逐步的走向成熟和稳定,其生态组件也在逐步的完善,是冉冉升起的新星,我相信Storm会逐步被挤压而走向衰退。

 

欢迎大家关注我的知乎专栏“大数据实践与职业生涯”并留言,专栏会陆续的推出过往十多年的大数据工作经验总结和我的一些研究实践成果。如果你是大数据新人,或者想转行进入大数据领域,或者大数据职业生涯上存在一些疑惑,都欢迎关注我的知乎live分享“大数据人的职业生涯规划” 、 “数据分析师-从零入门到精通”、“大数据人的数据科学家之路”。

你可能感兴趣的:(一篇文章搞懂大数据(hadoop和spark))