安装Scala
下载Scala,并解压到任意文件夹,并在环境变量中添加SCALA_HOME环境变量。在安装的时候我使用的Scala版本是2.10.4。值得注意的是Spark1.6是用的Scala2.10.5进行编译的,但是实际上2.10.4使用起来也没有问题。
将环境变量写入~/.bashrc和/etc/profile的做法在Hadoop的环境搭建中已经写出,这里不再赘述。
Spark的设置
Spark的设置相比Hadoop相对简单,在Spark的根目录下需要设置三个文件即可,即spark-env.sh、spark-defaults.conf、slaves。其修改的内容如下:
spark-env.sh
JAVA_HOME=/usr/lib/java/jdk1.8.0_73
SCALA_HOME=/usr/lib/scala/scala-2.10.4
HADOOP_CONF_DIR=/usr/local/hadoop/hadoop-2.6.0
SPARK_MASTER_IP=172.18.128.192
SPARK_MASTER_PORT=7077
SPARK_MASTER_WEBUI_PORT=8080
SPARK_WORKER_CORES=2
SPARK_WORKER_MEMORY=6g
SPARK_WORKER_PORT=7078
SPARK_WORKER_WEBUI_PORT=8081
SPARK_WORKER_INSTANCES=1
这里前面一部分主要设置了Java、Scala和Hadoop的位置
后面一部分设置了Master的IP、端口、WEB UI端口和Worker的工作核心数、工作内存大小、端口、WEB UI端口和实例数目
spark-defaults.conf
spark.master spark://alex:7077
这里主要设定了Spark Master的URL
slaves
alex
这里alex是host名称,也可以写成ip的形势,比如172.18.128.192
设置完成后,可以使用start-master.sh和start-slaves.sh命令后输入jps查询是否存在Master和Worker进程。
值得注意的是,start-slaves.sh命令后需要加上Master的URL
另外,Hadoop和Spark还有一些Web UI,其中我们之前设置了Spark Master的Web UI为8080端口,我们平时会用到的端口地址如下:
Web UI | Port |
---|---|
YARN | 8088 |
HDFS | 50070 |
MASTER | 8080 |
JOBS | 4040 |
我们访问的话,只需要在浏览器中输入本机地址+端口号即可,例如浏览器中输入172.18.128.192:50070,即可访问HDFS文件系统
Spark Shell
为了和Hadoop的启动命令区分开来,我并没有将Spark的位置加入到环境变量中。因此我们需要到Spark的根目录启动Spark Shell,其命令如下:
./bin/spark-shell
接下来,我们就可以使用scala语言进行简单的程序测试了,官方给出了一个例子:
scala> val textFile = sc.textFile("README.md")
scala> textFile.count() // Number of items in this RDD
这里的意思大概是将根目录下的README.md文件载入到RDD中,并统计RDD中这个项目的行数。