当要分析的资料大到一台电脑没办法处理(可能是档案过大没办法载入单台电脑的记忆体、或是单台运算时间太长)的时候,通常有两种解决方法。1.购买一台昂贵的超级电脑(96核CPU, 1TB Memory…) 2.购买多台较便宜的一般电脑来分工处理原本的工作。
- 第一种的解法,对于开发人员来说的好处是程式码完全不用改直接丢上去跑。但对于企业来说为了少数工作花好几百万的经费购买超级电脑非常的不划算,而且假设刚好你的资料量又超过1TB这时候原本的超级电脑就不能使用了,要再买更高级的超级电脑,也就是扩充性不佳
- 利用多台电脑打造一个运算群集(背后可能是1000台16核心48GB的电脑这样的等级), 此时你要多少运算资源都可以动态的调整,比方说某一个工作要100核心以及2TB的Memory, Spark都可以很快的配置资源,并且这个运算丛集是可以给全公司的人来使用,平均分摊下来的成本较低。而且这样的群集的已很容易地增加以及减少里面的电脑数量。
Spark官方网站提到Spark的好处有
速度快
Spark比起Hadoop在运算上快了许多,主要是把资料暂存在记忆体以及把资料处理的部份优化(ex:减少shuffle)
容易使用
Spark提供Scala,Python,R,Java的API介面,让开发者可以利用自己擅长的开发语言来开发。主流上是使用Scala, Python这两种
广泛应用
可以在Spark上面使用SQL、即时串流(Streaming)、Spark的机器学习套件(MLlib)、图论(计算图形中任两点的最短路径)的套件
下图为Spark python语言API工具PySpark简要学习指南:
![](https://img.haomeiwen.com/i1268159/4d92484868aafde8.jpeg)
网友评论