在IntelliJ 启动Spark的Master和Work

为了阅读Spark阅读源码方便,可以直接在IntelliJ 启动Master和Work,方便debug,

下面介绍方法:

  1. 修改pom.xml
    修改pom.xml中com.google.guava的scope,如下图:
    这里写图片描述
  2. 启动master
    右键Run ‘Master.main()’
  3. 启动work
    启动work需要传入mater URL,如下图
    这里写图片描述

启动后master如下图:
这里写图片描述

常见问题

  1. java.lang.IllegalStateException: Cannot find any assembly build directories.
    用该源代码重新编译Spark后将编译后的jar文件放在spark\assembly\target\scala-2.10\,并将datanucleus-api-jdo-3.2.6.jar,datanucleus-core-3.2.10.jar,datanucleus-rdbms-3.2.9.jar放在spark\lib_managed\jars\
  2. java.io.InvalidClassException: org.apache.spark.rdd.RDD; local class incompatible: stream classdesc serialVersionUID = -3550615713128734032, local class serialVersionUID = -1180408054267465065
    spark\assembly\target\scala-2.10\下的jar文件不是该源码编译的
### 在 IntelliJ IDEA 中进行 Spark 配置 为了在 IntelliJ IDEA 中成功配置并运行 Spark 应用程序,需遵循一系列特定设置来确保项目能够正确识别利用 Spark 的功能。 #### 创建 Maven 项目 首先创建一个新的 Maven 项目,在 `pom.xml` 文件中加入必要的依赖项以引入 Spark 其他所需的库。这一步骤至关重要,因为这些依赖定义了应用程序可以使用的类方法[^1]。 ```xml <dependencies> <!-- https://mvnrepository.com/artifact/org.apache.spark/spark-core --> <dependency> <groupId>org.apache.spark</groupId> <artifactId>spark-core_2.12</artifactId> <version>3.0.0</version> </dependency> <!-- Add other dependencies as needed, such as spark-sql for DataFrame support --> </dependencies> ``` #### 设置 Spark 运行环境 通过编写 Scala 或 Java 代码初始化 Spark 上下文 (SparkContext),这是与集群交互的基础对象。对于更高级别的 API 使用,则可通过构建 `SparkSession` 来简化操作。 ```scala import org.apache.spark.sql.SparkSession import org.apache.spark.{SparkConf, SparkContext} val conf = new SparkConf() .setAppName("Simple Application") .setMaster("local[*]") // For local testing; change to your master URL when deploying. // If you need to specify JAR files explicitly during development or deployment, // use setJars method with a list of paths pointing to those JARs. val sc = new SparkContext(conf) val spark = SparkSession.builder() .appName("Spark SQL basic example") .config("spark.some.config.option", "some-value") // Optional configurations can be added here. .getOrCreate() // Your application logic goes here... sc.stop() // Remember to stop the context after finishing work. ``` #### 调试提交作业到集群 当本地测试完成后准备部署至生产环境中时,应调整 `.setMaster()` 参数指向实际的 Spark 主节点地址,并确认所有必需的资源文件已上传至目标位置以便远程执行。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值