java -jar运行spark程序找不到自己写的类的错误解决

错误信息:

.....

14/11/23 06:04:10 ERROR TaskSetManager: Task 2.0:1 failed 4 times; aborting job

14/11/23 06:04:10 INFO DAGScheduler: Failed to run sortByKey at Main.scala:29

Exception in thread "main" org.apache.spark.SparkException: Job aborted: Task 2.0:1 failed 4 times (most recent failure: Exception failure:
java.lang.ClassNotFoundException: youling.studio.Main$$anonfun$2)

at org.apache.spark.scheduler.DAGScheduler$$anonfun$org$apache$spark$scheduler$DAGScheduler$$abortStage$1.apply(DAGScheduler.scala:1020)

at org.apache.spark.scheduler.DAGScheduler$$anonfun$org$apache$spark$scheduler$DAGScheduler$$abortStage$1.apply(DAGScheduler.scala:1018)

at scala.collection.mutable.ResizableArray$class.foreach(ResizableArray.scala:59)

at scala.collection.mutable.ArrayBuffer.foreach(ArrayBuffer.scala:47)

at org.apache.spark.scheduler.DAGScheduler.org$apache$spark$scheduler$DAGScheduler$$abortStage(DAGScheduler.scala:1018)

at org.apache.spark.scheduler.DAGScheduler$$anonfun$processEvent$10.apply(DAGScheduler.scala:604)

at org.apache.spark.scheduler.DAGScheduler$$anonfun$processEvent$10.apply(DAGScheduler.scala:604)

at scala.Option.foreach(Option.scala:236)

at org.apache.spark.scheduler.DAGScheduler.processEvent(DAGScheduler.scala:604)

at org.apache.spark.scheduler.DAGScheduler$$anonfun$start$1$$anon$2$$anonfun$receive$1.applyOrElse(DAGScheduler.scala:190)

at akka.actor.ActorCell.receiveMessage(ActorCell.scala:498)

at akka.actor.ActorCell.invoke(ActorCell.scala:456)

at akka.dispatch.Mailbox.processMailbox(Mailbox.scala:237)

at akka.dispatch.Mailbox.run(Mailbox.scala:219)

at akka.dispatch.ForkJoinExecutorConfigurator$AkkaForkJoinTask.exec(AbstractDispatcher.scala:386)

at scala.concurrent.forkjoin.ForkJoinTask.doExec(ForkJoinTask.java:260)

at scala.concurrent.forkjoin.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1339)

at scala.concurrent.forkjoin.ForkJoinPool.runWorker(ForkJoinPool.java:1979)

at scala.concurrent.forkjoin.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:107)

14/11/23 06:04:10 INFO TaskSetManager: Loss was due to java.lang.ClassNotFoundException: youling.studio.Main$$anonfun$2 [duplicate 7]

....

其中的youling.studio.Main是我自己写的类

原因是:work上找不到此类

val conf = new SparkConf()

conf.setMaster("spark://single:8081")

.setSparkHome("/cloud/spark-0.9.1-bin-hadoop2")

.setAppName("word count")

.setJars(jars) //这行没有写,加上就好了

.set("spark.executor.memory","200m")

全部代码:

package youling.studio

import org.apache.spark.SparkContext._

import org.apache.spark.{SparkConf, SparkContext}

import scala.collection.mutable.ListBuffer

/**

* Created by Administrator on 2014/11/23.

*/

object Main {

def main (args: Array[String]) {

if(args.length!=3) {

println("CMD:java -jar *.jar input output")

System.exit(0)

}

val jars = ListBuffer[String]()

args(0).split(‘,‘).map(jars += _)

val conf = new SparkConf()

conf.setMaster("spark://single:8081")

.setSparkHome("/cloud/spark-0.9.1-bin-hadoop2")

.setAppName("word count")

.setJars(jars)

.set("spark.executor.memory","200m")

val sc = new SparkContext(conf)

val data = sc.textFile(args(1))

data.cache

println(data.count)

data.flatMap(_.split(" ")).map((_,1)).reduceByKey(_+_).map(x=>(x._2,x._1)).sortByKey(false).map(x=>(x._2,x._1)).saveAsTextFile(args(2))

}

}

时间: 2024-10-22 16:37:36

java -jar运行spark程序找不到自己写的类的错误解决的相关文章

