使用Idea提交Spark程序
来源:互联网 发布:淘宝优质网店怎么搜 编辑:程序博客网 时间:2024/05/23 01:26
前言
参考这个文章(使用Intellij IDEA开发并提交Spark应用到远程Spark集群)试了一下,把遇到问题记录一下。
正文
1,错误:Permission denied: user=root, access=WRITE, inode=”/user”:hdfs:supergroup:dr
这个问题的原因是因为Idea在执行程序时,使用了系统用户作为向Hadoop进行写的用户了。比如,你的电脑系统用户是:administrator,而你的Hadoop用户是:hadoop,用户不一样,所以写不进去。
解决办法:设置“HADOOP_USER_NAME=hadoop”为环境变量。
设置的办法有两个:
- 在Idea里进行设置,点上面的“Edit Configurations”,然后选择要执行的Application,在右边进行设置“Environment Variables”。
- 在系统里进行设置,可以编辑“.bash_profile”文件,添加
export HADOOP_USER_NAME=hadoop
。
设置完后,可以用System.getenv()
方法进行测试,看是否能读取到。
2,错误:java.lang.ClassCastException: cannot assign instance of java.lang.invoke.SerializedLambda to field
这个问题的原因是:没有使用setJars方法,进行设置Jar文件。
在参考的文章中,进行了使用了setJars
方法。但自己测试时没有使用,因为不知道这行语句的作用。
在网上查了一下,发生这个错误最根本的原因是因为Lambda表达式解析的问题,自己的测试程序中,使用了Lambda表达式,如果各个Worker中没有解析Lambda表达式的方法的话,就会产生这样的错误。setJars
方法的目的就是把生成Lambda表达式的程序,给各个Worker,让他们知道如何解析。感兴趣的可以看一下:java.lang.ClassCastException using lambda expressions in spark job on remote server
如何使用setJars
方法呢?把你要提交的类,生成一个Jar,把这个Jar的路径设置到setJars
方法里就可以了。例如:
SparkConf conf = new SparkConf().setAppName("wordCount_111") .setMaster("spark://your-master-ip:7077") .setJars(new String[]{"/Users/myaccount/IdeaProjects/spark/spark-wordcount/out/artifacts/spark_word_count/spark_word_count.jar"});
0 0
- 使用Idea提交Spark程序
- 使用IDEA运行Spark程序
- 使用IDEA开发spark程序
- 使用idea sbt运行spark程序
- 基于IDEA使用Spark API开放Spark程序(1)
- IDEA调试SPARK程序
- 提交spark程序
- win提交spark程序
- spark程序提交设置
- Spark API编程动手实战-08-基于IDEA使用Spark API开发Spark程序-01
- Spark API编程动手实战-08-基于IDEA使用Spark API开发Spark程序-02
- Intellij idea使用java编写并执行spark程序
- 使用IDEA编写基于Scala的spark程序中的常见问题
- 使用IDE(eclipse,idea)开发spark程序
- Spark2.1.1<IDEA使用SBT或者Maven构建spark程序>
- IDEA 打jar,提交spark集群运行
- 跟天齐老师学Spark(5)--使用IDEA开发Spark程序
- Learning Spark——使用Intellij Idea开发基于Maven的Spark程序
- C# UDP穿越NAT,UDP打洞,UDP Hole Punching
- Maven+Spring实现邮件发送
- jsp页面中jstl标签详解
- MDK For LPC Startup.S记录
- CSS3的特性
- 使用Idea提交Spark程序
- jQuery简单实现购物车添加删除操作
- 解决·微信小程序开发-网络请求报Invalid request 400错误
- 解决AndroidStudio2.3一直building gradle project info问题
- Android签名和获取方式(Debug和发布签名)
- XSS(偷你的Cookies)
- html5初级入门-第二章
- Git学习整理
- python nmap工具