Scala首次安装流程总结(hello world!)

Apache Spark是一个集群计算引擎,它抽象了底层分布式存储和集群管理,,使它可以插入plugin大量的专门的存储和集群管理工具。Spark支持HDFS, Cassandra, local storage, S3, 甚至传统的关系数据库作为存储层,也可以和集群管理工具YARN, Mesos一起工作,相对集群模式它还有单机模型,Spark已经打破了由Hadoop创造的排序记录。由于Spark在速度上的优势,所以越来越多的互联网公司使用Spark替代传统的HiveSQL进行取数工作。

MapReduce模型的痛点

MR代码需要大量的样板。

程序员不仅需要考虑Map和Reduce的基本操作概念,而且还需要知道MR的每个问题,这是很不平凡,常见的操作,比如加入两个数据集需要大量的工作。

MR模型不适合迭代处理。

程序员对于分布式特性数据是不透明的,需要经常考虑优化,如Map边的reduce,Map边的join操作。

虽然有很多工具来解决上述的问题,提供基于MR编程更高层次的抽象,如Cascading Scalding Hive等等,但是它们并没有提高性能,还是绑定在底层MR工作上。

Hadoop的本意是为批处理操作而诞生。

Spark是用Scala编写的,尽管Spark支持Java、Python等非Scala语言来调用其接口,但是,为了能够更加原生得体验到Spark的优势,使用最方便的还是Scala语言,此外,如果要深入到Spark内部机制,阅读Spark源码的话,需要深入地掌握Scala,即使不深入Spark内部,要理解Spark提供的接口,也要掌握Scala的基本语法。因此,不管是编写Spark程序中,使用哪种语言,Scala是绕不过去的,也是必须要掌握的。

Scala 是一种有趣的语言。它一方面吸收继承了多种语言中的优秀特性,一方面又没有抛弃 Java 这个强大的平台,它运行在 Java 虚拟机 (Java Virtual Machine) 之上,轻松实现和丰富的 Java 类库互联互通。它既支持面向对象的编程方式,又支持函数式编程。它写出的程序像动态语言一样简洁,但事实上它确是严格意义上的静态语言。Scala 就像一位武林中的集大成者,将过去几十年计算机语言发展历史中的精萃集于一身,化繁为简,为程序员们提供了一种新的选择。

Scala的第一个脚本:hello world!

新建一个hello.scala文件,并输入以下脚本。

@main def hello = println("Hello, world!")

保存文件后,对hello.scala文件进行编译。

$ scalac hello.scala

编译完成后,会自动生成若干新的文件。

$ ls -1
hello$package$.class
hello$package.class
hello$package.tasty
hello.scala
hello.class
hello.tasty

最后像java一样运行程序,输出最终的结果。

$ scala hello
Hello, world!
作者:Qingyun
                
comments powered by Disqus