使用java -jar运行jar包

使用java -jar运行jar包 摘要 其实不难,网上搜了不少,但是讲不全,或者讲得不少,有的细节却漏掉了, 在此,我想将详细点 java -jar 1.其实命令比较简单:进入相应的目录后,执行java -jar XXX.jar即可! 2.但是,为什么通过Maven打包或者Eclipse export出来的jar不能运行呢?原因很简单,没指定执行哪个类的main方法,如何指定?配置文件,项目文件夹下有一个META-INF文件夹,META-INF文件夹下有一个MANIFEST.MF文件,只要更改

Android:调用其他程序中的activity和Permission Denial: starting Intent 错误解决办法

今天想调试多个task中栈的情况,在测试程序中调用另一个程序的activity, 代码片段如下: [java] view plaincopy btnStartX=(Button)findViewById(R.id.btnStartX); btnStartX.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { // TODO Auto-generated method stu

java.io.IOException: Can't get Master Kerberos principal for use as renewer 错误解决

最近在集群中执行调度任务,或者是 在集群中执行 hadoop distcp 命令都会报这样的问题. java.io.IOException: Can't get Master Kerberos principal for use as renewer- at org.apache.hadoop.mapreduce.security.TokenCache.obtainTokensForNamenodesInternal(TokenCache.java:133) at org.apache.hado

如何运行Spark程序

[[email protected] spark-2.0.2-bin-hadoop2.6]# ./bin/spark-submit --class org.apache.spark.examples.SparkPi --master local examples/jars/spark-examples_2.11-2.0.2.jar 注意在hxsyl下,在root下运行提示hdfs上的historyserverforSpark没有权限,擦,好奇怪啊,另外运行后在hdfs上查看结果spark的用户是

luigi框架--关于python运行spark程序

首先,目标是写个python脚本,跑spark程序来统计hdfs中的一些数据.参考了别人的代码,故用了luigi框架. 至于luigi的原理 底层的一些东西Google就好.本文主要就是聚焦快速使用,知其然不知其所以然. python写Spark或mapreduce还有其他的方法,google上很多,这里用luigi只是刚好有参考的代码,而且理解起来还是简单,就用了. 上代码: import luigi, sysfrom datetime import datetime, timedeltafr

运行Spark程序的几种模式

一. local 模式 -- 所有程序都运行在一个JVM中,主要用于开发时测试    无需开启任何服务,可直接运行 ./bin/run-example 或 ./bin/spark-submit 如:    ./bin/run-example SparkPi 10    ./bin/spark-submit --class org.apache.spark.examples.SparkPi --master local[4] ./examples/jars/spark-examples_2.11-

安装java后,运行时提示找不到或无法加载主类 com.sun.tools.javac.Main

这个在我们班有不少同学遇到,想到初学者这种问题可能不在少数,我这里就对这个问题说一下原因与解决方法吧. 原因很简单: 首先,JDK是开发环境  JRE是运行环境 JDK安装包中包含JRE. 安装JDK的时候会提示两次安装目录,第一次是JDK安装目录,第二次是JRE的安装目录.遇到这种问题的朋友是把JDK与JRE安装在了同一目录下导致的. 解决办法: JKD安装时将两次目录选择放在不同的目录就可以了,比我的JDK安装目录是D:/JAVA/JDK    JRE安装目录是D:/JAVA/JRE 这样问

记一次运行spark程序遇到的权限问题

设置回滚点在本地运行时正常,在集群时就报错,后来是发现ceshi这个目录其他用户没有写的权限,修改其他用户的权限就好了 hdfs dfs -chmod 777 /ceshi 原文地址:https://www.cnblogs.com/feifeicui/p/11018761.html

java.lang.UnsatisfiedLinkError: dlopen failed: cannot locate symbol "srand" referenced by "libcocos2dcpp.so"...错误解决

在cocos2d-x 3.5中进行开发的时候,Android代码的编译可能会碰到如下错误:java.lang.UnsatisfiedLinkError: dlopen failed: cannot locate symbol "srand" referenced by "libcocos2dcpp.so"... 解决这个问题的办法之一就是把ndk版本从r10d降为r9d,不过这并不是推荐的方法,因为r9d对C++ 11的正则表达式支持不够,以及一些其它的原因. 解决