当前位置:   article > 正文

IDEA 本地运行Spark_本地用idea跑spark的网页端口

本地用idea跑spark的网页端口

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配置

<?xml version="1.0" encoding="UTF-8"?>
<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.0</modelVersion>

    <groupId>org.example</groupId>
    <artifactId>spark-test</artifactId>
    <version>1.0-SNAPSHOT</version>

    <properties>
        <maven.compiler.source>8</maven.compiler.source>
        <maven.compiler.target>8</maven.compiler.target>
        <scala.version>2.12</scala.version>
        <spark.version>3.0.3</spark.version>
        <encoding>UTF-8</encoding>
    </properties>
    <dependencies>
        <!-- 导入spark的依赖 -->
        <dependency>
            <groupId>org.apache.spark</groupId>
            <artifactId>spark-core_${scala.version}</artifactId>
            <version>${spark.version}</version>
        </dependency>
    </dependencies>
</project>
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 这里选择Spark 3.0.3 ,因为实际工作中用的也是spark3x;
  • scala版本和本地安装的保持一致;
  • 只导入spark-core依赖,因为demo程序中简单得只需要spark-core包

3.3 Demo程序示例

一般scala程序,放在main文件夹下新建的一个scala文件夹,改文件夹标记为Sources Root;
在这里插入图片描述

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

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25

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 结果输出

在这里插入图片描述
说明本地运行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

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

闽ICP备14008679号