Scala进阶之路-为什么要学习Scala以及开发环境搭建

                               作者:尹正杰

版权声明:原创作品,谢绝转载!否则将追究法律责任。

  最近人工智能和大数据那是相当的火呀,人工智能带动了Python的流行,区块链带动了golang的流行,而大数据带动了Scala的流行。可能你会否定我,你可能会说大数据当然是带动Java的流行啊,因为Hadoop生态圈的大部分组件都是由Java语言编写的,不过换句话说,哪个大数据开发工程师不会java语言呢?而近几年流行的Spark技术哪个做大数据开发的或者大数据运维的不了解呢?而Spark是由Scala语言编写的,因此我们得系统的学习一下Scala语言。

  我们可以在很多招聘网站,如智联招聘,猎聘网,拉勾网,boss直聘等网站对大数据开发工程师的要求是必须得会Scala语言,因此身为一个大数据开发工程师,Scala语言应该是信手拈来的东西。一个初级的Scala开发工程师可以熟练使用Scala编写Spark程序;

一个中级Scala开发工程师可以动手编写一个简易Spark通信框架;而一个高级Scala开发工程师可以达到阅读Spark内核源码的实力。那么问题来了?你的Scala已经达到何种境界了呢?如果你到现在还不知道Scala是什么东东的话,可以跟随我的脚步,一起来系统的学习一下Scala语言吧。

一.Scala语言的特点

 1>.什么是Scala

  答:Scala 是一种多范式的编程语言,其设计的初衷是要集成面向对象编程和函数式编程的各种特 性 。 Scala 运 行 于 Java 平 台 ( Java 虚 拟 机 ), 并 兼 容 现 有 的 Java 程 序 。

2>.为什么要学Scala

  答:原因有三:优雅,速度快,能融合到Hadoop生态圈。

.优雅:
这是框架设计师第一个要考虑的问题,框架的用户是应用开发程序员,API 是否优雅直接影响用户体验。
.速度快:
Scala 语言表达能力强,一行代码抵得上 Java 多行,开发速度快;Scala 是静态编译的,所以和 JRuby,Groovy 比起来速度会快很多。
. 能融合到 Hadoop 生态圈:
Hadoop 现在是大数据事实标准,Spark 并不是要取代 Hadoop,而是要完善 Hadoop 生态。JVM 语言大部分可能会想到 Java,但 Java 做出来的 API 太丑,或者想实现一个优雅的 API 太费劲。

  在互联网上,有人拿Java程序员和Scala程序员进行对比,虽然有点夸张,但是确实能体现出大家对Scala的喜爱,如下图:

二.安装Scala SDK 

