栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

IDEA 本地运行Spark

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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


    4.0.0

    org.example
    spark-test
    1.0-SNAPSHOT

    
        8
        8
        2.12
        3.0.3
        UTF-8
    
    
        
        
            org.apache.spark
            spark-core_${scala.version}
            ${spark.version}
        
    

  • 这里选择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 {
  
  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 结果输出


说明本地运行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

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

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

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