Spark1.0.0 on Standalone 模式部署

1:Spark1.0.0 Standalone Mode安装
A:部署包生成
首先,官网   http://d3kbcqa49mib13.cloudfront.net/spark-1.0.0.tgz 下载源代码,解压后切换到源码目录,运行部署包生成程序make-distribution.sh

$ ./make-distribution.sh --hadoop 2.2.0 --with-yarn --tgz

spark源码根目录下的make-distribution.sh可以带以下参数:
  • --hadoop VERSION:打包时所用的Hadoop版本号,不加此参数时hadoop版本为1.0.4。
  • --with-yarn:是否支持Hadoop YARN,不加参数时为不支持yarn。
  • --with-hive:是否在Spark SQL 中支持hive,不加此参数时为不支持hive。
  • --skip-java-test:是否在编译的过程中略过java测试,不加此参数时为略过。
  • --with-tachyon:是否支持内存文件系统Tachyon,不加此参数时不支持tachyon。
  • --tgz:在根目录下生成 spark-$VERSION-bin.tgz,不加此参数时不生成tgz文件,只生成/dist目录。
  • --name NAME:和--tgz结合可以生成spark-$VERSION-bin-$NAME.tgz的部署包,不加此参数时NAME为hadoop的版本号。
  • 注意参数的顺序要按上面的顺序来
运行成功后,在根目录下生成名为spark-1.0.0-bin-2.2.0.tgz的部署包,该部署包含有支持hadoop2.2.0的Spark应用程序包和spark例程。笔者在百度云盘pan.baidu.com/s/1dDmqK4h#dir/path=%2Fdeploy上 分享了spark1.0.0的部署包、支持tachyon0.41的部署包和支持hive的部署包

B:规划
虚拟机hadoop1(IP地址为192.168.1.171)作为Master
虚拟机 hadoop1(IP地址为192.168.1.171)hadoop2(IP地址为192.168.1.172)、hadoop3(IP地址为192.168.1.173)作为slave
由于hadoop1、hadoop2、hadoop3之前已经安装了hadoop2.2.0集群,所以省却了安装JAVA、建立用户hadoop的SSH无密码登录过程。当然,Spark集群可以独立于hadoop集群外安装,但是需要安装JAVA、建立SSH无密码登录。关于JAVA安装和建立SSH无密码登录可以参照 hadoop2.2.0测试环境搭建。另外,为了避免Spark应用程序要打包scala包(详见 Spark1.0.0 多语言编程之Scala实现),在集群的每个节点上安装了scala2.10.4(安装目录/app/scala2104)。

C:在Master上生成安装目录
将生成的 spark-1.0.0-bin-2.2.0.tgz文件复制到Master(即hadoop1)上并解压
[root@hadoop1 hadoop]# tar zxf  spark-1.0.0-bin-2.2.0.tgz
[root@hadoop1 hadoop]# mv spark-1.0.0 spark100
[root@hadoop1 hadoop]# cd spark100
[root@hadoop1 spark100]# ls -lsa

     
D:配置集群文件
[root@hadoop1 spark100]# vi conf/slaves
[root@hadoop1 spark100]# cat conf/slaves 

hadoop1

hadoop2 hadoop3

[root@hadoop1 spark100]# cp conf/spark-env.sh.template conf/spark-env.sh
[root@hadoop1 spark091]# vi conf/spark-env.sh
[root@hadoop1 spark091]# cat conf/spark-env.sh

export SPARK_MASTER_IP=hadoop1

export SPARK_MASTER_PORT=7077 export SPARK_WORKER_CORES=1 export SPARK_WORKER_INSTANCES=1 export SPARK_WORKER_MEMORY=1g

另外设置一下操作系统的环境变量,然后source一下
[root@hadoop1 spark100]# vi /etc/profile
[root@hadoop1 spark100]# source /etc/profile

export SCALA_HOME=/app/scala2104

export SPARK_HOME=/app/hadoop/spark100

export PATH=$SCALA_HOME/bin:$SPARK_HOME/bin:$PATH


E:派发安装文件到slaves
[root@hadoop1 spark100]# cd ..
[root@hadoop1 hadoop]# chown -R hadoop:hadoop spark100
[root@hadoop1 hadoop]# su - hadoop
[hadoop@hadoop1 ~]$ cd /app/hadoop/
[hadoop@hadoop1 hadoop]$ scp -r spark100 hadoop2:/app/hadoop/
[hadoop@hadoop1 hadoop]$ scp -r spark100 hadoop3:/app/hadoop/

F:启动集群
在Master主机hadoop1上启动spark standalone集群
[hadoop@hadoop1 hadoop]$ cd spark100
[hadoop@hadoop1 spark100]$ sbin/start-all.sh
通过浏览器访问http://hadoop1:8080可以监控spark Standalone集群

 
2:测试
最好的spark测试程序就是spark-shell了,关于spark-shell,在spark1.0.0有了较大的变动,会在专门的章节里加以描述,然后给以链接。
在本实验standalone集群中,设置了3个节点,每个节点一个worker实例,每个worker实例使用1个core和3G内存。下面将启动2个spark-shell客户端:
  • 前者运行在standalone集群中的hadoop1上,后者运行在standalone集群外的客户端wyy上。
  • 前者的executor使用缺省的内存;后者executor使用2g内存。
  • 前者的executor使用2个core;后者不加限制,因为整个集群总共3个core,前者使用了2个,所以后者只能使用1个。如果前者的spark-shell不限制core的话,会使用掉3个core,导致第二个spark-shell将无法申请到资源,处于等待状态。
A:在集群中启动spak-shell
[hadoop@hadoop1 spark100]$ bin/spark-shell --master spark://hadoop1:7077  --total-executor-cores 2
B:在集群外一台ubuntu客户端wyy上启动spak-shell(注意配置文件和集群中的一致)
hadoop@wyy:/app/hadoop/spark100$ bin/spark-shell --master spark://hadoop1:7077 --executor-memory 2g
C:监控spark集群


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值