3.spark 集群模式安装

  • 集群模式说明
  • 安装JDK/Scala
  • 安装hadoop
  • 安装Spark
    • 下载
    • 安装
    • 测试
      • 开启独立集群
      • 开启shell
      • 执行语句测试

集群模式说明

如第一节所说,spark依赖的存储引擎和资源调度框架均可以替换,上一节默认都在本地,要改成集群模式,只需要把对应的存储引擎和资源调度框架替换上即可。

这里主要讲独立集群模式(standlone)和yarn集群模式:前者只依赖hdfs作为存储,使用standlone自带的master和worker作为计算资源;后者依赖hdfs作为存储,依赖yarn调度分配计算资源。

安装JDK/Scala

参考前文

安装hadoop

参考前文

standlone模式我们只需要使用HDFS作为存储,所以只需要start-dfs.sh启动分布式文件系统即可;yarn模式还需要start-yarn.sh开启yarn调度集群。

安装Spark

下载

下载位置 http://spark.apache.org/downloads.html

注意选择适合对应hadoop版本的spark,点击下载会自动选择最近的镜像下载

当前安装使用2.3.3版本

安装

解压

如下解压后,进入conf目录

tar -zxf spark-2.3.3-bin-hadoop2.7

配置SPARK_HOME并添加到PATH中

配置

spark-env.sh.template改名为spark-env.sh,内容如下

# java安装目录
export JAVA_HOME=/usr/java/jdk1.8.0_201.jdk

# hadoop配置目录
export HADOOP_CONF_DIR=/usr/local/hadoop-2.7.7/etc/hadoop

# 指定spark master机器名或ip
export SPARK_MASTER_IP=localhost

# 指定spark worker的内存/核数/实例个数
export SPARK_WORKER_MEMORY=1g
export SPARK_WORKER_CORES=1
export SPARK_WORKER_INSTANCES=1

文件

  1. standlone模式

slaves.template改名为slaves

这里填写对应Worker的机器名或ip,每行一个,这里我们只有本地一个worker,内容如下

localhost

如果存在多个机器上的Worker,则全部需要在此登记,并将Spark整个安装目录同步到不同的Worker机器上,即每个机器上都必须安装spark全部文件

  1. yarn模式

yarn模式下的spark相当于用spark替换了hadoop中的计算引擎mapreduce,所以执行时每个节点必须存在指定的spark jar包,有两种方式:

  • 直接Spark整个安装目录同步到不同的yarn机器上,或者上传spark 的jars到对应机器上,执行时spark.yarn.archive或spark.yarn.jars 指定对应的jar包位置
  • 没有指定时,默认把本地$SPARK_HOME/jars下的全部文件打包上传到分布式缓存中,运行时同步到每个节点的执行任务classpath目录中

测试

开启独立集群

注意独立集群模式,使用HDFS作为公共的分布式文件系统,但是资源调度系统依赖自己实现的standlone模式完成,因此需要开启集群即为开启standlone分布式资源管理系统,包括独立实现的Master和Worker进程。

sbin/start-master.sh 开启master,此时jps看到名为Master的进程
sbin/start-slaves.sh 开启slaves,此时jps看到名为Worker的进程

最简单直接sbin/start-all.sh

此时可通过http://localhost:8080/查看集群master和worker节点状态

开启shell

bin/spark-shell --master xxx

类似上一节,开启进入scala交互的命令行,可在此快速验证原型

注意这里的master分为多种,默认不指定master执行spark-shell为相当于

bin/spark-shell -master 'local[*]'

这样具体执行语句在本地工作,包括如下

  • local 本地Worker一个线程
  • local[N] 本地Worker N个线程
  • local[*] 本地Worker 逻辑CPU核数个数的线程

要想运行在集群上,必须指定集群地址

  1. 对于standlone集群

具体的集群master URL需要从http://localhost:8080/查看,有些人直接写http://localhost:7077并不一定对

如本人电脑上查看对应的standlone master url如下:

3.spark 集群模式安装_第1张图片

如下语句连接集群

bin/spark-shell --master 'spark://wenzhoudeMacBook-Pro.local:7077'
  1. 对于yarn集群

master直接指定yarn或自动获取yarn 分配的master url,如下语句连接集群

bin/spark-shell --master yarn

全部的master url格式参考文档

执行语句测试

比如最简单wordcount spark实现,可如下操作

  • 上传待统计文件
hadoop fs -put ./word.data /
  • 如下计算即可完成统计
sc.textFile("hdfs://localhost:9000/word.data").flatMap(_.split(" ")).map((_,1)).reduceByKey(_+_).collect

可以通过http://localhost:4040/jobs/查看集群运行的任务和状态

参考官方文档

原创,转载请注明来自

  • 博客https://blog.csdn.net/wenzhou1219
  • 个人网站http://jimwen.net/

你可能感兴趣的:(#,Spark)