
- 1、背景
- 2、环境准备
- 3、 具体流程
- 3.1 IDEA创建maven项目
- 3.2 pom.xml配置
- 3.3 Demo程序示例
- 3.4 结果输出
- 4、 总结改进
主要用于本地阅读Spark源码,同时也可以用于实战运行spark程序
2、环境准备jdk : 1.8+
scala: 2.12+ (Spark 3x要求 scala版本2.12)
File->Maven->Next
3.2 pom.xml配置注意事项:
- 配置maven 国内镜像,用于加速下载jar包
参考:https://developer.aliyun.com/article/695269- 配置idea scala sdk, File–Project Structure–Platform Settings–Global Libreries,用于项目中新建scals class文件
参考:https://blog.csdn.net/xuebahuobao/article/details/98207566
<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包
一般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()
}
}
3.4 结果输出Spark运行模式介绍:
概括起来为3种,本地模式,standalone模式,yarn/mesos模式, 我的实际工作中为yarn-master模式
细分如下:
- local 在本地运行,只有一个工作进程,无并行计算能力。
- local[K] 在本地运行,有 K 个工作进程,通常设置 K 为机器的CPU 核心数量。
- local[*] 在本地运行,工作进程数量等于机器的 CPU 核心数量。
- spark://HOST:PORT 以 Standalone 模式运行,这是 Spark 自身提供的集群运行模式,默认端口号: 7077。
- mesos-client ./spark-shell --master mesos://host:port --deploy-mode client
- mesos-cluster ./spark-shell --master mesos://host:port --deploy-mode cluster
- yarn-client 在 Yarn 集群上运行,Driver 进程在本地,Work 进程在 Yarn 集群上。./spark-shell --master yarn --deploy-mode client。Yarn 集群地址必须在HADOOP_CONF_DIRorYARN_CONF_DIR 变量里定义
- 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
说明本地运行spark成功
- 仅仅本地运行spark, 说明只需要spark基础jar包,scala环境(底层依赖java),java环境,对应我们pom.xml配置的spark-core依赖,提前安装的scala和java环境。
- idea 源码阅读快捷键
Ctrl+鼠标左键,这个常用语查看变量、类型及方法的定义以及查看方法的实现
Ctrl+F12,这个用于查看一个文件的结构。
Ctrl+H,这个用于查看一个类的继承关系树,是自顶向下的结构显示,也可以点击相应的按钮变成自底向上
Alt+左右方向键,阅读代码时,我们经常进入调用的方法查看后又跳转回调用的位置,Ctrl+左方向键是退回上一个阅读的位置,Ctrl+右方向键是前进到下一个阅读的位置。
Ctrl+Alt+H,这个用于显示方法被哪些方法调用,并生成调用树。
原文链接:https://blog.csdn.net/u013180299/article/details/52333992
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)