文是超简单的spark yarn配置教程:java
yarn是hadoop的一个子项目,目的是用于管理分布式计算资源,在yarn上面搭建spark集群须要配置好hadoop和spark。我在搭建集群的时候有3台虚拟机,都是centos系统的。下面就开始一步一步地进行集群搭建。node
1、配置hosts文件web
hosts文件是主机名到ip的映射,目的是为了方便地查找主机,而不用去记各个主机的IP地址,好比配置master 10.218.20.210 就是为10.218.20.210地址取名为master,在之后的url中就能够用master代替10.218.20.210。apache
这里咱们为了在配置文件中更方便地写url,因此须要在这里配置各个节点的host-ip映射。ubuntu
10.217.2.240 master 10.217.2.241 slave1 10.217.2.242 slave2
这里个人三个节点分别对应master slave1 slave2.vim
2、配置sshcentos
启动hdfs和spark的时候各个节点须要相互访问,因此要配置好ssh秘钥。能够为每一个主机生成各自的rsa秘钥也能够只生成一个rsa秘钥,并发送到全部主机。bash
3、安装JAVA并发
spark是基于java写的,这里把java解压到某目录而后配置环境变量,修改/etc/profileapp
export JAVA_HOME=/usr/lib/jvm/jdk1.8.0_77 export JRE_HOME=$JAVA_HOME/jre export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$PATH export CLASSPATH=$CLASSPATH:.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib
4、安装scala
使用spark最好仍是用scala语言,解压后配置环境变量,修改/etc/profile
export SCALA_HOME=/home/hadoop/scala-2.10.6 export PATH=$PATH:$SCALA_HOME/bin
5、安装配置HADOOP和YARN
yarn的包是包含在hadoop里面的,解压hadoop压缩包,tar -zcvf hadoop-2.7.5.tar.gz,配置环境变量,
export HADOOP_HOME=/home/hadoop/hadoop-2.7.5 export HADOOP_CONF_DIR=${HADOOP_HOME}/etc/hadoop export YARN_HOME=/home/hadoop/hadoop-2.7.5 export YARN_CONF_DIR=${YARN_HOME}/etc/hadoop
环境变量配置完了,如今要配置hadoop自身的配置文件,目录在hadoop目录下的etc/hadoop文件夹,里面有不少配置文件.咱们须要配置七个:hadoop-env.sh,yarn-env.sh,slaves,core-site.xml,hdfs-site.xml,maprd-site.xml,yarn-site.xml。
hadoop-env.sh:
export JAVA_HOME=/usr/lib/jvm/jdk1.8.0_77
yarn-env.sh:
export JAVA_HOME=/usr/lib/jvm/jdk1.8.0_77
slaves:
slave1 slave2
core-site.xml:
<configuration> <property> <name>fs.defaultFS</name> <value>hdfs://master:9000/</value> </property> <property> <name>hadoop.tmp.dir</name> <value>file:/home/hadoop/hadoop-2.7.2/tmp</value> </property> </configuration>
hdfs-site.xml:
<configuration> <property> <name>dfs.namenode.secondary.http-address</name> <value>master:9001</value> </property> <property> <name>dfs.namenode.name.dir</name> <value>file:/home/hadoop/hadoop-2.7.5/dfs/name</value> </property> <property> <name>dfs.datanode.data.dir</name> <value>file:/home/hadoop/hadoop-2.7.5/dfs/data</value> </property> <property> <name>dfs.replication</name> <value>3</value> </property> </configuration>
mapred-site.xml:
<configuration> <property> <name>mapreduce.framework.name</name> <value>yarn</value> </property> </configuration>
yarn-site.xml:
<configuration> <property> <name>yarn.nodemanager.aux-services</name> <value>mapreduce_shuffle</value> </property> <property> <name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name> <value>org.apache.hadoop.mapred.ShuffleHandler</value> </property> <property> <name>yarn.resourcemanager.address</name> <value>fang-ubuntu:8032</value> </property> <property> <name>yarn.resourcemanager.scheduler.address</name> <value>master:8030</value> </property> <property> <name>yarn.resourcemanager.resource-tracker.address</name> <value>master:8035</value> </property> <property> <name>yarn.resourcemanager.admin.address</name> <value>master:8033</value> </property> <property> <name>yarn.resourcemanager.webapp.address</name> <value>master:8088</value> </property> </configuration>
配置好了之后,须要调用hadoop namenode 格式化,配置改变之后就须要格式化namenode,其实就是建立一些目录,增添一些文件,之后配置不变的话就不须要再格式化。若是配置变了就须要删除tmp,dfs,logs文件夹,再进行格式化。
bin/hadoop namenode -format #格式化namenode
如今就能够启动hdfs系统和yarn系统了:
sbin/start-dfs.sh #启动dfs sbin/start-yarn.sh #启动yarn
启动成功后可使用jps命令查看各个节点上是否启动了对应进程。
master节点上:
[root@CTUGT240X sbin]# jps 23809 SecondaryNameNode 23971 ResourceManager 24071 NodeManager 23512 NameNode 23644 DataNode 24173 Jps
slave节点上:
[root@CTUGT241X hadoop]# jps 31536 Jps 31351 DataNode 31454 NodeManager
6、安装配置spark:
解压spark压缩包
tar -zcvf spark-2.2.0-bin-hadoop2.7.tar
配置spark配置文件:
cd ~spark-2.2.0-bin-hadoop2.7/conf #进入spark配置目录 cp spark-env.sh.template spark-env.sh #从配置模板复制 vim spark-env.sh #添加配置内容 在spark-env.sh末尾添加如下内容(这是个人配置,你能够自行修改): export SPARK_HOME=/home/hadoop/spark-2.2.0-bin-hadoop2.7 export SCALA_HOME=/home/hadoop/scala-2.11.12 export JAVA_HOME=/usr/lib/jvm/jdk1.8.0_77 export HADOOP_HOME=/home/hadoop/hadoop-2.7.5 export PATH=$PATH:$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$SCALA_HOME/bin export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop export YARN_CONF_DIR=$YARN_HOME/etc/hadoop export SPARK_MASTER_IP=20.2.217.123 SPARK_LOCAL_DIRS=/home/haodop/spark-2.2.0-bin-hadoop2.7 SPARK_DRIVER_MEMORY=1G export SPARK_LIBARY_PATH=.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib:$HADOOP_HOME/lib/native
上述的版本那些根据我的的进行修改,还有运行内存那些要根据硬件配置来,太大了启动spark会失败。
slaves文件:
slave1 slave2
配置好后再各个节点上同步,scp ...
启动spark,
sbin/start-dfs.sh
sbin/start-yarn.sh
看终端报错没有,没报错基本就成功了,再去UI看看,访问:http://master:8088