版本号:
RedHat6.5 RHEL 6.5系统安装配置图解教程(rhel-server-6.5)
JDK1.8 http://blog.csdn.net/chongxin1/article/details/68957808
Hadoop2.7.3 RedHat6.5上安装Hadoop集群
scala-2.11.8
spark-2.1.1-bin-hadoop2.7
1 安装Spark依赖的Scala
Hadoop的安装请参考上面提到的博文,因为Spark依赖scala,所以在安装Spark之前,这里要先安装scala。
在每个节点上都进行安装,本文主要是master、slave1、slave2三台机器。
1.1 下载和解压缩Scala
官网下载地址:https://downloads.lightbend.com/scala/2.11.8/scala-2.11.8.tgz
百度云盘下载地址:链接:http://pan.baidu.com/s/1eSiVjO2 密码:y8b1
linux在服务器的/usr/local目录下新建一个名为scala的文件夹,并将下载的压缩包上载上去
如图:
执行命令,进入到该目录:
cd /usr/local/scala
执行命令进行解压缩:
tar -xvf scala-2.11.8.tgz
1.2 配置环境变量
sudo gedit /et/profile
编辑/etc/profile这个文件,在文件中增加一行配置:
- #set Scala environment
- export SCALA_HOME=/usr/local/scala/scala-2.11.8
- export PATH=$SCALA_HOME/bin:$PATH
添加完成后,我的/etc/profile的配置如下:
- #set Java environment
- export JAVA_HOME=/usr/local/java/jdk1.8
- export JRE_HOME=/usr/local/java/jdk1.8/jre
- export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
- export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$JAVA_HOME:$PATH
- #set Hadoop enviroment
- export HADOOP_HOME=/usr/local/hadoop/hadoop-2.7.3
- export PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH
- export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
- export YARN_CONF_DIR=$HADOOP_HOME/etc/hadoop
- #set Scala environment
- export SCALA_HOME=/usr/local/scala/scala-2.11.8
- export PATH=$SCALA_HOME/bin:$PATH
环境变量配置完成后,执行下面的命令:
source /etc/profile
1.3 验证Scala
执行命令: scala -version
如图:
以上是在master机器上安装,将安装好的scala复制到slave1、slave2机器上:
scp -r /usr/local/scala root@slave1:/usr/local
scp -r /usr/local/scala root@slave2:/usr/local
修改slave1、slave2的/etc/profile环境变量配置文件,方法同1.2。
2 下载和解压缩Spark
2.1 下载Spark压缩包
官网下载地址:http://mirrors.hust.edu.cn/apache/spark/spark-2.1.1/spark-2.1.1-bin-hadoop2.7.tgz
百度云盘下载地址:链接:http://pan.baidu.com/s/1cGTtgU 密码:hciq
2.2 解压缩Spark
下载完成后,在Linux服务器的/usr/local目录下新建一个名为spark的文件夹,把刚才下载的压缩包,上传上去。
如图:
进入到该目录内,也就是执行下面的命令:
cd /usr/local/spark
执行解压缩命令:
tar -zxvf spark-2.1.1-bin-hadoop2.7.tgz
3 Spark相关的配置
说明:因为我们搭建的是基于hadoop集群的Spark集群,所以每个hadoop节点上我都安装了Spark,都需要按照下面的步骤做配置,启动的话只需要在Spark集群的Master机器上启动即可,我这里是在master上启动。
3.1 配置环境变量
sudo gedit /etc/profile
编辑/etc/profile文件,增加
- #set Spark environment
- export SPARK_HOME=/usr/local/spark/spark-2.1.1-bin-hadoop2.7
- export PATH=$SPARK_HOME/bin:$PATH
注意:因为$SPARK_HOME/sbin目录下有一些文件名称和$HADOOP_HOME/sbin目录下的文件同名,为了避免同名文件冲突,这里不在PATH变量里添加$SPARK_HOME/sbin只添加了$SPARK_HOME/bin。
修改完成后,/etc/profile文件内容是:
- #set Java environment
- export JAVA_HOME=/usr/local/java/jdk1.8
- export JRE_HOME=/usr/local/java/jdk1.8/jre
- export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH
- export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$JAVA_HOME:$PATH
- #set Hadoop enviroment
- export HADOOP_HOME=/usr/local/hadoop/hadoop-2.7.3
- export PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH
- export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
- export YARN_CONF_DIR=$HADOOP_HOME/etc/hadoop
- #set Scala environment
- export SCALA_HOME=/usr/local/scala/scala-2.11.8
- export PATH=$SCALA_HOME/bin:$PATH
- #set Spark environment
- export SPARK_HOME=/usr/local/spark/spark-2.1.1-bin-hadoop2.7
- export PATH=$SPARK_HOME/bin:$PATH
编辑完成后,执行命令:
source /etc/profile
3.2 配置conf目录下的文件
对/usr/local/spark/spark-2.1.1-bin-hadoop2.7/conf目录下的文件进行配置。
3.2.1 新建spark-env.h文件
执行命令,进入到/usr/local/spark/spark-2.1.1-bin-hadoop2.7/conf目录内:
cd /usr/local/spark/spark-2.1.1-bin-hadoop2.7/conf
以spark为我们创建好的模板创建一个spark-env.h文件,命令是:
cp spark-env.sh.template spark-env.sh
编辑spark-env.sh文件,在里面加入配置(具体路径以自己的为准):
- export JAVA_HOME=/usr/local/java/jdk1.8
- export SCALA_HOME=/usr/local/scala/scala-2.11.8
- export HADOOP_HOME=/usr/local/hadoop/hadoop-2.7.3
- export HADOOP_CONF_DIR=/usr/local/hadoop/hadoop-2.7.3
- export SPARK_MASTER_IP=192.168.168.200
- export SPARK_MASTER_HOST=192.168.168.200
- export SPARK_LOCAL_IP=192.168.168.200
- export SPARK_HOME=/usr/local/spark/spark-2.1.1-bin-hadoop2.7
- export SPARK_DIST_CLASSPATH=$(/usr/local/hadoop/hadoop-2.7.3/bin/hadoop classpath)
3.2.2 新建slaves文件
执行命令,进入到/usr/local/spark/spark-2.1.1-bin-hadoop2.7/conf目录内:
cd /usr/local/spark/spark-2.1.1-bin-hadoop2.7/conf
以spark为我们创建好的模板创建一个slaves文件,命令是:
cp slaves.template slaves
编辑slaves文件,里面的内容为:
master
slave1
slave2
如图:
3.3WorkerN节点:(slave1、slave2两台机器)
将配置好的spark文件复制到workerN节点
scp -r /usr/local/spark root@slave1:/usr/local
scp -r /usr/local/spark root@slave2:/usr/local
在slave1和slave2上分别修改/etc/profile,增加Spark的配置,过程同master一样。
在slave1和slave2修改$SPARK_HOME/conf/spark-env.sh,将 export SPARK_LOCAL_IP=192.168.168.200 改成slave1和slave2对应节点的IP。
- export SPARK_LOCAL_IP=192.168.168.201
- export SPARK_LOCAL_IP=192.168.168.202
4 启动和测试Spark集群
4.1 启动Spark
因为spark是依赖于hadoop提供的分布式文件系统的,所以在启动spark之前,先确保hadoop在正常运行。
在hadoop正常运行的情况下,在master(也就是hadoop的namenode,spark的marster节点)上执行命令:
cd /usr/local/spark/spark-2.1.1-bin-hadoop2.7/sbin
执行启动脚本:
./start-all.sh
完整控制台输出内容是:
- [root@master conf]# cd /usr/local/spark/spark-2.1.1-bin-hadoop2.7/sbin
- [root@master sbin]# ./start-all.sh
- starting org.apache.spark.deploy.master.Master, logging to /usr/local/spark/spark-2.1.1-bin-hadoop2.7/logs/spark-root-org.apache.spark.deploy.master.Master-1-master.out
- slave1: starting org.apache.spark.deploy.worker.Worker, logging to /usr/local/spark/spark-2.1.1-bin-hadoop2.7/logs/spark-root-org.apache.spark.deploy.worker.Worker-1-slave1.out
- slave2: starting org.apache.spark.deploy.worker.Worker, logging to /usr/local/spark/spark-2.1.1-bin-hadoop2.7/logs/spark-root-org.apache.spark.deploy.worker.Worker-1-slave2.out
- master: starting org.apache.spark.deploy.worker.Worker, logging to /usr/local/spark/spark-2.1.1-bin-hadoop2.7/logs/spark-root-org.apache.spark.deploy.worker.Worker-1-master.out
- master: failed to launch: nice -n 0 /usr/local/spark/spark-2.1.1-bin-hadoop2.7/bin/spark-class org.apache.spark.deploy.worker.Worker --webui-port 8081 spark://master:7077
- master: full log in /usr/local/spark/spark-2.1.1-bin-hadoop2.7/logs/spark-root-org.apache.spark.deploy.worker.Worker-1-master.out
注意:上面的命令中有./这个不能少,./的意思是执行当前目录下的start-all.sh脚本。
4.2 测试和使用Spark集群
4.2.1 访问Spark集群提供的URL
在浏览器里访问Mster机器,我的Spark集群里Master机器是master,IP地址是192.168.168.200,访问8080端口,URL是:
如图:
参考资料:http://blog.csdn.net/pucao_cug/article/details/72353701