网上关于spark的安装说明很多了,这里就以spark pre-build with user provided hadoop 安装包为例讲解,
下载spark pre-build with user provided hadoop,这里版本为2.1.0
假设集群节点为
192.168.1.12(slave1)
192.168.1.13(slave2)
192.168.1.14(master)
假设这三个节点均实现ssh免密码登陆。
在master节点上,解压安装包,然后进入目录
cd spark-2.1.0/conf
复制两个文件
cp spark-env.sh.template spark-env.sh
cp slaves.template slaves
salves文件中添加如下两行
slave1
slave2
spark-env.sh文件添加如下
export JAVA_HOME=/usr/java/default export SCALA_HOME=/usr/local/scala-2.12.2 export SPARK_MASTER_IP=192.168.1.14 export HADOOP_HOME=/root/hadoop-2.8.0 export HADOOP_CONF_DIR=/root/hadoop-2.8.0/etc/hadoop SPARK_DIST_CLASSPATH=$(/root/hadoop-2.8.0/bin/hadoop classpath) export SPARK_DIST_CLASSPATH=$SPARK_DIST_CLASSPATH:/root/hadoop-2.8.0/share/hadoop/tools/lib/*
注意,最后两行的设置是因为这里使用的是user provided hadoop,所有需要指定classpath,否则运行spark报错,参见 这里
将spark-2.1.0文件夹复制到slave1和slave2上相同的目录下
设置/etc/hosts
192.168.1.12 slave1 192.168.1.13 slave2 192.168.1.14 master
如果不设置hosts文件,而在conf/slaves中使用节点IP,那么运行 ./sbin/start-all.sh时,将看不到worker节点,而需要手动将slave(worker)连接master,具体操作为:
如果spark集群web管理页面无法显示worker,则可以分别在每个worker节点上执行
[root@slave2 home]# spark/sbin/start-slave.sh spark://<master ip>:7077
设置/etc/profile
export JAVA_HOME=/.. export SCALA_HOME=/.. export SPARK_HOME=/.. PATH=$PATH:$SCALA_HOME/bin:$SPARK_HOME/bin export PATH
设置完毕,启动spark
./sbin/start-all.sh