学习笔记Spark—— 配置Spark IDEA开发环境

Posted 别呀

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了学习笔记Spark—— 配置Spark IDEA开发环境相关的知识,希望对你有一定的参考价值。

一、配置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()  

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

代码:

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))
  }
}


改成自己传参(文件路径,分隔符):


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

参数解释:

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

运行模式

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

(浏览器:master:8080查看)

以上是关于学习笔记Spark—— 配置Spark IDEA开发环境的主要内容,如果未能解决你的问题,请参考以下文章

Spark基础学习笔记10:Scala集成开发环境

Spark学习笔记6:Spark调优与调试

学习笔记Spark—— Spark集群的安装配置

2022年Spark基础学习笔记

学习笔记Spark—— Spark SQL应用—— Spark SQL简介环境配置

Spark基础学习笔记07:搭建Spark HA集群