简单了解了spark,scala语言等,并尝试配置相关环境,安装Scala,spark和支持Scala语言的eclipse:scala ide for eclipse(安装scala ide for eclipse可以省下很多工夫去不用安装maven和scala类似的相关插件)
Spark最初的设计目标是使数据分析更快——不仅运行速度快,也要能快速、容易地编写程序。为了使程序运行更快,Spark提供了内存计算,减少了迭代计算时的IO开销;而为了使编写程序更为容易,Spark使用简练、优雅的Scala语言编写,基于Scala提供了交互式的编程体验。虽然,Hadoop已成为大数据的事实标准,但其MapReduce分布式计算模型仍存在诸多缺陷,而Spark不仅具备Hadoop MapReduce所具有的优点,且解决了Hadoop MapReduce的缺陷。Spark正以其结构一体化、功能多元化的优势逐渐成为当今大数据领域最热门的大数据计算平台。
Spark支持使用Scala、Java、Python和R语言进行编程。由于Spark采用Scala语言进行开发,因此,建议采用Scala语言进行Spark应用程序的编写。Scala是一门现代的多范式编程语言,平滑地集成了面向对象和函数式语言的特性,旨在以简练、优雅的方式来表达常用编程模式。Scala语言的名称来自于“可伸展的语言”,从写个小脚本到建立个大系统的编程任务均可胜任。Scala运行于Java平台(JVM,Java 虚拟机)上,并兼容现有的Java程序。
但是,Scala编程语言的学习曲线相对比较陡峭,尤其是,目前很多高校教学大多采用Java等面向对象语言,而Scala则融入了许多函数式编程思维,面向对象编程和函数式编程,是两种截然不同的编程风格,因此,给教师和学生学习Scala语言造成了很大的障碍。
开发Spark应用程序时,可以采用Scala、Python、Java和R等语言,首选语言是Scala,因为Spark这个软件本身就是使用Scala语言开发的,采用Scala语言编写Spark应用程序,可以获得最好的性能。关于采用哪种语言编写Spark应用程序,这里强调两点:(1)Java代码太繁琐。在大数据应用场景中,不太适合使用Java,因为,完成同样的任务,Scala只需要一行代码,而Java则可能需要10行代码;而且,Scala语言可以支持交互式编程,大大提高了程序开发效率,而Java则不支持交互式执行,必须编译以后运行。(2)Python语言并发性能不好。在并发性能方面,Scala要明显优于Python,而且,Scala是静态类型,可以在编译阶段就抛出错误,便于开发大型大数据项目,此外,Scala兼容Java,运行在JVM上,可以直接使用Java中的Hadoop API来和Hadoop进行交互,但是,Python与Hadoop之间的交互非常糟糕,通常都需要第三方库(比如hadoopy)。