【问题标题】:Spark-JobServer Java Client - ClassNotFoundExceptionSpark-JobServer Java 客户端 - ClassNotFoundException
【发布时间】:2016-08-11 05:52:03
【问题描述】:

我正在使用来自此 GitHub 项目的 Spark JobServer Java 客户端:

https://github.com/bluebreezecf/SparkJobServerClient

我可以将包含我要执行的作业的 Jar 上传到 Spark JobServer。日志表明它存储在 /tmp/spark-jobserver 目录结构中。但是,当从我创建的上下文中访问它时,如果找不到 Job 类,则不会为我的 Job 请求加载 Jar。

编辑:我后来发现Java客户端上传的jar已经损坏了。这就是 Spark JobServer 无法使用它的原因。当我用一个好的 Jar 手动替换它时,JobServer 运行良好。现在,真正的问题与客户端的 uploadSparkJobJar() API 有关。

org.khaleesi.carfield.tools.sparkjobserver.api.SparkJobServerClientException: 星火作业服务器http://sparkjobserverhost:8090/响应404 {“状态”: “错误”,“结果”:“classPath org.kritek.scalability.jobs.Olap1 不是 找到”}

这是我的代码:

        //POST /contexts/<name>--Create context with parameters
        Map<String, String> params = new HashMap<String, String>();
        params.put(ISparkJobServerClientConstants.PARAM_MEM_PER_NODE, "512m");
        params.put(ISparkJobServerClientConstants.PARAM_NUM_CPU_CORES, "10");
        params.put("dependent-jar-uris", "file:///tmp/spark-jobserver/filedao/data/olap1_job-2016-08-11T04_47_07.802Z.jar");
        boolean success = client.createContext(contextName, params);

        assertTrue(success);

        //dependent-jar-uris=file:///some/path/of/my-foo-lib.jar

        //Post /jobs---Create a new job 
        params.put(ISparkJobServerClientConstants.PARAM_APP_NAME, appName);
        params.put(ISparkJobServerClientConstants.PARAM_CLASS_PATH, "org.kritek.scalability.jobs.Olap1");

        SparkJobResult result = null;
        String jobId = null;

        params.put(ISparkJobServerClientConstants.PARAM_CONTEXT, contextName);
        params.put(ISparkJobServerClientConstants.PARAM_SYNC, "true");
        result = client.startJob("conf-1=1", params);

【问题讨论】:

标签: spark-jobserver


【解决方案1】:

从这里检查答案 spark submit java.lang.ClassNotFoundException

注意:如果您使用 maven 项目,您可以使用 mvn package assembly:single 来包含您的依赖项。

spark-submit --class Test --master yarn --deploy-mode cluster --supervise --verbose jarName.jar hdfs:///somePath/Test.txt hdfs:///somePath/Test.out

尝试使用,也可以查看项目中的绝对路径

--class com.myclass.Test

【讨论】:

    猜你喜欢
    • 2017-01-16
    • 1970-01-01
    • 2012-04-25
    • 1970-01-01
    • 1970-01-01
    • 2021-09-06
    • 1970-01-01
    • 1970-01-01
    • 2016-02-17
    相关资源
    最近更新 更多