二、安装Spark集群

来源:互联网 发布:php cli模式 编辑:程序博客网 时间:2024/05/17 04:53
【一个很疑惑的问题】    为什么我们一直在反复做一个操作:就是scp拷贝过来拷贝过去?【答案】这是为了将文件或目录的权限修改成hadoop所属组。

一. 下载Spark安装包并传给mster机器,使权限是hadoop

①在slave1机器上下载Spark(进入官网下载更快)
这里写图片描述
这里写图片描述

②解压安装包

    tar -zxvf spark-1.6.3-bin-hadoop2.6.tgz -C /data

③把slave1机器上的解压后的spark拷贝到master机器上

先进入/data目录下,打开终端,不用修改用户再:scp -r spark-1.6.3-bin-hadoop2.6/ hadoop@master:/data/

④删除slave1机器上的spark-1.6.3-bin-hadoop2.6

sudo rm -r /data/spark-1.6.3-bin-hadoop2.6
到现在为止,    slave1机器上的spark-1.6.3-bin-hadoop2.6安装包已经被删除;    只在master机器上有spark-1.6.3-bin-hadoop2.6安装包,且权限是hadoop。可以进行下面的Spark配置了!

==========

二 .配置 spark(涉及到的配置文件有以下几个:)

在master机器上,新建下面文件:

先su hadoopsudo mkdir  /data/spark_datasudo chmod -R 777 /data/spark_datasudo mkdir  /data/spark_data/spark_workssudo chmod -R 777 /data/spark_data/spark_workssudo mkdir  /data/spark_data/historysudo chmod -R 777 /data/spark_data/historysudo mkdir  /data/spark_data/history/event-logsudo chmod -R 777 /data/spark_data/history/event-logsudo mkdir  /data/spark_data/history/spark-eventssudo chmod -R 777 /data/spark_data/history/spark-events再把在master创建好的上面的文件拷贝给slave机器:在 master 机器上:先切换到hadoop用户su hadoopscp -r /data/spark_data hadoop@slave1:/datascp -r /data/spark_data hadoop@slave2:/data此时,在slave机器上就产生了/data/spark_data目录,查看权限是hadoop删除上面再master机器上创建的目录(在master机器上执行)    sudo rm -r /data/spark_data从slave1机器上复制一份给master(在slave1机器上执行)    scp -r /data/spark_data hadoop@master:/data
1. ${SPARK_HOME}/conf/spark-env.sh2. ${SPARK_HOME}/conf/slaves3. ${SPARK_HOME}/conf/spark-defaults.conf    这三个文件都是由原始的 template 文件复制过来的,比如:先进入conf目录下,打开终端,再:su hadoop    cp spark-env.sh.template spark-env.sh    cp slaves.template slaves    cp spark-env.sh.template spark-env.shsudo chmod -R  777 ../*

配置文件 1:sudo gedit spark-env.sh

【重点注意】SPARK_MASTER_IP=192.168.1.10一定要修改成自己的master地址注意:需要在本地创建/data/spark_data/spark_works 目录JAVA_HOME=/data/jdk1.8.0_111SCALA_HOME=/data/scala-2.11.8SPARK_MASTER_IP=192.168.1.10HADOOP_CONF_DIR=/data/hadoop-2.6.5/etc/hadoop# shuffled以及 RDD的数据存放目录SPARK_LOCAL_DIRS=/data/spark_data# worker端进程的工作目录SPARK_WORKER_DIR=/data/spark_data/spark_works

配置文件 2:sudo gedit slaves

去掉最后一行的localhost后,在最后一行加上下面内容masterslave1slave2

配置文件 3:sudo gedit spark-defaults.conf

注意:需要在本地创建/data/spark_data/history/event-log、/data/spark_data/history/spark-eventsspark.master spark://master:7077spark.serializer org.apache.spark.serializer.KryoSerializerspark.eventLog.enabled truespark.eventLog.dir file:///data/spark_data/history/event-logspark.history.fs.logDirectory file:///data/spark_data/history/spark-eventsspark.eventLog.compress true

===

三 . 复制到其他节点

在 master 上:    1. scp -r /data/spark* hadoop@slave1:/data    2. scp -r /data/spark* hadoop@slave2:/data     发现在 slave1 和slave2 上的/data目录下有spark-1.6.3-bin-hadoop2.6的目录,查看权限是hadoop组。    spark*实际上也把创建的目录/data/spark_data全部拷贝过去了。

四 . 设置环境变量

在master机器上:    su hadoop    sudo gedit ~/.bashrc   将以下内容加入到~/.bashrc 文件中,export SPARK_HOME=/data/spark-1.6.3-bin-hadoop2.6export PATH=$SPARK_HOME/bin:$SPARK_HOME/sbin:$PATH然后执行以下命令:     source ~/.bashrc再把master机器上的~/.bashrc文件拷贝到slave机器上:(在hadoop用户下)su hadoop   #切换到hadoop用户scp -r ~/.bashrc hadoop@slave1:~/scp -r ~/.bashrc hadoop@slave2:~/

=======================================

=======================================

5. 启动验证

在master机器上

1)启动 master     start-master.sh下图说明在 master 节点上成功启动 Master 进程:

这里写图片描述

在master机器上

2)启动 slave    start-slaves.sh    jps

这里写图片描述

在slave机器上

执行jps

这里写图片描述

    上面的图片说明在每台机器上都成功启动了 Worker 进程。

3)访问 WebUI

    在 master、slave1 和 slave2 这三台中任意一台机器上的浏览器中输入:http://master:8080/,看到如下图片,就说明我们的 spark 集群安装成功了。

这里写图片描述

===

趟过的坑

    配置 core-site.xml 和 hdfs-site.xml 文件时所指定的本地目录一定要自己创建,否则在执行 玩格式化 hdfs 后,启动 hdfs 会丢失进程。
原创粉丝点击