当前位置:   article > 正文

学习笔记Spark(五)—— 配置Spark IDEA开发环境_spark.some.config.option", "some-value

spark.some.config.option", "some-value

一、配置Spark开发环境

1. 1、配置Spark开发依赖包

  • 单击“+”按钮,选择“Java”选项
  • 在弹出的界面中找到Spark安装包下的“jars”文件夹,事先删除该目录下的commons-compiler-3.0.9.jar
  • 点击“OK”

二、编写Spark WordCount

2.1、SparkContext介绍

任何Spark程序都是以SparkContext对象开始的,因为SparkContext是Spark应用程序的上下文和入口,无论是Scala、Python、R程序,都是通过SparkContext对象的实例来创建RDD。

因此在实际Spark应用程序的开发中,在main方法中需要创建SparkContext对象,作为Spark应用程序的入口,并在Spark程序结束时关闭SparkContext对象。


2.1.1、初始化SparkContext

初始化SparkContext需要一个SparkConf对象,SparkConf包含了Spark集群配置的各种参数,属性参数是一种键值对的格式,一般可以通过set(属性名,属性设置值)的方法修改属性。其中还包含了设置程序名setAppName、设置运行模式setMaster等方法。

在这里插入图片描述


2.1.2、SparkSession

  • SparkSession 是 spark2.x 引入的新概念,SparkSession 为用户提供统一的切入点
  • SparkConf、SparkContext、SQLContext、HiveContext都已经被封装在SparkSession当中

SparkSession.builder

.master("local")                 \\设置运行模式
.appName("Word Count")     \\设置名称
.config("spark.some.config.option", "some-value") \\设置集群配置
.enableHiveSupport()  \\ 支持读取Hive
.getOrCreate()  
  • 1
  • 2
  • 3
  • 4
  • 5

2.2、Spark实现单词计数

2.2.1、spark shell实现

在这里插入图片描述


2.2.2、使用本地模式运行Spark程序

数据:

Hello World Our World
Hello BigData Real BigData
Hello Hadoop Great Hadoop
Hadoop MapReduce
  • 1
  • 2
  • 3
  • 4

代码:

package demo.spark

import org.apache.spark.sql.SparkSession
object WordCount {
  def main(args:Array[String])={
    val spark = SparkSession.builder().master("local").appName("wordcount").getOrCreate()
    val sc = spark.sparkContext
    val wordCount = sc.textFile("D:\\data\\words.txt")
      .flatMap(x=>x.split(" "))
      .map(x=>(x,1)).reduceByKey(_+_)
    wordCount.foreach(x=>println(x))
  }
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13

在这里插入图片描述
改成自己传参(文件路径,分隔符):
在这里插入图片描述


2.3、使用集群模式运行Spark程序

2.3.1、开发环境下运行Spark

  • 点击“Run”→“Edit Configurations…”,弹出对话框如图所示
  • 如果程序有自定义的输入参数,继续点击“Program arguments”参数值设置

2.3.2、提交程序到集群中运行

  • 编写程序,可不设置运行模式

2.3.3、在IDEA中将程序打成jar包

  • 选择“File”→“Project Structure”命令
  • 在弹出的对话框中选择“Artifacts”选项
  • 选择“+”下的“JAR”选项中的“Empty”
  • 在弹出的对话框(下图)中修改“Name”为自定义的JAR包的名字“word”,双击右侧栏工程下的“‘workspace’compile output”,它会转移到左侧,wordspace表示工程名

2.3.4、编译生成Artifact

  • 选择菜单栏中的“Build”→“Build Artifacts”命令
  • 在弹出的方框(右下图)中选择“word” →“build”

在这里插入图片描述

  • 生成Artifact后,在工程目录中会有一个/out目录,可以看到生成的JAR包,如右上图所示
  • 在JAR包处单击右键,在弹出菜单中选择“Show in Explorer”命令,直接到达JAR包路径下
    在这里插入图片描述

2.3.5、上传jar包及相关文件

  • 将JAR包上传到Linux的/opt目录下
  • 将Windows本地的words.txt文件也上传到/opt目录下
  • 将/opt/words.txt上传到HDFS的/user/root下

2.3.6、提交任务

spark-submit提交任务

spark-submit --master<master-url> \
--deploy-mode <deploy-mode> \
--conf <key>=<value> \
... # other options
--class <main-class> \
<application-jar> \
application-arguments
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

参数解释:

--class:应用程序的入口点,指主程序。
--master:指定要连接的集群URL。
--deploy-mode:是否将驱动程序部署在工作节点(cluster)或本地作为外部客户端(client)。
--conf:设置任意Spark配置属性,即允许使用key=value格式设置任意的SparkConf配置选项。
application-jar:包含应用程序和所有依赖关系的捆绑JAR的路径。
application-arguments:传递给主类的main方法的参数。
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

运行模式
在这里插入图片描述

spark-submit运行示例

1、提交到yarn-cluster集群
在这里插入图片描述

  • - -master设置运行模式为yarn-cluster集群模式
  • - -class设置程序入口,然后设置JAR包路径,输入文件路径,输出文件路径,设置运行结果存储在HDFS

2、提交到spark集群
在这里插入图片描述


2.4、设置应用程序使用的集群资源

2.4.1、park-submit常用的配置项

2.4.2、设置spark-submit提交时的资源配置

设置spark-submit提交单词计数程序时的环境配置,设置运行时所启用的资源

spark-submit --master spark://master:7077 --executor-memory 512m --executor-cores 2 --class demo.spark.WordCount /opt/word.jar /user/root/words.txt " " /user/root/word_ count2
  • 1

在这里插入图片描述

(浏览器:master:8080查看)

在这里插入图片描述

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/盐析白兔/article/detail/427220
推荐阅读
相关标签
  

闽ICP备14008679号