首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

Java 應用與 Spark 叢集互動完整指南:REST API、Livy、Spark Job Server

     編輯:程式設計綜合問答

三種主流互動模式比較

模式適用場景優點缺點
spark-submit批次離線作業原生、無額外依賴啟動慢、無法即時互動
Livy REST API互動式查詢、多租戶HTTP/JSON、支援會話、多語言需額外部署 Livy 服務
Spark Job Server低延遲、長運行作業JAR 熱載入、Context 復用、非同步社群較小、維護頻率低

推薦方案:Livy REST API 完整範例

// 1. 提交批次作業
POST /batches
{
  "file": "hdfs:///jars/my-spark-app.jar",
  "className": "com.example.Main",
  "args": ["arg1", "arg2"],
  "conf": {"spark.executor.memory": "2g"}
}

// 2. 互動式 Session
POST /sessions
{ "kind": "spark", "conf": {"spark.sql.shuffle.partitions": "10"} }

// 3. 在 Session 中執行程式碼
POST /sessions/0/statements
{ "code": "val df = spark.read.parquet(\"hdfs:///data\")\ndf.show()" }

Java 客戶端整合

使用 Livy Java Client 或直接呼叫 HttpClient:

HttpPost post = new HttpPost("https://livy-host:8998/batches");
post.setEntity(new StringEntity(json, ContentType.APPLICATION_JSON));
CloseableHttpResponse resp = client.execute(post);
// 解析 batch ID,輪詢 /batches/{id} 狀態直到 success

參考資源

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved