购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

2.3 Spark集群的动手搭建

本节内容为构建Spark集群经典四部曲的第三步,搭建Spark分布式集群:

(1)构建Spark集群需要的基本软件。

(2)安装Spark集群需要的每个软件。

(3)启动并查看集群的状况。

2.3.1 Spark集群需要的软件

在前面构建好的Hadoop集群的基础上构建Spark集群,这里采用2014年5月30日发布的Spark 1.0.0版本,也就是Spark的最新版本。要想基于Spark 1.0.0构建Spark集群,需要的软件如下:

(1)Spark 1.0.0,笔者这里使用的是spark-1.0.0-bin-hadoop1.tgz,具体的下载地址是http://d3kbcqa49mib13.cloudfront.net/spark-1.0.0-bin-hadoop1.tgz 3,如图2-47所示。

图2-47 Spark 1.0.0下载界面

笔者是把下载好的Spark 1.0.0保存在了Master节点如图2-48所示的位置。

图2-48 Spark 1.0.0保存位置

(2)下载和Spark 1.0.0对应的Scala版本,官方要求的是必须为Scala 2.10.x,如图2-49所示。

图2-49 Scala版本

笔者下载的是“Sala 2.10.4”,具体官方下载地址为http://www.scala-lang.org/download/2.10.4.html,下载后在Master节点上保存位置,如图2-50所示。

图2-50 Scala保存位置

2.3.2 安装每个软件

1.安装Scala

第1步:打开终端,建立新目录“/usr/lib/scala”。

第2步:解压Scala文件。

第3步:把解压好的Scala移到刚刚创建的“/usr/lib/scala”中。

第4步:修改环境变量。

进入如下所示的配置文件中:

按下“i”进入INSERT模式,把Scala的环境编写信息加入其中,如下所示。

从配置文件中可以看出,设置了“SCALA_HOME”并把Scala的bin目录设置到了PATH中。按下“esc“键回到正常模式,保存并退出配置文件:

执行以下命令是配置文件的修改生效:

第5步:在终端中显示刚刚安装的Scala版本,如下所示。

发现版本是“2.10.4”,这正是我们期望的版本。

输入“scala”命令直接进入Scala的命令行交互界面:

此时输入“9*9”这个表达式:

此时发现Scala正确地帮助我们计算出了结果。

此时完成了Master上Scala的安装。

由于 Spark要运行在Master、Slave1、Slave2三台机器上,所以需要在Slave1和Slave2上安装同样的Scala,使用scp命令把Scala安装目录和“~/.bashrc”都复制到Slave1和Slave2相同的目录之下,当然也可以按照Master节点的方式手动在Slave1和Slave2上安装。

在Slave1上Scala安装好后的测试效果如下:

在Slave2上Scala安装好后的测试效果如下:

至此,我们在Master、Slave1、Slave2这三台机器上成功部署Scala。

2.安装Spark

Master、Slave1、Slave2这三台机器上均需要安装Spark。首先在Master上安装Spark,具体步骤如下:

第1步:把Master上的Spark解压,如图2-51所示。

图2-51 解压Spark

直接解压到当前目录下:

此时,创建Spark的目录“/usr/local/spark”:

把解压后的“spark-1.0.0-bin-hadoop1”复制到/usr/local/spark”下:

第2步:配置环境变量。

进入配置文件:

在配置文件中加入“SPARK_HOME”并把spark的bin目录加到PATH中:

配置后保存退出,然后使配置生效:

第3步:配置Spark。

进入Spark的conf目录:

把spark-env.sh.template拷贝到spark-env.sh:

使用vim打开spark-env.sh:

在配置文件中添加如下配置信息:

其中:

● JAVA_HOME指定的是Java的安装目录;

● SCALA_HOME指定的是Scala的安装目录;

● SPARK_MASTER_IP指定的是Spark集群的Master节点的IP地址;

● SPARK_WORKER_MEMOERY指定的Worker节点能够最大分配给Executors的内存大小,因为我们的三台机器配置都是2 GB,为了最充分地使用内存,这里设置为了2 GB;

● HADOOP_CONF_DIR指定的是我们原来的Hadoop集群的配置文件的目录。

保存退出。

接下来配置Spark的conf下的slaves文件,把Worker节点都添加进去:

打开后文件的内容:

我们需要把内容修改为:

可以看出我们把三台机器都设置为了Worker节点,主节点既是Master又是Worker节点,保存退出。

上述就是Master上的Spark的安装。

第4步:Slave1和Slave2采用和Master完全一样的Spark安装配置,在此不再赘述。

2.3.3 启动并查看集群的状况

第1步:启动Hadoop集群,这个在2.2节中讲解得非常细致,在此不再赘述。

启动之后在Master这台机器上使用jps命令,可以看到如下进程信息:

在Slave1 和Slave2上使用jps会看到如下进程信息:

第2步:启动Spark集群。

在Hadoop集群成功启动的基础上,启动Spark集群需要使用Spark的sbin目录下“start-all.sh”:

接下来使用“start-all.sh”来启动Spark集群!

读者必须注意的是此时必须写成“./start-all.sh”来表明是当前目录下的“start-all.sh”,因为在配置Hadoop的bin目录中也有一个“start-all.sh”文件!

此时使用jps可发现我们在主节点正如预期一样出现了“Master”和“Worker”两个新进程!

此时的Slave1和Slave2会出现新的进程“Worker”:

此时,可以进入Spark集群的Web页面,访问“http://Master:8080”,如图2-52所示。

图2-52 Spark集群的Web页面

从页面可以看到有三个Worker节点及这三个节点的信息。

此时,进入Spark的bin目录,使用“spark-shell”控制台:

此时进入了Spark的shell世界,根据输出的提示信息,可以通过“http://Master:4040”从Web的角度看一下SparkUI的情况,如图2-53所示。

图2-53 SparkUI的情况

当然,你也可以查看一些其他信息,例如Environment,如图2-54所示。

图2-54 Environment等其他信息

从图2-54可以看到,对于shell而言,Driver是Master:50777,表明Spark集群搭建成功。 JBV6gXUCIuG4djWie2hK2HB28Bb30RuaiX54h8L3fOza27ujGJgYafGL1CKnkZy6

点击中间区域
呼出菜单
上一章
目录
下一章
×