spark 1.6 idea本地运行错误

更新Spark至1.6后,运行程序出现内存不足错误。通过调整JVM参数,如-Xms128m, -Xmx512m等,成功解决了内存限制问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

将spark maven更新至1.6,运行原有程序,发现以下错误:

java.lang.IllegalArgumentException: System memory 259522560 must be at least 4.718592E8. Please use a larger heap size.
    at org.apache.spark.memory.UnifiedMemoryManager$.getMaxMemory(UnifiedMemoryManager.scala:193)
    at org.apache.spark.memory.UnifiedMemoryManager$.apply(UnifiedMemoryManager.scala:175)
    at org.apache.spark.SparkEnv$.create(SparkEnv.scala:354)
    at org.apache.spark.SparkEnv$.createDriverEnv(SparkEnv.scala:193)
    at org.apache.spark.SparkContext.createSparkEnv(SparkContext.scala:288)
    at org.apache.spark.SparkContext.<init>(SparkContext.scala:457)
    at org.apache.spark.api.java.JavaSparkContext.<init>(JavaSparkContext.scala:59)
    at final_paper_time.main(final_paper_time.java:153)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:601)
    at com.intellij.rt.execution.application.AppMain.main(AppMain.java:144)
16/03/10 00:35:36 INFO SparkContext: Successfully stopped SparkContext

解决方案:修改运行配置,在VM中增加下述参数:

-Xms128m-Xmx512m-XX:MaxPermSize=300m-ea



 

转载于:https://www.cnblogs.com/zhoudayang/p/5260366.html

### 使用 IntelliJ IDEA 搭建和运行 Spark 开发环境 #### 创建 Maven 工程 为了在本地使用 IntelliJ IDEA 构建 Spark 的开发环境,首先需要创建一个新的 Maven 项目。这一步骤已经在Intellij IDEA中通过安装 scala 插件得以准备就绪[^1]。 #### 配置 JDK 和 Scala 版本 确保选择了合适的 JDK 版本(推荐 jdk8.0),因为过高版本可能会导致 pom.xml 文件配置出现问题[^2]。对于 Scala 的版本选择,请依据所使用的 Spark 版本来决定;例如,如果采用的是 Spark-2.3.2,则应搭配 Scala-2.11.x 版本[^4]。 #### 添加 Spark 依赖项到 `pom.xml` 编辑项目的`pom.xml`文件以加入必要的 Spark 库依赖关系。对于仅需在 Windows 上进行 Spark 编程练习的情况而言,并需要实际部署 Hadoop 或者 Spark 环境,而是能够借助于 Maven 来管理这些库的引入。具体来说就是向该 XML 文档中的 `<dependencies>` 节点下增加如下所示的内容: ```xml <dependency> <groupId>org.apache.spark</groupId> <artifactId>spark-core_2.11</artifactId> <version>2.3.2</version> </dependency> ``` 上述代码片段展示了如何指定 spark-core 这个核心组件作为依赖对象及其对应的 Scala 版本号与 Spark 发布版次。 #### 编写并测试简单的 Spark 程序 一旦完成了以上准备工作之后就可以着手编写第一个 Spark 应用了。下面给出了一段用于验证整个设置过程是否成功的简单例子——计算给定列表里各个元素出现次数的小型应用程序: ```scala import org.apache.spark.{SparkConf, SparkContext} object WordCount { def main(args: Array[String]): Unit = { val conf = new SparkConf().setAppName("word count").setMaster("local[*]") val sc = new SparkContext(conf) val words = List("hello", "world", "hello") val wordCounts = sc.parallelize(words).countByValue() println(wordCounts) sc.stop() } } ``` 这段代码实现了基本的功能演示:初始化 Spark 上下文、加载数据集、执行操作以及关闭资源连接。值得注意的是,在调用 setMaster 方法时指定了参数 `"local[*]"` 表明此应用将在单机模式下的所有可用 CPU 核心上并发执行。 #### 执行程序 最后一步就是在 IDE 中直接点击按钮启动刚才编写的 Spark 应用程序了。由于之前已经正确设置了所有的外部库路径和其他必要条件,所以现在应该可以顺利地看到预期的结果输出至控制台窗口中。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值