由于现在互联网公司数据规模量的扩展,以MySQL这种数据库很快就超过了千万,再优化也就只能分表分库了,这样是不是还是显得麻烦,这时候分布式作用就提现了,他告诉你只要扩展节点就能更容纳更多数据了。
Hadoop权威指南里也说了,当货物量增多,是养更强壮的马来拉货更容易还是用更多的马来拉货更容易,显然是后者。这就是分布式的思路,而Hadoop集分布式存储、管理为依托,打造了开源大数据平台,而Spark是什么呢?Spark是Hadoop中另一个计算模式MapReduce的改进版,Hadoop在做ETL表处理时,他的shuffle过程每做一次都要将中间过程持久化下来,后来Spark根据这种规则特点将中间过程在内存中进行迭代计算,这样计算速度将大幅提高。
Spark以其内存迭代思想,提供丰富的开源API接口,实现各种场景的大数据批处理计算,由于Spark本身就是Scala写的,配合Scala函数式编程开发风味尤佳。之所以选用函数式,是因为函数式在数据流的处理是比命令式的更符合数据流的特性。比如SQL就是经典的函数式编程语言。
hadoop和大数据的关系?和spark的关系? - 小枣君的回答
hadoop和Spark是两种不同的大数据处理框架,他们的组件都非常多,往往也不容易学,我把他们两者整理在一幅图中,给大家一个全貌的感觉。至于各组件的详细介绍、相关联系和区别,以及它们在大数据平台建设中的具体实施关注点,待点赞数达到1000,我再对帖子进行详细的更新,请大家随手帮忙点个赞。
以上这些大数据组件是日常大数据工作中经常会碰到的,每个组件大概的功能,我已经在图中做了标识。下面,针对这幅图我给大家两点重要提示:
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会逐步被挤压而走向衰退。