栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 前沿技术 > 大数据 > 大数据系统

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

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

一、配置Spark开发环境 1. 1、配置Spark开发依赖包
  • 创建一个Scala工程
    (scala插件及工程创建教程:https://www.cnblogs.com/frankdeng/p/9092512.html)
  • 点击菜单栏中的“File”->“Project Structure”,打开右上图所示的界面
  • 选择“Libraries”
  • 单击“+”按钮,选择“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 
--deploy-mode  
--conf = 
... # other options
--class  
 
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查看)

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/308056.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号