Spark集群搭建教程
前提:安装Spark集群的前提是已经装好hadoop集群。若hadoop集群已经搭建好,则各个节点的主机名与ip映射,ssh免密登陆,Java的环境配置等都已经完成。下图为我配置好的各节点主机名与ip的映射关系。
一 下载
下载Spark编译好的二进制包,推荐官网下载(http://spark.apache.org/downloads.html),如下图所示:
二 上传
若下载好的Spark安装包是在windows环境下,则需要通过winscp或者xftp等工具将其上传到Linux服务器上,若安装包是在Linux上,则此步跳过。
三 解压
首先将spark安装包复制或者移动到安装目录,然后解压到该目录。
四 配置
4.1修改系统配置文件
即修改/etc/profile, vi /etc/profile,
在文件末加上
# set spark path
export SPARK_HOME=/data/app/spark-2.2.0-bin-hadoop2.7
export PATH=$PATH:$SPARK_HOME/bin
4.2修改spark-env.sh配置文件
首先cd到spark的conf目录下
使用cp命令备份原spark-env.sh.template配置文件,
cp spark-env.sh.template spark-env.sh
修改spark-env.sh,即vi spark-env.sh,
在文件末加上:
export JAVA_HOME=/usr/java/jdk1.8.0_121#JAVA_HOME的路径
exportHADOOP_HOME=/data/app/hadoop-3.0.0-beta1/ #HADOOP_HOME的路径
exportHADOOP_CONF_DIR=/data/app/hadoop-3.0.0-beta1/etc/hadoop #hadoop配置文件路径
exportYARN_CONF_DIR=/data/app/hadoop-3.0.0-beta1/etc/hadoop #YARN配置文件的路径
export SPARK_MASTER_HOST=bd05 #Spark主节点的名字,bd05对应本机的ip,这个是在/etc/hosts下设置的,在搭建hadoop集群时已经配置好了
export SPARK_MASTER_IP=bd05 #Spark主节点的IP,同上
export SPARK_WORK_MEMORY=2g #spark计算节点的内存大小
exportSPARK_HOME=/data/app/spark-2.2.0-bin-hadoop2.7 #SPARK_HOME的路径
export PATH=$SPARK_HOME/bin:$PATH
4.3修改slaves配置文件
首先备份slaves.template(cp slaves.template slaves)文件,
然后再修该(vi slaves)该文件,在文件末加上spark集群的工作节点名称。
五 修改元数据存放地址
将spark默认存放元数据的derby数据库修改为mysql
5.1下载mysql
首先下载mysql数据库,此处不再演示,可以百度“Linux下安装mysql数据库“获取相关教程。下载安装之后,创建一个spark数据库,并设置其编码为latin1,(create database spark character set latin1)如下图:(注:必须设置character为latin1,不然后面使用spark-sql时会有很多问题)
5.2新增hive-site.xml配置文件
在spark的conf目录下新增hive-site.xml文件,添加如下内容:
<configuration>
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:mysql:/11.11.11.15:3306/spark</value>
</property>
<property>
<name>javax.jdo.option.ConnectionDriverName</name>
<value>com.mysql.jdbc.Driver</value>
</property>
<property>
<name>javax.jdo.option.ConnectionUserName</name>
<value>root</value>
</property>
<property>
<name>javax.jdo.option.ConnectionPassword</name>
<value>root</value>
</property>
</configuration>
5.3添加mysql依赖驱动包
将mysql的驱动依赖包放到spark安装目录下的conf目录下。此安装包在hadoop和spark中都没有,需要自己下载,然后再放到该目录下。
5.4修改配置文件
修改spark-defaults.conf.template配置文件,首先备份(cp spark-defaults.conf.template spark-defaults.conf),
然后修改(vi spark-defaults.conf),
在spark-defaults.conf文件的末尾加上:
spark.driver.extraClassPath= /data/app/spark-2.2.0-bin-hadoop2.7/conf/mysql-connector-java-5.1.40-bin.jar #驱动依赖包的路径
spark.executor.extraClassPath=/data/app/spark-2.2.0-bin-hadoop2.7/conf/mysql-connector-java-5.1.40-bin.jar#驱动依赖包的路径
spark.sql.warehouse.dir = hdfs://bd05:9000/user/root/warehouse#设置数据仓库中的数据在hdfs上的位置
六 修改控制台信息输出级别
首先备份log4j.properties.template文件(cp log4j.properties.template log4j.properties),
然后修改(vi log4j.properties),
找到log4j.rootCategory=INFO,console这一行,将INFO修改为WARN或者ERROR。
七 发送
将整个解压且配置好的spark包scp到集群中的其他节点。
首先切换到spark的安装目录,然后发送。
注:搭建的版本hadoop为3.0.0-beta1,spark为spark-2.2.0,Java版本为jdk1.8.0_121