华拓科技网
您的当前位置:首页Spark的Standalone模式部署

Spark的Standalone模式部署

来源:华拓科技网

1:Spark Standalone Mode安装

A:部署包生成

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

--hadoop VERSION:打包时所用的Hadoop版本号,不加参数时为1.0.4。

--with-yarn:是否支持Hadoop YARN,不加参数时为不支持yarn。

--with-tachyon:是否支持内存文件系统Tachyon,不加参数时为不支持,此参数spark1.0之后提供。

笔者在上提供了spark0.90、spark0.91和spark1.0-SNAPHOT的部署包,其中spark1.0-SNAPHOT还提供了支持Tachyon的部署包。

B:规划

由于hadoop1、hadoop2、hadoop3、hadoop4、hadoop5之前已经安装了hadoop2.2.0集群,所以省却了安装 JAVA、建立SSH无密码登录过程。当然,spark集群可以于hadoop集群外安装,不过需要安装JAVA、建立SSH无密码登录,具体过程可 以参照。

将生成的spark-0.9.0-incubating-hadoop_2.2.0-bin.tar.gz文件复制到Master(即hadoop1)上并解压

[root@hadoop1 hadoop]# tar zxf spark-0.9.0-incubating-hadoop_2.2.0-bin.tar.gz

[root@hadoop1 hadoop]# mv spark-0.9.0-incubating spark090

[root@hadoop1 hadoop]# cd spark090

[root@hadoop1 spark090]# ls -lsa

D:配置集群文件

[root@hadoop1 spark090]# vi conf/slaves

[root@hadoop1 spark090]# cat conf/slaves 

hadoop2
hadoop3
hadoop4
hadoop5

[root@hadoop1 spark090]# vi conf/spark-env.sh

[root@hadoop1 spark090]# cat conf/spark-env.sh

export SPARK_MASTER_IP=hadoop1
export SPARK_WORKER_CORES=1
export SPARK_WORKER_INSTANCES=1
export SPARK_MASTER_PORT=7077
export SPARK_WORKER_MEMORY=1g
export MASTER=spark://${SPARK_MASTER_IP}:${SPARK_MASTER_PORT}

E:派发安装文件到slaves

[root@hadoop1 spark090]# cd ..

[root@hadoop1 hadoop]# chown -R hadoop:hadoop spark090

[root@hadoop1 hadoop]# su - hadoop

[hadoop@hadoop1 ~]$ cd /app/hadoop/

[hadoop@hadoop1 hadoop]$ scp -r spark090 hadoop2:/app/hadoop/

[hadoop@hadoop1 hadoop]$ scp -r spark090 hadoop3:/app/hadoop/

[hadoop@hadoop1 hadoop]$ scp -r spark090 hadoop4:/app/hadoop/

[hadoop@hadoop1 hadoop]$ scp -r spark090 hadoop5:/app/hadoop/

F:启动集群

[hadoop@hadoop1 hadoop]$ cd spark090

[hadoop@hadoop1 spark090]$ sbin/start-all.sh

通过浏览器访问http://hadoop1:8080可以监控spark Standalone集群

2:关于spark-shell连接到spark Standalone集群

如果要启动spark-shell连接到spark Standalone集群,有两种方法:

a:使用MASTER=spark://hadoop1:7077 bin/spark-shell启动

b:配置在conf/spark-env.sh增加以下几行:

export SPARK_MASTER_IP=192.168.1.171

export SPARK_MASTER_PORT=7077

export MASTER=spark://${SPARK_MASTER_IP}:${SPARK_MASTER_PORT}

然后使用使用./spark-shell启动

3:关于Spark Standalone Mode的运行

A:资源调度

Spark Standalone Cluster目前只支持FIFO方式调度,不过,允许多个并发用户,通过控制每个应用程序可获得的最大资源数。默认情况下,一次只运行一个应用程序,应 用程序使用集群中的所有内核,不过可以通过System.setProperty(“spark.cores.max”,“10”)设置使用的内核数,这 个值必须在初始化SparkContext之前设置。 

B:监控和日志

Spark Standalone Cluster可以通过Web UI来监控集群,Master和每个Worker都有各自的Web UI显示统计数据。

C:和Hadoop并用

Spark可以作为的服务,在已有的Hadoop集群设备上并行,并通过hdfs://URL存取Hadoop数据。当然,Spark也可以建 成一个的集群,通过网络存取Hadoop数据,只不过会比本地硬盘存取速度要慢,对于处于本地网络的两个集群,这不是问题。

D:高可用

Spark存在单点故障的问题,要解决这个问题,有两个方案:通过 Zookeeper待机Master和本地文件系统的单点恢复,具体参考

4:测试

由于缺少例子,所以使用官方提供的二进制安装包重新部署了一下,并启动。

./run-example org.apache.spark.examples.SparkKMeans spark://hadoop1:7077 ./kmeans_data.txt 2 1

也可以直接在spark shell里调试程序。

转自:http://database.51cto.com/art/201404/435674.htm

转载于:https://my.oschina.net/u/2288146/blog/394670

因篇幅问题不能全部显示,请点此查看更多更全内容