Electronic Joint Business

Solution for E-Business

scala

Scala 指南

一种可伸缩语言

Scala 是一种函数对象混合的语言,具有一些强大的优点:

首先,Scala 可编译为 Java 字节码,这意味着它在 JVM 上运行。除了允许继续利用丰富的 Java 开源生态系统之外,Scala 还可以集成到现有的 IT 环境中,无需进行迁移。
其次,Scala 基于 Haskell 和 ML 的函数原则,大量借鉴了 Java 程序员钟爱的面向对象概念。因此,它可以将两个领域的优势混合在一起,从而提供了显著的优点,而且不会失去我们一直依赖的熟悉的技术。
最后,Scala 由 Martin Odersky 开发,他可能是 Java 社区中研究 Pizza 和 GJ 语言的最著名的人,GJ 是 Java 5 泛型的工作原型。而且,它给人一种 “严肃” 的感觉;该语言并不是一时兴起而创建的,它也不会以同样的方式被抛弃。
Scala 的名称表明,它还是一种高度可伸缩 的语言。我将在本系列的后续文章中介绍有关这一特性的更多信息。

下载并安装 Scala

可以从 Scala 主页 下载 Scala 包。截止到撰写本文时,最新的发行版是 2.6.1-final。它可以在 Java 安装程序版本 RPM 和 Debian 软件包 gzip/bz2/zip 包中获得,可以简单地将其解压到目标目录中,而且可以使用源码 tarball 从头创建。(Debian 用户可以使用 “apt-get install” 直接从 Debian 网站上获得 2.5.0-1 版。2.6 版本具有一些细微的差异,所以建议直接从 Scala 网站下载和安装。)

>>> 阅读全文

 

, , , , ,

Spark,一种快速数据分析替代方案

Spark 是一种与 Hadoop 相似的开源集群计算环境,但是两者之间还存在一些不同之处,这些有用的不同之处使 Spark 在某些工作负载方面表现得更加优越,换句话说,Spark 启用了内存分布数据集,除了能够提供交互式查询外,它还可以优化迭代工作负载。

Spark 是在 Scala 语言中实现的,它将 Scala 用作其应用程序框架。与 Hadoop 不同,Spark 和 Scala 能够紧密集成,其中的 Scala 可以像操作本地集合对象一样轻松地操作分布式数据集。

尽管创建 Spark 是为了支持分布式数据集上的迭代作业,但是实际上它是对 Hadoop 的补充,可以在 Hadoop 文件系统中并行运行。通过名为 Mesos 的第三方集群框架可以支持此行为。Spark 由加州大学伯克利分校 AMP 实验室 (Algorithms, Machines, and People Lab) 开发,可用来构建大型的、低延迟的数据分析应用程序。

Spark 集群计算架构
虽然 Spark 与 Hadoop 有相似之处,但它提供了具有有用差异的一个新的集群计算框架。首先,Spark 是为集群计算中的特定类型的工作负载而设计,即那些在并行操作之间重用工作数据集(比如机器学习算法)的工作负载。为了优化这些类型的工作负载,Spark 引进了内存集群计算的概念,可在内存集群计算中将数据集缓存在内存中,以缩短访问延迟。

Spark 还引进了名为 弹性分布式数据集 (RDD) 的抽象。RDD 是分布在一组节点中的只读对象集合。这些集合是弹性的,如果数据集一部分丢失,则可以对它们进行重建。重建部分数据集的过程依赖于容错机制,该机制可以维护 “血统”(即充许基于数据衍生过程重建部分数据集的信息)。RDD 被表示为一个 Scala 对象,并且可以从文件中创建它;一个并行化的切片(遍布于节点之间);另一个 RDD 的转换形式;并且最终会彻底改变现有 RDD 的持久性,比如请求缓存在内存中。

>>> 阅读全文

 

, , , , ,

Scala语言编程指南 (一)

文章评分:

Scala设计初衷
Java 语言已经是有一定年头的语言了,随着 C#,Ruby 等新的语言的出现,Java 的语法显得臃肿且平庸,和这些新兴语言相比,其开发效率并不十分突出。程序开发者想要一种更精炼和更灵活的语言去提高他们的生产效率。这也是如今所谓的 Ruby, Python 这样的脚本(Script)语言大行其道的原因之一。

当 Java 开始老朽不堪的时候,其虚拟机(JVM)的性能却得到大众的认可,JVM 的性能优化做得较为到位,因此许多程序开发者相信使用基于 JVM 的新语言是正确的前进道路。为此 Sun 雇佣了 JRuby 和 Jython (Ruby 和 Python 在 JVM 上的实现)的主要开发者。而 Scala 的出现对于 Java 开发者来说提供了一门更加新式的语言。

值得一提的是 Scala 开始为针对 JVM 设计的,但是随着 Scala 的发展,它也可以运行在 .NET 的 CLR 虚拟机上。当我们讨论有关 Scala 语法时,它们大致也能应用于 .NET 之上。

Scala 简介
Scala 是一种多范式的语言,因为 Scala 既支持面向对象编程,也支持函数式编程。它在拥有简洁,优雅,灵活的语法的同时,也提供了一个久经考验的静态类型系统和惯用语法,所以从小巧的解释性脚本到大型的复杂系统它都可以胜任。无独有偶,Microsoft 资助的大学项目 Nemerle 也走了同一条道路。

>>> 阅读全文

 

, , , , ,