学习一个工具的最好途径,就是使用它。这就好比《极品飞车》玩得好的同学,未必真的会开车,要学习车的驾驶技能,就必须用手触摸方向盘、用脚感受刹车与油门的力道。在IT领域,在深入了解一个系统的原理、实现细节之前,应当先准备好它的运行环境或者源码阅读环境。如果能在实际环境下安装和运行Spark,显然能够提升读者对于Spark的一些感受,对系统能有个大体的印象,有经验的工程师甚至能够猜出一些Spark在实现过程中采用的设计模式、编程模型。

考虑到大部分公司在开发和生产环境都采用Linux操作系统,所以笔者选用了64位的Linux。在正式安装Spark之前,先要找台好机器。为什么?因为笔者在安装、编译、调试的过程中发现Spark非常耗费内存,如果机器配置太低,恐怕会跑不起来。Spark的开发语言是Scala,而Scala需要运行在JVM之上,因而搭建Spark的运行环境应该包括JDK和Scala。

本文只介绍最基本的与Spark相关的准备工作,至于Spark在实际生产环境下的配置,则需要结合具体的应用场景进行准备。

安装JDK

自Spark2.0.0版本开始,Spark已经准备放弃对Java 7的支持,所以我们需要选择Java 8。我们还需要使用命令getconf LONG_BIT查看linux机器是32位还是64位,然后下载相应版本的JDK并安装。

下载地址:

http://www.oracle.com/technetwork/java/javase/downloads/index.html

配置环境:

cd ~

vim .bash_profile

添加如下配置:

exportJAVA_HOME=/opt/java

exportPATH=$PATH:$JAVA_HOME/bin

exportCLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

输入以下命令使环境变量快速生效:

source .bash_profile

安装完毕后,使用java –version命令查看,确认安装正常,如图1所示。

图1 查看java安装是否正常

安装Scala

由于从Spark 2.0.0开始,Spark默认使用Scala 2.11来编译、打包,不再是以前的Scala 2.10,所以我们需要下载Scala 2.11。

下载地址:

http://www.scala-lang.org/download/

选择Scala 2.11的版本进行下载,下载方法如下:

wget https://downloads.lightbend.com/scala/2.11.8/scala-2.11.8.tgz

移动到选好的安装目录,例如:

mv scala-2.11.8.tgz~/install/

进入安装目录,执行以下命令:

chmod 755scala-2.11.8.tgz

tar -xzvfscala-2.11.8.tgz

配置环境:

cd ~

vim .bash_profile

添加如下配置:

exportSCALA_HOME=$HOME/install/scala-2.11.8

exportPATH=$SCALA_HOME/bin:$PATH

输入以下命令使环境变量快速生效:

source .bash_profile

安装完毕后键入scala,进入scala命令行以确认安装正常,如图2所示。

图2 进入Scala命令行

安装Spark

Spark进入2.0时代之后,目前一共有两个大的版本:一个是2.0.0,一个是2.1.0。本书选择2.1.0。

下载地址:

http://spark.apache.org/downloads.html

下载方法如下:

wget http://d3kbcqa49mib13.cloudfront.net/spark-2.1.0-bin-hadoop2.6.tgz移动到选好的安装目录,如:

mv spark-2.1.0-bin-hadoop2.6.tgz~/install/

进入安装目录,执行以下命令:

chmod 755 spark-2.1.0-bin-hadoop2.6.tgz

tar -xzvf spark-2.1.0-bin-hadoop2.6.tgz

配置环境:

cd ~

vim .bash_profile

添加如下配置:

export SPARK_HOME=$HOME/install/spark-2.1.0-bin-hadoop2.6

exportPATH=$SPARK_HOME/bin:$PATH

输入以下命令使环境变量快速生效:

source .bash_profile

安装完毕后键入spark-shell,进入scala命令行以确认安装正常,如图3所示。

图3 执行spark-shell进入Scala命令行

有了对spark运行环境的准备,下面就可以来看看《Spark2.1.0之初体验》

想要对Spark源码进行阅读的同学,可以看看《Spark2.1.0之代码结构及载入Ecplise方法》

关于《Spark内核设计的艺术 架构设计与实现》

经过近一年的准备,基于Spark2.1.0版本的《Spark内核设计的艺术 架构设计与实现》一书现已出版发行,图书如图:

 
纸质版售卖链接如下:

