安装spark之前首先要安装scala。
再官方网站上下载对应的scala安装文件,这里下载的是scala-2.10.4版本,用命令行下载过程如下
wget http://www.scala-lang.org/download/2.10.4.html
然后向下寻找相应的链接,其中就有对应Unix系统的,w3m可以点解回车进行下载。
下载的.tgz文件解压到/usr/local/文件夹下(.tgz文件是.tar.gz的缩写,因此可以用tar命令解压)
sudo tar -zxvf ./scala-2.10.4.tgz -C /usr/local
这里是吧scala解压到/usr/local/scala-2.10.4文件夹下。
设置环境变量:
修改~/.bashrc文件,在其中添加如下变量:
export SCALA_HOME=/usr/local/scala-2.10.4
export PATH=$SCALA_HOME/bin
记得使环境变量生效。
检测安装是否成功命令 scala -version,如果出现以下内容,证明安装成功。
scala -version
随后直接输入scala进入scala解释器,然后做一个简单的例子:
scala> 1+2
res0: Int = 3
测试集群(192.168.3.63与192.168.3.64)上重新装了java1.7.0_79版本。scala用的是2.10.4因此选的spark是1.5.0版本。
首先从官网上下载对应的版本选择spark-1.5.0-bin-hadoop2.6.tgz下载,下载方法与scala一致,同样可以用win下载。这里附上官网链接,官网。
解压到/usr/local/目录下
sudo tar -zxf ~/spark-1.5.0-bin-hadoop2.6.tgz -C /usr/local
将文件夹改名:
在/usr/local/下执行
sudo mv ./spark-1.5.0-bin-hadoop ./spark
配置环境变量,在~/.bashrc中添加如下代码:
export SPARK_HOME=/usr/local/spark
:$SPARK_HOME/bin
使环境变量生效:
source ~/.bashrc
然后使环境变量生效。
配置conf/spark-env.sh文件
在usr/local/spark/conf文件夹下找到spark-env。sh文件。若没有该文件,则将 spark-env.sh.template 文件复制后重命名即可,向文件中添加scala、java、hadoop路径以及master ip等信息。
sudo cp ./spark-env.sh.template ./spark-env.sh
在spark-env.sh中添加如下代码:
export JAVA_HOME=/usr/lib/jvm/jdk1.8.0_91
export SCALA_HOME=/usr/local/scala-2.10.4
export SPARK_MASTER_IP=192.168.3.63
export SPARK_WORKER_MEMORY=2g
#hadoop集群的配置文件目录
export HADOOP_CONF_DIR=/usr/local/hadoop/etc/hadoop
最后一行的SPARK_MASTER_IP要和自己的主节点ip地址一致,否则会报错。
安装完成后可以运行spark的例子,运行spark-shell命令后回显示spark的图标与版本,但最后一定是进入了scala输入窗口才算安装成功。
登录官网在实例页面选择scala,跳回到/usr/local/spark下输入如下命令:
val textFile = sc.textFile("README.md")
读取当前命令下的README.md文件。
然后用下面的命令统计行数
textFile.count
输出行数。
*注:该例子运行时必须吧把spark-env.sh中的
export HADOOP_CONF_DIR=/usr/local/hadoop/etc/hadoop
注释掉否者会报错*
如果不是读本地文件而是读hdfs上的文件时,不用注释掉spark-env.sh的内容,假设在hdfs上的/user/hadoop/input文件加下有个,README.md文件,则用下面的命令:
val textFile = sc.textFile("hdfs://Master:9000/user/hadoop/input/README.md")
再运行统计,结果一样。
还可以进行多种统计操作,不再列出。