dolphinscheduler 3.14 組件 zepplin bug記錄

背景:

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)

對應源碼:https://github1s.com/apache/zeppelin/blob/master/zeppelin-client/src/main/java/org/apache/zeppelin/client/ParagraphResult.java

源碼修改:

 

bug2:沒有地方配置zeppelin賬號密碼登陸:

demo-zeppelin-paragraph

 

解決方案:

解決方案1.https://github.com/apache/dolphinscheduler/blob/dev/dolphinscheduler-task-plugin/dolphinscheduler-task-zeppelin/src/main/java/org/apache/dolphinscheduler/plugin/task/zeppelin/ZeppelinTask.java

在 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");
		}

	}
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章