Spark2.1.0——运行环境准备的更多相关文章

  1. [IOT] - 在树莓派的 Raspbian 系统中安装 .Net Core 3.0 运行环境

    之前在 Docker 中配置过 .Net Core 运行环境,地址:[IOT] - Raspberry Pi 4 Model B 系统初始化,Docker CE + .Net Core 开发环境配置 ...

  2. 配置TC2.0运行环境

    一. 学习过程 下载TC2.0并打开如图: 这是一个集成的C语言环境包,包括TC.dosbox和一些编译工具,很明显这样我无法判断单个程序的功能,也无法区分哪些程序是必须的. 那么为了搞清楚哪些文件是 ...

  3. Spark2.1.0——Spark初体验

    学习一个工具的最好途径,就是使用它.这就好比<极品飞车>玩得好的同学,未必真的会开车,要学习车的驾驶技能,就必须用手触摸方向盘.用脚感受刹车与油门的力道.在IT领域,在深入了解一个系统的原 ...

  4. Spark2.1.0——剖析spark-shell

    在<Spark2.1.0——运行环境准备>一文介绍了如何准备基本的Spark运行环境,并在<Spark2.1.0——Spark初体验>一文通过在spark-shell中执行wo ...

  5. Hadoop生态圈-通过CDH5.15.1部署spark1.6与spark2.3.0的版本兼容运行

    Hadoop生态圈-通过CDH5.15.1部署spark1.6与spark2.3.0的版本兼容运行 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 在我的CDH5.15.1集群中,默 ...

  6. spark-2.2.0安装和部署——Spark集群学习日记

    前言 在安装后hadoop之后,接下来需要安装的就是Spark. scala-2.11.7下载与安装 具体步骤参见上一篇博文 Spark下载 为了方便,我直接是进入到了/usr/local文件夹下面进 ...

  7. windows 本地构建hadoop-spark运行环境(hadoop-2.6, spark2.0)

    下载hadoop http://hadoop.apache.org/releases.html --> http://mirrors.tuna.tsinghua.edu.cn/apache/ha ...

  8. Eclipse+maven+scala2.11.8+spark2.0.0的环境部署

    主要在maven-for-scalaIDE纠结了,因为在eclipse版本是luna4.x 里面有自己带有的maven. 根据网上面无脑的下一步下一步,出现了错误,在此讲解各个插件的用途,以此新人看见 ...

  9. Hadoop2.7.3+Spark2.1.0 完全分布式环境 搭建全过程

    一.修改hosts文件 在主节点,就是第一台主机的命令行下; vim /etc/hosts 我的是三台云主机: 在原文件的基础上加上; ip1 master worker0 namenode ip2 ...

随机推荐

  1. 将 MVVM 演化为 MVVMM

    众所周知,MVVM模式解决了Controller的臃肿并方便单元测试,为了方便后续代码维护,在上版本新功能开发中,项目开始使用MVVM模式进行开发. 但从上图可以看出,MVVM模式中,Controll ...

  2. gtk程序运行报 main_loop!=NULL 错误的解决办法

    现象是将按钮的clicked Action与gtk_main_quit函数绑定起来会发生如上错误. 原因不明. 如果将window的destroy Action与gtk_main_quit绑定是没有问 ...

  3. 《ZeroC Ice 权威指南》笔记

    Ice介绍         Ice(Internet Communications Engine)是ZeroC公司的杰作,继承了CORBA的血统,是新一代的面向对象的分布式系统中间件.Ice是RPC通 ...

  4. SharePoint 用户控件编写的简单介绍

    我们开发中,通常需要写各种各样的部件来实现我们的展示或者功能,下面就介绍下刚刚接触的QuickPart+用户控件的方式,算是自己的学习笔记,也和大家交流下心得. 1. 新建Web应用程序 2. 在项目 ...

  5. How to configure ODBC DSN to access local DB2 for Windows

    How to configure ODBC DSN to access local DB2 for Windows MA Genfeng (GuangdongUnitoll Services inco ...

  6. python MultiProcessing标准库使用Queue通信的注意要点

    今天原本想研究下MultiProcessing标准库下的进程间通信,根据 MultiProcessing官网 给的提示,有两种方法能够来实现进程间的通信,分别是pipe和queue.因为看queue顺 ...

  7. 我应该跟libuv说声对不起,我错怪了libuv(转)

    一开始,我得向Libuv库和Libuv库开发者以及相关粉丝们道一个歉,对不起,我错怪你们了.深深感到自己的无知,是多么羞愧的事情!!    事情的经过是这样的.    原先按照公司要求,我在开发Win ...

  8. TCP / IP,HTTP

    大学学习网络基础的时候老师讲过,网络由下往上分为物理层.数据链路层.网络层.传输层.会话层.表示层和应用层.通过初步的了解,我知道IP协议对应于网络层,TCP协议对应于传输层,而HTTP协议对应于应用 ...

  9. Java编程语言下Selenium 鼠标悬停以及右击操作

    // 基于Actions类创建一个对象 Actions action = new Actions(driver); // 鼠标悬停在药渡公司全称字段上 action.moveToElement(Yao ...

  10. id为194024的进程当前未运行

    .NET MVC 编译运行时 提示  >> id为194024的进程当前未运行 << 清理解决方案,重新运行