IDEA 本地运行Spark

IDEA 本地运行Spark

  • 1、背景
  • 2、环境准备
  • 3、 具体流程
    • 3.1 IDEA创建maven项目
    • 3.2 pom.xml配置
    • 3.3 Demo程序示例
    • 3.4 结果输出
  • 4、 总结改进

1、背景

主要用于本地阅读Spark源码,同时也可以用于实战运行spark程序

2、环境准备

jdk : 1.8+
scala: 2.12+ (Spark 3x要求 scala版本2.12)

3、 具体流程

3.1 IDEA创建maven项目

File->Maven->Next

注意事项:

  1. 配置maven 国内镜像,用于加速下载jar包
    参考:https://developer.aliyun.com/article/695269
  2. 配置idea scala sdk, File–Project Structure–Platform Settings–Global Libreries,用于项目中新建scals class文件
    参考:https://blog.csdn.net/xuebahuobao/article/details/98207566

3.2 pom.xml配置


<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0modelVersion>

    <groupId>org.examplegroupId>
    <artifactId>spark-testartifactId>
    <version>1.0-SNAPSHOTversion>

    <properties>
        <maven.compiler.source>8maven.compiler.source>
        <maven.compiler.target>8maven.compiler.target>
        <scala.version>2.12scala.version>
        <spark.version>3.0.3spark.version>
        <encoding>UTF-8encoding>
    properties>
    <dependencies>
        
        <dependency>
            <groupId>org.apache.sparkgroupId>
            <artifactId>spark-core_${scala.version}artifactId>
            <version>${spark.version}version>
        dependency>
    dependencies>
project>
  • 这里选择Spark 3.0.3 ,因为实际工作中用的也是spark3x;
  • scala版本和本地安装的保持一致;
  • 只导入spark-core依赖,因为demo程序中简单得只需要spark-core包

3.3 Demo程序示例

一般scala程序,放在main文件夹下新建的一个scala文件夹,改文件夹标记为Sources Root;
IDEA 本地运行Spark_第1张图片

import org.apache.spark.rdd.RDD
import org.apache.spark.{SparkConf, SparkContext}

object WordCount {
  /**
   * spark word count
   *
   * @param args 传入参数
   */
  def main(args: Array[String]): Unit = {
    // 本地模式的最简单一种
    val conf = new
        SparkConf().setMaster("local").setAppName("WordCount")
    val sc = new SparkContext(conf)

    val wordString = Array("hadoop", "hadoop", "spark", "spark", "spark", "spark", "flink", "flink", "flink", "flink",
      "flink", "flink", "hive", "flink", "hdfs", "yarn", "zookeeper", "hbase", "impala", "sqoop", "hadoop")
     // 从本地文件创建
    //val lines: RDD[String] = sc.textFile("./wcinput/wc.txt")
    val lines = sc.parallelize(wordString)
    lines.flatMap(_.split(" ")).map((_, 1)).reduceByKey(_ + _).collect().foreach(println)
    sc.stop()
  }
}

Spark运行模式介绍:
概括起来为3种,本地模式,standalone模式,yarn/mesos模式, 我的实际工作中为yarn-master模式
细分如下:

  1. local 在本地运行,只有一个工作进程,无并行计算能力。
  2. local[K] 在本地运行,有 K 个工作进程,通常设置 K 为机器的CPU 核心数量。
  3. local[*] 在本地运行,工作进程数量等于机器的 CPU 核心数量。
  4. spark://HOST:PORT 以 Standalone 模式运行,这是 Spark 自身提供的集群运行模式,默认端口号: 7077。
  5. mesos-client ./spark-shell --master mesos://host:port --deploy-mode client
  6. mesos-cluster ./spark-shell --master mesos://host:port --deploy-mode cluster
  7. yarn-client 在 Yarn 集群上运行,Driver 进程在本地,Work 进程在 Yarn 集群上。./spark-shell --master yarn --deploy-mode client。Yarn 集群地址必须在HADOOP_CONF_DIRorYARN_CONF_DIR 变量里定义
  8. yarn-cluster 在 Yarn 集群上运行,Driver 和Work 进程都在 Yarn 集群上。./spark-shell --master yarn --deploy-mode cluster。Yarn 集群地址必须在HADOOP_CONF_DIRorYARN_CONF_DIR 变量里定义
    参考:https://blog.csdn.net/shuimofengyang/article/details/100124601

3.4 结果输出

IDEA 本地运行Spark_第2张图片
说明本地运行spark成功

4、 总结改进

  1. 仅仅本地运行spark, 说明只需要spark基础jar包,scala环境(底层依赖java),java环境,对应我们pom.xml配置的spark-core依赖,提前安装的scala和java环境。
  2. idea 源码阅读快捷键

Ctrl+鼠标左键,这个常用语查看变量、类型及方法的定义以及查看方法的实现
Ctrl+F12,这个用于查看一个文件的结构。
Ctrl+H,这个用于查看一个类的继承关系树,是自顶向下的结构显示,也可以点击相应的按钮变成自底向上
Alt+左右方向键,阅读代码时,我们经常进入调用的方法查看后又跳转回调用的位置,Ctrl+左方向键是退回上一个阅读的位置,Ctrl+右方向键是前进到下一个阅读的位置。
Ctrl+Alt+H,这个用于显示方法被哪些方法调用,并生成调用树。
原文链接:https://blog.csdn.net/u013180299/article/details/52333992

你可能感兴趣的:(大数据开发,spark)