sparksubmit提交任务 java,spark-submit 提交任务报错 java.lang.ClassNotFoundException: Demo02...

案例:把sparksql的程序提交到spark的单机模式下执行

package demo01

import org.apache.spark.SparkContext

import org.apache.spark.sql.SQLContext

import org.apache.spark.SparkConf

object Demo02 {

def main(args: Array[String]): Unit = {

//创建配置

val conf = new SparkConf()

conf.setAppName("Demo02")      //创建应用程序first

conf.setMaster("local")

//                conf.set("spark.shuffle.manager","hash")

//基于配置生成sc

val sc = new SparkContext(conf)

//创建出sqlContext

val sqlContext = new SQLContext(sc)

import sqlContext.implicits._

val rdd = sc.makeRDD(List((1,"zhang"),(2,"li"),(3,"wang")))

val df = rdd.toDF("id","name")

//                df.registerTempTable("tabx");

df.createTempView("tabx")

val df2 = sqlContext.sql("select * from tabx order by name")

val rdd2 = df2.toJavaRDD.repartition(1)

rdd2.saveAsTextFile("file:///home/hadoop/df.txt");

//                rdd2.saveAsTextFile("d:/df")

sc.stop()

}

}

打成jar--> sql.jar

提交集群运行  ./spark-submit --class Demo02 ./sql.jar

java.lang.ClassNotFoundException: Demo02

at java.net.URLClassLoader.findClass(URLClassLoader.java:381)

at java.lang.ClassLoader.loadClass(ClassLoader.java:424)

at java.lang.ClassLoader.loadClass(ClassLoader.java:357)

at java.lang.Class.forName0(Native Method)

at java.lang.Class.forName(Class.java:348)

at org.apache.spark.util.Utils$.classForName(Utils.scala:230)

at org.apache.spark.deploy.SparkSubmit$.org$apache$spark$deploy$SparkSubmit$$runMain(SparkSubmit.scala:732)

at org.apache.spark.deploy.SparkSubmit$.doRunMain$1(SparkSubmit.scala:180)

at org.apache.spark.deploy.SparkSubmit$.submit(SparkSubmit.scala:205)

at org.apache.spark.deploy.SparkSubmit$.main(SparkSubmit.scala:119)

at org.apache.spark.deploy.SparkSubmit.main(SparkSubmit.scala)

解决办法:添加类的全路径名称  ./spark-submit --class demo01.Demo02 ./sql.jar

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值