Linux环境下Spark集群搭建

Spark是通用的基于内存计算的大数据框架,可以和hadoop生态系统很好的兼容,以下来部署Spark集群

  集群环境:3节点 Master:bigdata1 Slaves:bigdata2,bigdata3

  Master负责任务的分发,与集群状态的显示

  Slaves运行具体的Worker任务,最后交由Executor执行任务代码

  集群搭建之前,必须满足如下条件:

  1、集群主机名和hosts文件映射一一对应

  2、集群ssh免密登录配置

  3、集群每个节点防火墙关闭

  4、JDK正确安装

  5、Scala正确安装

  6、Hadoop集群安装,因为Spark存储层要用到HDFS,所以应该至少保证HDFS服务的正常运行,hadoop集群可以在yarn上,也可以由zookeeper协调,这个都没问题,最重要的是hadoop集群能正常运行

  然后可以开始安装Spark,Spark官方网站是:http://spark.apache.org/,直接去官方网站下载spark安装包即可,这里安装的是1.x的最新版1.6.2,2.0是刚出来,暂时没有使用,包名为:spark-1.6.2-bin-hadoop2.6.tgz 这里已经安装的hadoop版本为hadoop 2.6.0,下载之后上传至服务器准备安装

  在bigdata1 Master节点执行如下命令解压,目录可以自定义,这里安装位置是/bigdata/spark

tar -xvzf spark-1.6.2-bin-hadoop2.6.tgz
mkdir /bigdata/spark
mv spark-1.6.2-bin-hadoop2.6 /bigdata/spark/
cd /bigdata/spark/spark-1.6.2-bin-hadoop2.6/

  配置文件目录在安装目录下的conf下,然后从默认模板中拷贝出要编辑的配置文件:

cp conf/spark-env.sh.template conf/spark-env.sh
cp conf/slaves.template conf/slaves

  网上说的可以添加spark到环境变量中,这个是为了方便启动和调试,是可选的, 

  执行 vim conf/slaves 配置运行Worker任务的节点,和hadoop的slaves配置类似,单机环境中默认或者改为本地主机名,这里是bigdata2,bigdata3

  Linux环境下Spark集群搭建

  执行 vim conf/spark-env.sh 编辑spark启动加载脚本,在最后添加如下配置:

 

# JDK目录
export JAVA_HOME=/usr/local/java/jdk1.8.0_73
# Scala目录
export SCALA_HOME=/usr/local/scala/scala-2.11.8
# Master IP地址
export SPARK_MASTER_IP=192.168.0.187
# Worker运行内存
export SPARK_WORKER_MEMORY=1024m
# hadoop配置文件目录
export HADOOP_CONF_DIR=/bigdata/hadoop/hadoop-2.6.0/etc/hadoop

  集群中Worker运行内存可以适当调整3g~8g的范围

  然后发送Spark到集群其他节点:

scp -r spark/ bigdata2:/bigdata/
scp -r spark/ bigdata3:/bigdata/

  最后启动Spark集群,在Master节点执行: sbin/start-all.sh 可以启动整个集群,通过执行jps可以看到Master运行的进程是Master,Slaves节点运行的进程是Worker

  Linux环境下Spark集群搭建

  Linux环境下Spark集群搭建

  另外也可以通过在Master节点分别执行 sbin/start-master.sh  和 sbin/start-slaves.sh  分别调起来master和全部子节点的worker进程,这样可以根据不同需要有选择的调起集群中的服务

  Spark的服务都启动之后,访问Master地址可以打开相应的管理界面,地址就是:http://ip:8080,会看到界面如下:

  Linux环境下Spark集群搭建

  通过界面可以方便的查看并管理相应的端口号,配置项,Workers节点,正在运行的应用任务等

  通过执行 bin/spark-shell 或者指定相应的参数 bin/spark-shell --executor-memory 1g --driver-memory 1g --master spark://bigdata1:7077 可以进入scala交互式命令行界面,在这里可以进行一些测试等

  Linux环境下Spark集群搭建

  到这里,Spark集群就部署完毕了