Spark运行模式配置及测试

目录

一、spark standalone模式

1. 配置

2. 服务启动与测试

二、spark on yarn模式

1. 配置

2. 测试

2.1 spark-shell

2.2 spark-submit


Spark支持3种集群模式,分别是standalone、spark on yarn(hadoop2)、以及spark on mesos模式。其中standalone模式是spark自带的集群模式,更常用于测试;spark on yarn是基于yarn来运行任务,通过yarn来管理资源和任务调度,spark从0.6.0版本开始支持;spark on mesos和spark on yarn类似。

本节将介绍两种部署方式:standalone和spark on yarn

说明:三台机器的主机名分别为:bigdata.centos01、bigdata.centos02、bigdata.centos03

说明:spark版本:v2.2.0,Hadoop版本:v2.5.0

一、spark standalone模式

1. 配置

  • 修改配置文件名
mv log4j.properties.template log4j.properties
mv slaves.template slaves
mv spark-env.sh.template spark-env.sh
  • 修改 conf/spark-env.sh
JAVA_HOME=/opt/modules/jdk8
SCALA_HOME=/opt/modules/scala-2.11.8

# master的主机名和端口
SPARK_MASTER_HOST=bigdata.centos02
SPARK_MASTER_PORT=7077
# master的web监控端口
SPARK_MASTER_WEBUI_PORT=8080

# work节点机器CPU核数
SPARK_WORKER_CORES=1
# work运行内存
SPARK_WORKER_MEMORY=1g
# work运行端口和web监控端口
SPARK_WORKER_PORT=7078
SPARK_WORKER_WEBUI_PORT=8081

# spark配置文件所在目录
SPARK_CONF_DIR=/opt/modules/spark-2.2.0-bin/conf
  • 修改 conf/slaves
# work节点
bigdata.centos02

2. 服务启动与测试

  • 服务启动
sbin/start-all.sh
  • 编写Scala测试程序

词频统计,文件路径从参数中传入。将测试程序打包成jar包(命名为sparktest.jar),上传服务器

package com.wangmh.sparks

import org.apache.spark.sql.SparkSession

object Test {

  def main(args: Array[String]): Unit = {

    val spark = SparkSession
      .builder
      .master("local")
      .appName("Hdfstest")
      .getOrCreate()

    val filePath =args(0)
    
    import spark.implicits._
    val dataset = spark.read.textFile(filePath)
      .flatMap(x => x.split(" "))
      .map(x => (x, 1)).groupBy("_1").count().show()
  }

}
  • 测试文件内容
hadoop hive
hive spark
hbase java
java spark
  • 测试

执行命令,cluster模式运行:

bin/spark-submit --master spark://bigdata.centos02:7077 --deploy-mode cluster  /opt/datas/sparktest.jar hdfs://bigdata.centos01:9000/user/data/wc.input

访问配置文件中配置web监控页面,查看测试结果:

二、spark on yarn模式

1. 配置

  • 修改 conf/spark-env.sh

在standalone配置的基础上加入以下配置:

# Hadoop配置文件目录
HADOOP_CONF_DIR=/opt/modules/hadoop-2.5.0/etc/hadoop

2. 测试

测试之前务必启动yarn的服务。

2.1 spark-shell

  • 进入shell命令行
./bin/spark-shell --master yarn --deploy-mode client
  • 测试结果

2.2 spark-submit

  • 修改Scala程序
package com.wangmh.sparks

import org.apache.spark.sql.SparkSession
import spark.implicits._

object Test {

  def main(args: Array[String]): Unit = {

    val spark = SparkSession
      .builder
      //.master("local")    //主要修改了master的值
      .master("yarn")
      .appName("Hdfstest")
      .getOrCreate()

    val filePath =args(0)
    
    val dataset = spark.read.textFile(filePath)
      .flatMap(x => x.split(" "))
      .map(x => (x, 1)).groupBy("_1").count().show()
  }

}
  • 提交任务
bin/spark-submit --class com.wangmh.sparks.Test  --master yarn --deploy-mode cluster /opt/datas/sparktest.jar hdfs:///user/data/wc.input

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值