假设我们使用三台机器安装spark,分别是host1、host2、host3. 其中,host2作为主节点。
安装步骤如下。
1、下载、解压安装文件
wget http://d3kbcqa49mib13.cloudfront.net/spark-1.6.1-bin-hadoop2.6.tgz (下载安装文件)
tar zxf spark-1.6.1-bin-hadoop2.6.tgz
2、修改配置文件
cd spark-1.6.1-bin-hadoop2.6/
cp conf/slaves.template conf/slaves
vi conf/slaves
host1
host2
host3
cp conf/spark-env.sh.template conf/spark-env.sh
vi conf/spark-env.sh
SPARK_MASTER_IP=host2
SPARK_MASTER_PORT=7001
SPARK_MASTER_WEBUI_PORT=7002
SPARK_WORKER_CORES=1
SPARK_WORKER_MEMORY=2g
SPARK_WORKER_PORT=7003
SPARK_WORKER_WEBUI_PORT=7004
SPARK_WORKER_INSTANCES=1
JAVA_HOME=/storm/jdk1.8.0_60
3、设置无秘钥登录及环境变量
确保“java -version”执行成功
配置无秘钥登录:在master上用“ssh-kengen -t rsa”命令生成公私钥对(回车两次,私钥无密码),将公钥复制到三台机器上的用户主目录下的.ssh文件夹的authorized_keys文件末尾。
配置环境变量(三台机器上都要执行):vi ~/.bash_profile
export SPARK_HOME=/home/wangshichun/spark-1.6.1-bin-hadoop2.6
生效环境变量:source ~/.bash_profile
4、复制配置文件到其他机器
scp conf/slaves host1:$SPARK_HOME/conf
scp conf/slaves host3:$SPARK_HOME/conf
scp conf/spark-env.sh host1:$SPARK_HOME/conf
scp conf/spark-env.sh host3:$SPARK_HOME/conf
5、交互模式执行spark代码,进行功能测试(也称为Local模式部署)
在$SPARK_HOME目录下:
./bin/spark-shell
或
./bin/spark-shell --master local[1]
或
./bin/spark-shell --master spark://host2:7001 (使用此中方式启动spark-shell后,在master的ui界面上会看到“Running Applications”中有名为“Spark shell”的任务,spark-shell退出后,会出现在“Completed Applications”中)
--jars 参数可以将多个jar文件(逗号分隔)添加到程序的classpath中
等出现“scala>”提示符后,输入如下内容:
scala> var textFile = sc.textFile("file:///home/wangshichun/spark-1.6.1-bin-hadoop2.6/README.md")
textFile: org.apache.spark.rdd.RDD[String] = file:///home/wangshichun/spark-1.6.1-bin-hadoop2.6/README.md MapPartitionsRDD[5] at textFile at <console>:27
scala> textFile.first()
res3: String = # Apache Spark
scala> textFile.count()
res4: Long = 95
scala> val textFilter = textFile.filter(line => line.contains("Spark"))
textFilter: org.apache.spark.rdd.RDD[String] = MapPartitionsRDD[6] at filter at <console>:29
scala> textFilter.count()
res5: Long = 17
scala> :help 可查看帮助,列出可用的命令
6、standalone模式部署
./sbin/start-master.sh
./sbin/start-slaves.sh
访问UI界面:
http://host2:7002/ MARSTER的UI界面
http://host1:7003/ WORKER的UI界面
http://host2:7003/ WORKER的UI界面
http://host3:7003/ WORKER的UI界面
此模式下,需要通过spark-submit脚本提交jar文件来提交自己写的spark程序代码。