Spark On Yarn 搭建教程
最近在作毕设,需要用到Spark on yarn的环境,搭建过程并不复杂,写下来给大家分享。我的平台是搭建在四台机器上,一个节点作为主节点,三个节点作为从节点。主要搭建过程分为以下几个步骤:
- 下载并安装java,scala
- 下载spark和hadoop
- 配置相关配置文件
- 将配置好的文件分发到各个节点
搭建Spark on yarn,需要你各个节点之间实现免密码ssh。由于我在实验室的集群上搭建的实验环境,已经配置好了免密ssh,所以这一步省略不谈,有疑问的同学移步http://www.cnblogs.com/keitsi/p/5653520.html。
下载并安装scala,java
我实验室的集群是将用户的home目录挂载到NFS下面,这样同一个用户在不同的节点home目录下的内容是一样的,这样方便了不同节点之间的数据交互,避免了你切换节点以后还要传送数据的麻烦,同时我们集群在/state/partiton1/下面挂载了一块本地的硬盘,各个节点的本地硬盘不共享。
我这里选择的是scala2.10.4 。将下载下来的解压到你本地硬盘,我这里解压到了/state/partition1/scala,解压后要配置你的环境变量,在你的.bashrc中添加修改下面环境变量:
export SCALA_HOME=/state/partition1/scala/scala-2.10.4
export PATH=$PATH:$SCALA_HOME/bin
Java的安装这里不做赘述,如果你原来已经配置好了java的环境就跳过,只需要注意spark1.5+以后放弃了对java6的支持,所以只要注意以下你用的spark所支持的版本就没有什么问题。安装完成之后添加环境变
export JAVA_HOME=…………
export PATH=$PATH:$JAVA_HOME/bin
下载spark与hadoop
**
到spark和hadoop的官网下载预编译的版本,这里要注意,spark和hadoop的版本要对应。下载到一个节点之后解压。
hadoop的配置
这里我将hadoop解压到了/state/partition/下面。并将下载好的文件解压到其中。具体路径是/state/partiton1/hadoop/hadoop-2.7.3 这个路径你可以自己选择。
解压完成添加一些环境变量。修改你的bashrc文件,在文件中添加下面的变量:
export HADOOP_HOME=/state/partition1/hadoop/hadoop-2.7.3
export HADOOP_CONF_DIR=${HADOOP_HOME}/etc/hadoop
export PATH=$PATH:$HADOOP_HOME/bin
export YARN_HOME=/state/partition1/hadoop/hadoop-2.7.3
export YARN_CONF_DIR=${YARN_HOME}/etc/hadoop
进入你的hadoop的安装目录下的配置文件夹,${HADOOP_HOME}/etc/hadoop 。要进行配置的主要有以下几个文件hadoop-env.sh,yarn-env.sh,core-site.xml,hdfs-site.xml,mapred-site.xml,yarn-site.xml,slaves。下面我会展示我的配置文件,并对其中的参数的作用进行解释:
hadoop-env.sh中添加下面语句:
export HADOOP_PID_DIR=/state/partition1/hadoop/pid
export JAVA_HOME=/usr/java/latest
HADOOP_PID_DIR用来只是存储HADOOP进程号的文件的存储位置,如果你没有指定这个位置,默认会将该文件放在/tmp目录下,如果长时间过后,该文件被系统清除那么你会遇到无法关闭hadoop的问题,因为此时并不知道你Hadoop的几个进程的进程号是多少了。
在yarn-env.sh中添加JAVA_HOME
export JAVA_HOME=/usr/java/latest
拷贝core-site.xml中添加下列语句。
<configuration>
<property>
<name>hadoop.tmp.dir</name>
<value>file:/state/partition1/hadoop/hadoop-2.7.3/tmp</