今天由于所以要安装spark做一些实验。我已有的环境是:
操作系统:CentOS6.5
hadoop:hadoop2.4.1
JDK:1.7
集群环境:四个节点
闲话不说,以下是我的安装步骤:
说明:下边的这些安装都是先在master节点上安装。安装完成后将scala和spark传到其他节点。
Spark采用的是sala语言编写的,需要依赖scala的。所以首先需要安装scala
安装scala
下载地址:
http://www.scala-lang.org/download/ 我这里下载的是最新的2.11.4版本
解压:tar -zxvf scala-2.11.4.tgz
配置环境变量:
vi /etc/profile
添加
export SCALA_HOME=/hadoop/scala-2.11.4
export PATH=$PATH:$SCALA_HOME/bin
生效 source /etc/profile
很简单,scala就安装好了(虽然我不会用,没接触过啊~~~~~)
安装Spark
要选择与自己集群对用的下载
解压:tar -zxvf <安装包>
配置环境变量(这部可选,主要就是方便打开)
export SPARK_HOME=/hadoop/spark-1.1.0-bin-hadoop2.4
export PATH=$PATH:$SCALA_HOME/bin:$SPARK_HOME/bin
环境变量生效
配置Spark
进入到spark的conf中:cd /hadoop/spark-1.1.0-bin-hadoop2.4/conf
修改slaves,添加你的spark节点,我这里添加了三个
Master.domain.dev
Slave1.domain.dev
Slave2.domain.dev
cp spark-env.sh.template spark-env.sh
修改spark-env.sh,添加
export HADOOP_HOME=/usr/lib/hadoop
export JAVA_HOME=/usr/jdk64/jdk1.7.0_45
export SCALA_HOME=/hadoop/scala-2.11.4
master节点spark配置完成,很简单吧,接下来只需要把spark和scala的安装目录拷贝到slave1和salve2节点就可以了。需要注意的是,拷贝过去后的目录和master中的目录一样。
scp -r scala-2.11.4/ slave2:/hadoop/
scp -r spark-1.1.0-bin-hadoop2.4/ slave2:/hadoop/
拷贝成功后需要配置一下slave1和slave2节点中的环境变量,也就是配置/etc/profile文件。
大功告成,开始启动吧~~~~~~~~~~
测试spark
启动spark:spark-all.sh
哈哈,没报错,一次启动成功。
jps一下,会看到多出两个进程Master和Worker。
在其他两个节点中只有Worker进程的。
用一个例子跑一下吧。
我这里跑了一个WordCount的例子。跑例子前先在hdfs中存一个文件。
启动Spark-Shell
scala>val file = sc.textFile("hdfs://master:8020/testdata/input/README.md")
scala>val count = file.flatMap(line => line.split(" ")).map(word => (word, 1)).reduceByKey(_+_)
scala> count.collect()
运行这三天语句之后你会神奇的发现竟然出结果了。对scala语言不太了解,就不具体讲解了。要想深入学习spark,必须要先学习scala啊。