Spark运行模式之Local模式

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/m0_37294838/article/details/89919488

Local模式不需要任何的配置。

概述

  Local模式就是运行在一台计算机上的模式,通常就是用于在本机上练手和测试。它可以通过以下集中方式设置Master

  local: 所有计算都运行在一个线程当中,没有任何并行计算,通常我们在本机执行一些测试代码,或者练手,就用这种模式;

  local[K]: 指定使用几个线程来运行计算,比如local[4]就是运行4Worker线程。通常我们的Cpu有几个Core,就指定几个线程,最大化利用Cpu的计算能力;

  local[*]: 这种模式直接帮你按照Cpu最多Cores来设置线程数了。

安装使用

1)上传并解压spark安装包

      [atguigu@hadoop102 sorfware]$ tar -zxvf spark-2.1.1-bin-hadoop2.7.tgz -C /opt/module/

      [atguigu@hadoop102 module]$ mv spark-2.1.1-bin-hadoop2.7 spark

2)官方求PI案例

    [atguigu@hadoop102 spark]$ bin/spark-submit \

        --class org.apache.spark.examples.SparkPi \

         --executor-memory 1G \

        --total-executor-cores 2 \

          ./examples/jars/spark-examples_2.11-2.1.1.jar \

          100

(1)基本语法

       bin/spark-submit \

      --class <main-class>

      --master <master-url> \

      --deploy-mode <deploy-mode> \

     --conf <key>=<value> \

    ... # other options

     <application-jar> \

     [application-arguments]

(2)参数说明:

        --master 指定Master的地址,默认为Local

        --class: 你的应用的启动类 (如 org.apache.spark.examples.SparkPi)

        --deploy-mode: 是否发布你的驱动到worker节点(cluster) 或者作为一个本地客户端 (client) (default: client)*

        --conf: 任意的Spark配置属性, 格式key=value. 如果值包含空格,可以加引号“key=value”

application-jar: 打包好的应用jar,包含依赖. 这个URL在集群中全局可见。 比如hdfs:// 共享存储系统, 如果是 file:// path, 那么所有的节点的path都包含同样的jar

        application-arguments: 传给main()方法的参数

       --executor-memory 1G 指定每个executor可用内存为1G

      --total-executor-cores 2 指定每个executor使用的cup核数为2个

3)结果展示

该算法是利用蒙特·卡罗算法求PI

4)准备文件

    [atguigu@hadoop102 spark]$ mkdir input

    在input下创建3个文件1.txt和2.txt,并输入以下内容

      hello atguigu

      hello spark

5)启动spark-shell

[atguigu@hadoop102 spark]$ bin/spark-shell
Using Spark's default log4j profile: org/apache/spark/log4j-defaults.properties
Setting default log level to "WARN".
To adjust logging level use sc.setLogLevel(newLevel). For SparkR, use setLogLevel(newLevel).
18/09/29 08:50:52 WARN NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
18/09/29 08:50:58 WARN ObjectStore: Failed to get database global_temp, returning NoSuchObjectException
Spark context Web UI available at http://192.168.9.102:4040
Spark context available as 'sc' (master = local[*], app id = local-1538182253312).
Spark session available as 'spark'.
Welcome to
      ____              __
     / __/__  ___ _____/ /__
    _\ \/ _ \/ _ `/ __/  '_/
   /___/ .__/\_,_/_/ /_/\_\   version 2.1.1
      /_/
         
Using Scala version 2.11.8 (Java HotSpot(TM) 64-Bit Server VM, Java 1.8.0_144)
Type in expressions to have them evaluated.
Type :help for more information.

scala>

开启另一个CRD窗口

     [atguigu@hadoop102 spark]$ jps

     3627 SparkSubmit

     4047 Jps

可登录hadoop102:4040查看程序运行

6)运行WordCount程序

        scala>sc.textFile("input").flatMap(_.split(" ")).map((_,1)).reduceByKey(_+_).collect

         res0: Array[(String, Int)] = Array((hadoop,6), (oozie,3), (spark,3), (hive,3), (atguigu,3), (hbase,6))

         scala>

可登录hadoop102:4040查看程序运行

 

WordCount程序分析

提交任务分析:

数据流分析:

    textFile("input"):读取本地文件input文件夹数据;

    flatMap(_.split(" ")):压平操作,按照空格分割符将一行数据映射成一个个单词;

     map((_,1)):对每一个元素操作,将单词映射为元组;

     reduceByKey(_+_):按照key将值进行聚合,相加;

     collect:将数据收集到Driver端展示。

猜你喜欢

转载自blog.csdn.net/m0_37294838/article/details/89919488