(14)Spark 2.0.0 集群部署

1.引言

      在前面的博客中介绍了Spark的伪分布安装,在本篇博客中将介绍一下Spark的集群部署,在本博客中Spark的调度采用Hadoop的Yarn平台,因此在安装Spark之前,需要先部署Hadoop的集群,因为我在安装Hadoop集群的时候,配置了HA的自动切换,因此也需要安装zookeeper集群。其次Spark是基于scala开发的,综上所述,在本博客中会搭建三个集群:

  • zookeeper集群
  • hadoop集群
  • spark集群

      在本博客中安装环境为:

  • 操作系统为:Centos6.7
  • jdk的版本为:1.7
  • jdk的安装路径为:/usr/local/jdk
  • hadoop的版本为:2.6.1
  • hadoop的安装路径为:/usr/local/hadoop
  • zookeeper的版本为:3.4.9
  • zookeeper的安装路径为:/usr/local/zookeeper
  • scala的版本为:2.11.8
  • scala的安装路径为:/usr/local/scala
  • spark的版本为:2.0.0
  • spark的安装路径为:/usr/local/spark
  • 使用root用户进行集群搭建

      接下来我将按照下表进行搭建集群环境:

HOST名称ip地址运行的进程
hadoop1192.168.159.130NameNode,ResourceManger,JournalNode,QuorumPeerMain,DFSZKFailoverController,Master
hadoop2192.168.159.131NameNode,JournalNode,QuorumPeerMain,DFSZKFailoverController
hadoop3192.168.159.132DataNode,NodeManger,JournalNode,QuorumPeerMain,Worker
hadoop4192.168.159.133DataNode,NodeManger,Worker
hadoop5192.168.159.134DataNode,NodeManger,Worker

2. 搭建Hadoop集群

      如何搭建Hadoop自动切换NameNode的集群,请参考链接:Hadoop 2.6.1 集群部署—自动切换HA
      在上面的链接中介绍了如何搭建zookeeper集群和hadoop集群,搭建完成后,实现了以下表格的内容,因此接下来我们只需要在此基础上搭建spark集群即可。

HOST名称ip地址运行的进程
hadoop1192.168.159.130NameNode,ResourceManger,JournalNode,QuorumPeerMain,DFSZKFailoverController
hadoop2192.168.159.131NameNode,JournalNode,QuorumPeerMain,DFSZKFailoverController
hadoop3192.168.159.132DataNode,NodeManger,JournalNode,QuorumPeerMain
hadoop4192.168.159.133DataNode,NodeManger
hadoop5192.168.159.134DataNode,NodeManger

3. 安装scala环境

  • 解压scala安装包并改名
//解压scala安装包
tar -zxvf scala-2.11.8.tgz -C /usr/local/
//进入/usr/local文件夹
cd /usr/local
//改名文件夹
mv scala-2.11.8 scala
  • 修改环境变量
//编辑环境变量文件
vim /etc/profile
//环境变量的内容修改:
export SCALA_HOME=/usr/local/scala
export PATH=$PATH:$SCALA_HOME/bin

这里写图片描述

  • scala分发到hadoop2,hadoop3,hadoop4,hadoop5机器
scp -rq /usr/local/scala hadoop2:/usr/local/
scp -rq /usr/local/scala hadoop3:/usr/local/
scp -rq /usr/local/scala hadoop4:/usr/local/
scp -rq /usr/local/scala hadoop5:/usr/local/
  • 将环境变量文件分发到hadoop2,hadoop3,hadoop4,hadoop5机器
scp  /etc/profile hadoop2:/etc/profile
scp  /etc/profile hadoop3:/etc/profile
scp  /etc/profile hadoop4:/etc/profile
scp  /etc/profile hadoop5:/etc/profile
  • 在各机器上重新加载环境变量
//在hadoop1,hadoop2,hadoop3,hadoop4,hadoop5执行命令重新加载环境变量
source /etc/profile

4. 安装spark集群

4.1 解压spark安装包并改名

//解压spark安装包
tar -zxvf spark-2.0.0-bin-hadoop2.6.tgz -C /usr/local/
//进入/usr/local目录
cd /usr/local
//修改文件夹名称
mv spark-2.0.0-bin-hadoop2.6 spark

4.2 修改配置文件spark-env.sh

  • 修改spark-env.sh配置文件内容
//修改spark-env.sh配置文件
vim spark-env.sh
//配置文件内容:
    /*
        SPARK_LOCAL_IP:本机ip或hostname(每台机器都不一样)
        SPARK_LOCAL_DIRS:配置spark的local目录
        SPARK_MASTER_IP:master节点ip或hostname
        SPARK_MASTER_WEBUI_PORT:web页面端口
        SPARK_MASTER_OPTS:spark-shell启动使用核数(根据自己电脑实际情况写)
        SPARK_WORKER_CORES:Worker的cpu核数
        SPARK_WORKER_MEMORY:Worker内存大小
        SPARK_WORKER_DIR:worker目录
        SPARK_WORKER_OPTS:worker自动清理及清理时间间隔
        SPARK_HISTORY_OPTS:history server页面端口、备份数、log日志在HDFS的位置(这里需要注意,因为我使用的是hadoop的ha,所以采用逻辑名cluster1,如果不使用HA,应该使用hdfs://hadoop1:9000/var/log/spark的格式)
        SPARK_LOG_DIR:配置Spark的log日志目录
        JAVA_HOME:jdk的安装地址
        SCALA_HOME:scala的安装地址
        SPARK_WORKER_MEMORY:Worker内存大小
        SPARK_MASTER_IP:master节点ip或hostname
        HADOOP_HOME:hadoop的安装地址
        HADOOP_CONF_DIR:hadoop配置文件的安装地址
    */
