背景:
dolphinscheduler 3.14
zepplin 0.8.2
bug1: json解析问题:
[INFO] 2023-03-31 11:33:28.312 +0800 - zeppelin version: 0.8.2
[INFO] 2023-03-31 11:33:28.312 +0800 - Success initialized task plugin instance success
[INFO] 2023-03-31 11:33:28.313 +0800 - Success set taskVarPool: null
[ERROR] 2023-03-31 11:33:28.448 +0800 - zeppelin task submit failed with error
kong.unirest.json.JSONException: JSONObject["progress"] not found.
at kong.unirest.json.JSONObject.getProperty(JSONObject.java:954)
at kong.unirest.json.JSONObject.lambda$getInt$11(JSONObject.java:485)
at kong.unirest.json.JSONObject.tryNumber(JSONObject.java:961)
at kong.unirest.json.JSONObject.getInt(JSONObject.java:485)
at org.apache.zeppelin.client.ParagraphResult.<init>(ParagraphResult.java:48)
at org.apache.zeppelin.client.ZeppelinClient.queryParagraphResult(ZeppelinClient.java:782)
at org.apache.zeppelin.client.ZeppelinClient.submitParagraph(ZeppelinClient.java:676)
at org.apache.zeppelin.client.ZeppelinClient.executeParagraph(ZeppelinClient.java:602)
at org.apache.zeppelin.client.ZeppelinClient.executeParagraph(ZeppelinClient.java:618)
at org.apache.dolphinscheduler.plugin.task.zeppelin.ZeppelinTask.handle(ZeppelinTask.java:131)
at org.apache.dolphinscheduler.server.worker.runner.DefaultWorkerDelayTaskExecuteRunnable.executeTask(DefaultWorkerDelayTaskExecuteRunnable.java:49)
源码修改:
bug2:没有地方配置zeppelin账号密码登陆:
解决方案:
在 getZeppelinClient 方法里面写登陆逻辑,调用 zeppelinClient.login方法。根据传入的参数获取用户名密码。
不过这样需要编译ds源码,然后替换掉jar
解决方案2:org.apache.zeppelin.client.ZeppelinClient.ZeppelinClient(ClientConfig) 方法里面写登陆逻辑
sdk登陆代码案例:
package org.zeppelin;
import java.util.HashMap;
import java.util.Map;
import org.apache.zeppelin.client.ClientConfig;
import org.apache.zeppelin.client.ParagraphResult;
import org.apache.zeppelin.client.ZeppelinClient;
public class ZeppelinTest {
public static void main(String[] args) throws Exception {
ClientConfig clientConfig = new ClientConfig("http://fun03:28080");
ZeppelinClient zClient = new ZeppelinClient(clientConfig);
zClient.login("hadoop", "");
String zeppelinVersion = zClient.getVersion();
System.out.println("Zeppelin version: " + zeppelinVersion);
// execute note 2A94M5J1Z paragraph by paragraph
try {
//ParagraphResult paragraphResult = zClient.executeParagraph("2HXQ8YRYN", "20230330-101251_25695257");
ParagraphResult paragraphResult = zClient.executeParagraph("2HXQ8YRYN","20230330-101251_25695257");
System.out.println("Execute the 1st spark tutorial paragraph, paragraph result: " + paragraphResult);
/*paragraphResult = zClient.executeParagraph("2A94M5J1Z", "20150210-015302_1492795503");
System.out.println("Execute the 2nd spark tutorial paragraph, paragraph result: " + paragraphResult);
Map<String, String> parameters = new HashMap<>();
parameters.put("maxAge", "40");
paragraphResult = zClient.executeParagraph("2A94M5J1Z", "20150212-145404_867439529", parameters);
System.out.println("Execute the 3rd spark tutorial paragraph, paragraph result: " + paragraphResult);
parameters = new HashMap<>();
parameters.put("marital", "married");
paragraphResult = zClient.executeParagraph("2A94M5J1Z", "20150213-230422_1600658137", parameters);
*/ System.out.println("Execute the 4th spark tutorial paragraph, paragraph result: " + paragraphResult);
System.out.println("");
} finally {
// you need to stop interpreter explicitly if you are running paragraph
// separately.
//zClient.stopInterpreter("2A94M5J1Z", "spark");
}
}
}