1>.登录Scala官网(https://www.scala-lang.org/)

2>.不推荐直接使用最新版本的Scala

3>.查看所有的Scala官网之前发布的版本

4>.选择与JKD8.0版本的Scala

5>.确保使用的Java版本

6>.选择操作系统对应的安装包

7>.Window下安装 Scala SDK

  访问 Scala 官网 http://www.scala-lang.org/下载 Scala 编译器安装包,目前最新版本是 2.12.x,但是目前大多数的框架都是用 2.11.x 编写开发的,Spark2.x 使用的就是 2.11.x,所以这里推荐 2.11.x 版本,下载 scala-2.11.8.msi 后点击下一步就可以了.。安装目录如下:

  添加变量如下:

  配置环境变量如下:

  验证是否配置成功:

8>.Linux下安装 Scala SDK

   下载 Scala 地址 http://downloads.typesafe.com/scala/2.11.8/scala-2.11.8.tgz 然后解压 Scala 到指定目录并配置环境变量,将 scala 加入到 PATH 中。具体操作如下:

[yinzhengjie@s101 ~]$ cd /home/yinzhengjie/download/
[yinzhengjie@s101 download]$ wget https://downloads.lightbend.com/scala/2.11.8/scala-2.11.8.tgz
[yinzhengjie@s101 download]$ ll
total
-rw-r--r--. yinzhengjie yinzhengjie Jul : scala-2.11..tgz
[yinzhengjie@s101 download]$
[yinzhengjie@s101 download]$ tar -zxf scala-2.11..tgz -C /soft/
[yinzhengjie@s101 download]$ ln -s /soft/scala-2.11./ /soft/scala
[yinzhengjie@s101 download]$ ll /soft/ | grep scala
lrwxrwxrwx. yinzhengjie yinzhengjie Jul : scala -> /soft/scala-2.11./
drwxrwxr-x. yinzhengjie yinzhengjie Mar scala-2.11.
[yinzhengjie@s101 download]$
[yinzhengjie@s101 download]$ tail - /etc/profile
#ADD Scala PATH
export Scala_HOME=/soft/scala
PATH=$PATH:$Scala_HOME/bin
[yinzhengjie@s101 download]$ source /etc/profile
[yinzhengjie@s101 download]$
[yinzhengjie@s101 download]$ scala -version
Scala code runner version 2.11. -- Copyright -, LAMP/EPFL
[yinzhengjie@s101 download]$

三.Idea中创建一个Scala工程

1>.安装Idea

  安装破解版方式可以参考:https://www.cnblogs.com/yinzhengjie/p/9080387.html

2>.下载 IEDA 的 scala 插件

  下载地址:http://plugins.jetbrains.com/idea_ce

3>.IDEA Scala 插件的离线安装

   点击设置:

  点击插件:

  点击从磁盘中安装插件:

4>.IDEA Scala 插件的在线安装

  等待安装完毕:

   注意:不管是离线安装还是在线安装都需要重启Idea哟!

四.Idea中创建一个Scala工程

1>.创建一个新的模块

2>.选择Scala版本(导入Scala SDK)

3>.创建Scala文件

4>.选择Object类型

5>.编写Scala测试代码

/*
@author :yinzhengjie
Blog:http://www.cnblogs.com/yinzhengjie/tag/Scala%E8%BF%9B%E9%98%B6%E4%B9%8B%E8%B7%AF/
EMAIL:y1053419035@qq.com
*/
object Demo {
/**
* main 函数是程序的入口函数
*/
def main(args: Array[String]): Unit = {
print("Hello,Scala! I'm yinzhengjie!")
}
} /*
以上代码执行结果如下:
Hello,Scala! I'm yinzhengjie!
*/

Scala进阶之路-为什么要学习Scala以及开发环境搭建的更多相关文章

  1. Weex开发之路(1):开发环境搭建

    一.Weex介绍 Weex是阿里巴巴在2016年6月份对外开源的一款移动端跨平台的移动开发工具,Weex的出现让我们的应用既有了Native的性能和H5的动态性,只要通过前端JS语法就能写出同时兼容i ...

  2. Spark学习之路(二)—— Spark开发环境搭建

    一.安装Spark 1.1 下载并解压 官方下载地址:http://spark.apache.org/downloads.html ,选择Spark版本和对应的Hadoop版本后再下载: 解压安装包: ...

  3. Android开发学习之路--MAC下Android Studio开发环境搭建

    自从毕业开始到现在还没有系统地学习android应用的开发,之前一直都是做些底层的驱动,以及linux上的c开发.虽然写过几个简单的app,也对android4.0.3的源代码做过部分的分析,也算入门 ...

  4. [笔记]我的Linux入门之路 - 05.Eclipse的Python开发环境搭建与Numpy、Scipy库安装

    一.Python环境 直接终端查询下python安装没:python --version Python 2.7.12 Ubuntu竟然已经装了Python2.7,那就好说了.不然自己装和装jdk差不多 ...

  5. Scala进阶之路-高级数据类型之集合的使用

    Scala进阶之路-高级数据类型之集合的使用 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. Scala 的集合有三大类:序列 Seq.集 Set.映射 Map,所有的集合都扩展自 ...

  6. Scala进阶之路-Scala中的枚举用法案例展示

    Scala进阶之路-Scala中的枚举用法案例展示 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. Scala中的枚举值和Java中的枚举值有点差别,不过使用起来也都差大同小异,我这 ...

  7. Scala进阶之路-Scala中的高级类型

    Scala进阶之路-Scala中的高级类型 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.类型(Type)与类(Class)的区别 在Java里,一直到jdk1.5之前,我们说 ...

  8. Scala进阶之路-Scala中的Ordered--Ordering

    Scala进阶之路-Scala中的Ordered--Ordering 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任.   说道对象的比较,在Java中大家最熟悉不过的就是实现类本身实 ...

  9. Scala进阶之路-反射(reflect)技术详解

    Scala进阶之路-反射(reflect)技术详解 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. Scala中的反射技术和Java反射用法类似,我这里就不一一介绍反射是啥了,如果对 ...

随机推荐

  1. More Effective C++ Item14:明智运用exception specifications

    使用exception specifications你必须非常仔细去确保,函数调用的子函数.注册的回调函数不会违背约定.而设计模板内部的异常更难确保. 设计回调机制的时候,如果调用方规定了不抛出异常, ...

  2. Mysql_游标

    MySQL中的游标是一个十分重要的概念.游标提供了一种对从表中检索出的数据进行操作的灵活手段,就本质而言,游标实际上是一种能从包括多条数据记录的结果集中每次提取一条记录的机制.MySQL中的游标的语法 ...

  3. jmeter的开启

    先申明我以jmeter的3.2版本来描述本文内容,通常不要选择太新的版本,因为新版本容易出现不稳定和不兼容因素.启动jmeter的前提是JDK已经安装和配置,具体的JDK已经安装和配置自行查资料,此处 ...

  4. Python初学者随笔Week1

    Python从入门到放弃 本文主要是描述的是作为初学者对python学习的过程与经历分享,包括一些历程的分享与重要的时间节点记录,对于python学习的笔记与心得. 如果你也是初学者,我们可以一起学习 ...

  5. 作业要求 20181204-5 Final阶段贡献分配规则及实施

    此作业要求参见:https://edu.cnblogs.com/campus/nenu/2018fall/homework/2479 贡献规则 贡献分分配规则: 组内一共八名同学,贡献分共计80分. ...

  6. Sprint最后一天

    界面流程:  数据库里的信息: 还存在的问题: 1:选择包车城市时:下面的界面没对应到包车城市类型 2:看不到个人订票信息

  7. Ubuntu忘记MySQL密码重设方法

    ====================忘了mysql密码,从网上找到的解决方案记录在这里==================== 结束当前正在运行的mysql进程 # /etc/init.d/mys ...

  8. 转帖 OKR

    什么是OKR OKR全称是Objectives and Key Results,即目标与关键成果法.OKR是一套定义和跟踪目标及其完成情况的管理工具和方法.1999年Intel公司发明了这种方法,后来 ...

  9. FuelPHP 系列(一) ------ Oil 命令

    之前用过 Laravel,框架自带的 artisan 命令,用得爽到爆.现在工作需要,要学习 FuelPHP,首先看到框架目录结构,有 coposer.json 框架可以用 composer 管理,一 ...

  10. dotTrace 每行执行时间和执行次数

    如果代码中出现效率问题,使用dotTrace来跟踪分析代码的效率问题还是很方便的.使用dotTrace不但可以看到每一个方法被调用的次数和总时间,而且可以引入源代码,查看源代码中每一行执行的次数和时间 ...