SPARK_LOCAL_IP=hadoop1
SPARK_LOCAL_DIRS=/usr/local/spark
SPARK_MASTER_IP=hadoop1
SPARK_MASTER_WEBUI_PORT=8080
export SPARK_MASTER_OPTS="-Dspark.deploy.defaultCores=4"
SPARK_WORKER_CORES=2
SPARK_WORKER_MEMORY=1g
SPARK_WORKER_DIR=/usr/local/spark/work
export SPARK_WORKER_OPTS="-Dspark.worker.cleanup.enabled=true -Dspark.worker.cleanup.appDataTtl=604800"
export SPARK_HISTORY_OPTS="-Dspark.history.ui.port=18080 -Dspark.history.retainedApplications=3 -Dspark.history.fs.logDirectory=hdfs://cluster1/var/log/spark"
SPARK_LOG_DIR=/usr/local/spark/logs
export JAVA_HOME=/usr/local/jdk
export SCALA_HOME=/usr/local/scala
export SPARK_MASTER_IP=hadoop1
export SPARK_WORKER_MEMORY=1024m
export HADOOP_HOME=/usr/local/hadoop
export HADOOP_CONF_DIR=/usr/local/hadoop/etc/hadoop/

这里写图片描述

4.3 修改配置文件spark-defaults.conf

  • 修改spark-defaults.conf配置文件内容
//将模版文件修改为配置文件
cp spark-defaults.conf.template spark-defaults.conf
//修改配置文件
vim spark-defaults.conf
// 配置文件的内容:
/*
    spark.eventLog.enabled:eventLog是否生效
    spark.eventLog.compress:eventLog是否启用压缩(cpu性能好的情况下建议开启,以减少内存等的占用)
    spark.eventLog.dir: eventLog的文件存放位置,与spark-env.sh中的history server配置位置一致,这两个位置必须手动创建,否则spark启动失败
    spark.broadcast.blockSize:广播块大小
    spark.executor.cores:Executor的cpu核数
    spark.executor.memory:Executor的内存大小
    spark.executor.heartbeatInterval:Executor心跳交换时间间隔
    spark.files.fetchTimeout:文件抓取的timeout
    spark.task.maxFailures:作业最大失败次数(达到此次数后,该作业不再继续执行,运行失败)
    spark.serializer:设置序列化机制(默认使用java的序列化,但是速度很慢,建议使用Kryo)
    spark.kryoserializer.buffer.max:序列化缓冲大小
    spark.akka.frameSize:Akka调度帧大小
    spark.default.parallelism:默认并行数
    spark.network.timeout:最大网络延时
    spark.speculation:Spark推测机制(建议开启)
*/
spark.eventLog.enabled          true
spark.eventLog.compress         true
spark.eventLog.dir              hdfs://cluster1/var/log/spark
spark.broadcast.blockSize       8m
spark.executor.cores            1
spark.executor.memory           512m
spark.executor.heartbeatInterval        20s
spark.files.fetchTimeout        120s
spark.task.maxFailures          6
spark.serializer                org.apache.spark.serializer.KryoSerializer
spark.kryoserializer.buffer.max         256m
spark.akka.frameSize            128
spark.default.parallelism       20
spark.network.timeout           300s
spark.speculation               true

这里写图片描述

  • 创建hadoop的历史日志目录(在hadoop1上操作)
//首先进入hadoop的bin目录
cd /usr/local/hadoop/bin
//创建文件夹命令
./hadoop fs -mkdir /var
./hadoop fs -mkdir /var/log
./hadoop fs -mkdir /var/log/spark

4.4 修改slaves配置文件

  • 编辑slaves配置文件
//编辑slaves文件
vim slaves
//slaves内容(设置从节点的位置)
hadoop3
hadoop4
hadoop5

这里写图片描述

4.5 将spark分发到其他节点,并修改配置

  • spark分发到其他节点
scp -rq /usr/local/spark hadoop3:/usr/local/
scp -rq /usr/local/spark hadoop4:/usr/local/
scp -rq /usr/local/spark hadoop5:/usr/local/
  • 修改hadoop3,hadoop4,hadoop5spark-env.sh配置(只需要修改SPARK_LOCAL_IP配置)

这里写图片描述

这里写图片描述

这里写图片描述

4.6 启动Spark集群

  • hadoop1启动spark集群
//启动master和slaves
start-all.sh
//停止master和slaves                   
stop-all.sh
//启动job历史端口
./start-history-server.sh                  

4.7 查看Spark集群是否启动成功

这里写图片描述

这里写图片描述

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值