本来一开始就是准备给徒儿写spark的文章来着,掐掐肉肉的手指,算到前面前面已经铺垫了许久。前几日大雨刷洗了整个广州,谁知周一上班又回到了万里晴空,大家的话题瞬间由谈论各种积水转到了天气很热之类话题,然后会扯到吃个冰西瓜特爽,见到老板卖得好,就会怼上一句老板以前肯定是程序员,以至于都忘了一开始是本来聊得啥。但是不管什么故事总归会有个开场,正如spark进入我们项目世界那样。
在我们真正使用spark程序去做开发是我们在大量使用hive之后的很长一段时间。作为一名程序员,都是按捺不住那颗对新技术追求的心,尤其是spark一开始就号称比mapreduce快100倍。但是并不是所有的岗位都让你去做模型训练,也不是所有的etl都需要spark,实际情况到目前为止,hive依然是公司大量使用的etl和数据分析工具。新技术方案的引入往往是由于传统的手段不大适合的时候会引入,当我们的项目在看到了spark中可以程序化组合sql去执行作业运算的时候,spark在这个时候才真正引入我们的视野。浩浩荡荡的踩坑之路才由这里开始。
要进入spark世界,首先肯定去官网转转,虽然是在公众号里面读文章,但是我们学习是从正规的官网上面获得,所以对知识的可靠底气很足。
图一:spark的官网首页
我们可以发现官网还是比较会打广告的,首先100x faster,这还能说什么呢,对于程序员,一个程序快100倍的速度肯定高兴得睡不着觉了,我就这样被吸引过来的,哼哼!下面呢,告诉你写应用呢用Java,这个没问题;后面scala的话,大部分小伙伴肯定眉头紧锁,或者直接摇摇头;Python,大部分C++或者会用脚本的同学都会这个,而且一般Python上手比较简单,还行;R语言,这个就一般统计专业的同学是笑着的,程序员就沉默的;SQL,哈哈大部分人都会眼前一亮,程序员分析师sql这个都会,看到这里基本可以稳住80%以上技术人员的心了。后面那个,整合了SQL,streaming,后面来个复杂分析,高大上,逼格满满上去了,再加上后面的小格子图,尤其是MLib小括号(machine learning),GraphX(graph),虽然大部分小伙伴只是用sql那部分,但是,一说出搞spark,稍微外行点的人都会来句,厉害了,额滴哥~! 还没完,后面还有一部分:
图二:各个地方都是可以运行的
这部分呢,才是我们的开始,Spark说明了可以运行在任何地方,尤其是可以运行在Yarn上面。实际的情况是这样子,一般公司里面会已经有了Hadoop集群,已经用着了hive去处理很多问题,但是一开始不想大规模上线spark的内容,这种时候spark的运行的灵活性,可以让公司花比较少的代价,就可以上线spark的应用。还一点就是上面说到的获取数据的灵活,可以从hdfs,cassandra,hbase,hive中获取,这样使得spark的适应性变得很强。spark都做到了这种程度了,应该很多小伙伴都是迫不及待来用spark了吧。
接下来,我们来体验我们的spark程序~待续