久久精品人人爽,华人av在线,亚洲性视频网站,欧美专区一二三

MaxCompute Spark開發(fā)的示例分析

145次閱讀
沒有評論

共計 13742 個字符,預(yù)計需要花費 35 分鐘才能閱讀完成。

這期內(nèi)容當(dāng)中丸趣 TV 小編將會給大家?guī)碛嘘P(guān) MaxCompute Spark 開發(fā)的示例分析,文章內(nèi)容豐富且以專業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

MaxCompute Spark 開發(fā) 0. 概述

MaxCompute Spark 是 MaxCompute 提供的兼容開源的 Spark 計算服務(wù),它在統(tǒng)一的計算資源和數(shù)據(jù)集權(quán)限體系之上,提供 Spark 計算框架,支持用戶以熟悉的開發(fā)使用方式提交運行 Spark 作業(yè),以滿足更豐富的數(shù)據(jù)處理分析場景。

下面將重點介紹 MaxCompute Spark 能夠支撐的應(yīng)用場景,同時說明開發(fā)的依賴條件和環(huán)境準(zhǔn)備,重點對 Spark 作業(yè)開發(fā)、提交到 MaxCompute 集群執(zhí)行、診斷進(jìn)行介紹。

1. 前提條件

MaxCompute Spark 是阿里云提供的 Spark on MaxCompute 的解決方案,能夠讓 Spark 應(yīng)用運行在托管的 MaxCompute 計算環(huán)境中。為了能夠在 MaxCompute 環(huán)境中安全地運行 Spark 作業(yè),MaxCompute 提供了以下 SDK 和 MaxCompute Spark 定制發(fā)布包。

SDK 定位于開源應(yīng)用接入 MaxCompute SDK:
提供了集成所需的 API 說明以及相關(guān)功能 Demo,用戶可以基于項目提供的 Spark-1.x 以及 Spark-2.x 的 example 項目構(gòu)建自己的應(yīng)用,并且提交到 MaxCompute 集群上。
MaxCompute Spark 客戶端發(fā)布包:
集成了 MaxCompute 認(rèn)證功功能,作為客戶端工具,用于通過 Spark-submit 方式提交作業(yè)到 MaxCompute 項目中運行,目前提供了面向 Spark1.x 和 Spark2.x 的 2 個發(fā)布包:spark-1.6.3 和 spark-2.3.0 SDK 在開發(fā)時,可以通過配置 Maven 依賴進(jìn)行引用。Spark 客戶端需要根據(jù)開發(fā)的 Spark 版本,提前下載。如,需要開發(fā) Spark1.x 應(yīng)用,應(yīng)下載 spark-1.6.3 版本客戶端;如需開發(fā) Spark2.x 應(yīng)用,應(yīng)下載 spark-2.3.0 客戶端。

2. 開發(fā)環(huán)境準(zhǔn)備 2.1 Maxcompute Spark 客戶端準(zhǔn)備

MaxCompute Spark 發(fā)布包:集成了 MaxCompute 認(rèn)證功功能,作為客戶端工具,用于通過 Spark-submit 方式提交作業(yè)到 MaxCompute 項目中運行,目前提供了面向 Spark1.x 和 Spark2.x 的 2 個發(fā)布包:

spark-1.6.3

spark-2.3.0

請根據(jù)需要開發(fā)的 Spark 版本,選擇合適的版本下載并解壓 Maxcompute Spark 發(fā)布包。

2.2 設(shè)置環(huán)境變量

JAVA_HOME 設(shè)置

# 盡量使用 JDK 1.7+ 1.8+ 最佳
export JAVA_HOME=/path/to/jdk
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$JAVA_HOME/bin:$PATH

SPARK_HOME 設(shè)置

export SPARK_HOME=/path/to/spark_extracted_package
export PATH=$SPARK_HOME/bin:$PATH

2.3 設(shè)置 Spark-defaults.conf

在 $SPARK_HOME/conf
路徑下存在 spark-defaults.conf.template 文件,這個可以作為 spark-defaults.conf 的模版,需要在該文件中設(shè)置 MaxCompute 相關(guān)的賬號信息后,才可以提交 Spark 任務(wù)到 MaxCompute。默認(rèn)配置內(nèi)容如下,將空白部分根據(jù)實際的賬號信息填上即可,其余的配置可以保持不變。

# MaxCompute 賬號信息
spark.hadoop.odps.project.name =
spark.hadoop.odps.access.id =
spark.hadoop.odps.access.key =
# 以下配置保持不變
spark.sql.catalogImplementation=odps
spark.hadoop.odps.task.major.version = cupid_v2
spark.hadoop.odps.cupid.container.image.enable = true
spark.hadoop.odps.cupid.container.vm.engine.type = hyper
spark.hadoop.odps.end.point = http://service.cn.maxcompute.aliyun.com/api
spark.hadoop.odps.runtime.end.point = http://service.cn.maxcompute.aliyun-inc.com/api

3. 訪問 MaxCompute 表所需依賴

若作業(yè)需要訪問 MaxCompute 表,需要依賴 odps-spark-datasource 模塊,本節(jié)介紹如何把該依賴編譯安裝到本地 maven 倉庫;若無需訪問可直接跳過。

git clone 代碼,github 地址: https://github.com/aliyun/aliyun-cupid-sdk/tree/3.3.2-public

#git clone git@github.com:aliyun/aliyun-cupid-sdk.git

編譯模塊

#cd ${path to aliyun-cupid-sdk}
#git checkout 3.3.2-public

// 編譯并安裝 cupid-sdk
#cd ${path to aliyun-cupid-sdk}/core/cupid-sdk/
#mvn clean install -DskipTests

// 編譯并安裝 datasource。依賴 cupid-sdk
// for spark-2.x
# cd ${path to aliyun-cupid-sdk}/spark/spark-2.x/datasource
# mvn clean install -DskipTests
// for spark-1.x
# cd ${path to aliyun-cupid-sdk}/spark/spark-1.x/datasource
#mvn clean install -DskipTests

添加依賴

!– Spark-1.x 請依賴此模塊 —
dependency
groupId com.aliyun.odps /groupId
artifactId odps-spark-datasource_2.10 /artifactId
version 3.3.2-public /version
/dependency

!– Spark-2.x 請依賴此模塊 —
dependency
  groupId com.aliyun.odps /groupId
  artifactId odps-spark-datasource_2.11 /artifactId
  version 3.3.2-public /version
/dependency

4. OSS 依賴

若作業(yè)需要訪問 OSS,直接添加以下依賴即可

dependency
  groupId com.aliyun.odps /groupId
  artifactId hadoop-fs-oss /artifactId
  version 3.3.2-public /version
/dependency

5. 應(yīng)用開發(fā)

MaxCompute 產(chǎn)品提供了兩個應(yīng)用構(gòu)建的模版,用戶可以基于此模版進(jìn)行開發(fā),最后統(tǒng)一構(gòu)建整個項目后用生成的應(yīng)用包即可直接提交到 MaxCompute 集群上運行 Spark 應(yīng)用。

5.1 通過模版構(gòu)建應(yīng)用

MaxCompute Spark 提供兩個應(yīng)用構(gòu)建模版,用戶可以基于此模版進(jìn)行開發(fā),最后統(tǒng)一構(gòu)建整個項目后用生成的應(yīng)用包即可直接提交到 MaxCompute 集群上運行 Spark 應(yīng)用。首先需要把代碼 clone 下來

#git clone git@github.com:aliyun/aliyun-cupid-sdk.git
#cd aliyun-cupid-sdk
#checkout 3.3.2-public
#cd archetypes

// for Spark-1.x
sh Create-AliSpark-1.x-APP.sh spark-1.x-demo /tmp

// for Spark-2.x
Create-AliSpark-2.x-APP.sh spark-2.x-demo /tmp

以上命令會在 /tmp 目錄下創(chuàng)建名為 spark-1.x-demo(spark-2.x-demo)的 maven project,執(zhí)行以下命令進(jìn)行編譯和提交作業(yè):

#cd /tmp/spark-2.x/demo
#mvn clean package

// 提交作業(yè)
$SPARK_HOME/bin/spark-submit \
–master yarn-cluster \
–class SparkPi \
/tmp/spark-2.x-demo/target/AliSpark-2.x-quickstart-1.0-SNAPSHOT-shaded.jar

# Usage: sh Create-AliSpark-2.x-APP.sh app_name target_path
sh Create-AliSpark-2.x-APP.sh spark-2.x-demo /tmp/
cd /tmp/spark-2.x-demo
mvn clean package
# 冒煙測試
# 1 利用編譯出來的 shaded jar 包
# 2 按照文檔所示下載 MaxCompute Spark 客戶端
# 3 參考文檔”置環(huán)境變量”指引,填寫 MaxCompute 項目相關(guān)配置項
# 執(zhí)行 spark-submit 命令 如下
$SPARK_HOME/bin/spark-submit \
  –master yarn-cluster \
  –class SparkPi \
  /tmp/spark-2.x-demo/target/AliSpark-2.x-quickstart-1.0-SNAPSHOT-shaded.jar

5.2 Java/Scala 開發(fā)樣例 Spark-1.x

pom.xml 須知
請注意 用戶構(gòu)建 Spark 應(yīng)用的時候,由于是用 MaxCompute 提供的 Spark 客戶端去提交應(yīng)用,故需要注意一些依賴 scope 的定義

spark-core spark-sql 等所有 spark 社區(qū)發(fā)布的包,用 provided scope

odps-spark-datasource 用默認(rèn)的 compile scope

!– spark 相關(guān)依賴, provided —
dependency
  groupId org.apache.spark /groupId
  artifactId spark-mllib_${scala.binary.version} /artifactId
  version ${spark.version} /version
  scope provided /scope
/dependency
dependency
  groupId org.apache.spark /groupId
  artifactId spark-sql_${scala.binary.version} /artifactId
  version ${spark.version} /version
  scope provided /scope
/dependency
dependency
  groupId org.apache.spark /groupId
  artifactId spark-core_${scala.binary.version} /artifactId
  version ${spark.version} /version
  scope provided /scope
/dependency

!– datasource 依賴, 用于訪問 MaxCompute 表 —
dependency
  groupId com.aliyun.odps /groupId
  artifactId odps-spark-datasource_${scala.binary.version} /artifactId
  version 3.3.2-public /version
/dependency

案例說明

WordCount

詳細(xì)代碼
提交方式

Step 1. build aliyun-cupid-sdk
Step 2. properly set spark.defaults.conf
Step 3. bin/spark-submit –master yarn-cluster –class \
  com.aliyun.odps.spark.examples.WordCount \
  ${path to aliyun-cupid-sdk}/spark/spark-1.x/spark-examples/target/spark-examples_2.10-version-shaded.jar

Spark-SQL on MaxCompute Table

詳細(xì)代碼
提交方式

# 運行可能會報 Table Not Found 的異常,因為用戶的 MaxCompute Project 中沒有代碼中指定的表
# 可以參考代碼中的各種接口,實現(xiàn)對應(yīng) Table 的 SparkSQL 應(yīng)用
Step 1. build aliyun-cupid-sdk
Step 2. properly set spark.defaults.conf
Step 3. bin/spark-submit –master yarn-cluster –class \
  com.aliyun.odps.spark.examples.sparksql.SparkSQL \
  ${path to aliyun-cupid-sdk}/spark/spark-1.x/spark-examples/target/spark-examples_2.10-version-shaded.jar

GraphX PageRank

詳細(xì)代碼
提交方式

Step 1. build aliyun-cupid-sdk
Step 2. properly set spark.defaults.conf
Step 3. bin/spark-submit –master yarn-cluster –class \
  com.aliyun.odps.spark.examples.graphx.PageRank \
  ${path to aliyun-cupid-sdk}/spark/spark-1.x/spark-examples/target/spark-examples_2.10-version-shaded.jar

Mllib Kmeans-ON-OSS

詳細(xì)代碼
提交方式

# 代碼中的 OSS 賬號信息相關(guān)需要填上,再編譯提交
conf.set(spark.hadoop.fs.oss.accessKeyId , ***)
conf.set(spark.hadoop.fs.oss.accessKeySecret , ***)
conf.set(spark.hadoop.fs.oss.endpoint , oss-cn-hangzhou-zmf.aliyuncs.com)
Step 1. build aliyun-cupid-sdk
Step 2. properly set spark.defaults.conf
Step 3. bin/spark-submit –master yarn-cluster –class \
  com.aliyun.odps.spark.examples.mllib.KmeansModelSaveToOss \
  ${path to aliyun-cupid-sdk}/spark/spark-1.x/spark-examples/target/spark-examples_2.10-version-shaded.jar

OSS UnstructuredData

詳細(xì)代碼
提交方式

# 代碼中的 OSS 賬號信息相關(guān)需要填上,再編譯提交
conf.set(spark.hadoop.fs.oss.accessKeyId , ***)
conf.set(spark.hadoop.fs.oss.accessKeySecret , ***)
conf.set(spark.hadoop.fs.oss.endpoint , oss-cn-hangzhou-zmf.aliyuncs.com)
Step 1. build aliyun-cupid-sdk
Step 2. properly set spark.defaults.conf
Step 3. bin/spark-submit –master yarn-cluster –class \
  com.aliyun.odps.spark.examples.oss.SparkUnstructuredDataCompute \
  ${path to aliyun-cupid-sdk}/spark/spark-1.x/spark-examples/target/spark-examples_2.10-version-shaded.jar

Spark-2.x

pom.xml 須知
請注意 用戶構(gòu)建 Spark 應(yīng)用的時候,由于是用 MaxCompute 提供的 Spark 客戶端去提交應(yīng)用,故需要注意一些依賴 scope 的定義

spark-core spark-sql 等所有 spark 社區(qū)發(fā)布的包,用 provided scope

odps-spark-datasource 用默認(rèn)的 compile scope

!– spark 相關(guān)依賴, provided —
dependency
  groupId org.apache.spark /groupId
  artifactId spark-mllib_${scala.binary.version} /artifactId
  version ${spark.version} /version
  scope provided /scope
/dependency
dependency
  groupId org.apache.spark /groupId
  artifactId spark-sql_${scala.binary.version} /artifactId
  version ${spark.version} /version
  scope provided /scope
/dependency
dependency
  groupId org.apache.spark /groupId
  artifactId spark-core_${scala.binary.version} /artifactId
  version ${spark.version} /version
  scope provided /scope
/dependency
dependency
  groupId com.aliyun.odps /groupId
  artifactId cupid-sdk /artifactId
  scope provided /scope
/dependency

!– datasource 依賴, 用于訪問 MaxCompute 表 —
dependency
  groupId com.aliyun.odps /groupId
  artifactId odps-spark-datasource_${scala.binary.version} /artifactId
  version 3.3.2-public /version
/dependency

案例說明

WordCount

詳細(xì)代碼
提交方式

Step 1. build aliyun-cupid-sdk
Step 2. properly set spark.defaults.conf
Step 3. bin/spark-submit –master yarn-cluster –class \
  com.aliyun.odps.spark.examples.WordCount \
  ${path to aliyun-cupid-sdk}/spark/spark-2.x/spark-examples/target/spark-examples_2.11-version-shaded.jar

Spark-SQL 操作 MaxCompute 表

詳細(xì)代碼
提交方式

# 運行可能會報 Table Not Found 的異常,因為用戶的 MaxCompute Project 中沒有代碼中指定的表
# 可以參考代碼中的各種接口,實現(xiàn)對應(yīng) Table 的 SparkSQL 應(yīng)用
Step 1. build aliyun-cupid-sdk
Step 2. properly set spark.defaults.conf
Step 3. bin/spark-submit –master yarn-cluster –class \
  com.aliyun.odps.spark.examples.sparksql.SparkSQL \
  ${path to aliyun-cupid-sdk}/spark/spark-2.x/spark-examples/target/spark-examples_2.11-version-shaded.jar

GraphX PageRank

詳細(xì)代碼
提交方式

Step 1. build aliyun-cupid-sdk
Step 2. properly set spark.defaults.conf
Step 3. bin/spark-submit –master yarn-cluster –class \
  com.aliyun.odps.spark.examples.graphx.PageRank \
  ${path to aliyun-cupid-sdk}/spark/spark-2.x/spark-examples/target/spark-examples_2.11-version-shaded.jar

Mllib Kmeans-ON-OSS

KmeansModelSaveToOss
詳細(xì)代碼
提交方式

# 代碼中的 OSS 賬號信息相關(guān)需要填上,再編譯提交
val spark = SparkSession
  .builder()
  .config(spark.hadoop.fs.oss.accessKeyId , ***)
  .config(spark.hadoop.fs.oss.accessKeySecret , ***)
  .config(spark.hadoop.fs.oss.endpoint , oss-cn-hangzhou-zmf.aliyuncs.com)
  .appName(KmeansModelSaveToOss)
  .getOrCreate()
Step 1. build aliyun-cupid-sdk
Step 2. properly set spark.defaults.conf
Step 3. bin/spark-submit –master yarn-cluster –class \
  com.aliyun.odps.spark.examples.mllib.KmeansModelSaveToOss \
  ${path to aliyun-cupid-sdk}/spark/spark-2.x/spark-examples/target/spark-examples_2.11-version-shaded.jar

OSS UnstructuredData

SparkUnstructuredDataCompute
詳細(xì)代碼
提交方式

# 代碼中的 OSS 賬號信息相關(guān)需要填上,再編譯提交
val spark = SparkSession
  .builder()
  .config(spark.hadoop.fs.oss.accessKeyId , ***)
  .config(spark.hadoop.fs.oss.accessKeySecret , ***)
  .config(spark.hadoop.fs.oss.endpoint , oss-cn-hangzhou-zmf.aliyuncs.com)
  .appName(SparkUnstructuredDataCompute)
  .getOrCreate()
Step 1. build aliyun-cupid-sdk
Step 2. properly set spark.defaults.conf
Step 3. bin/spark-submit –master yarn-cluster –class \
  com.aliyun.odps.spark.examples.oss.SparkUnstructuredDataCompute \
  ${path to aliyun-cupid-sdk}/spark/spark-2.x/spark-examples/target/spark-examples_2.11-version-shaded.jar

PySpark 開發(fā)樣例

需要文件
若需要訪問 MaxCompute 表,則需要參考第三節(jié)(訪問 MaxCompute 表所需依賴) 編譯 datasource 包

SparkSQL 應(yīng)用示例(spark1.6)

from pyspark import SparkContext, SparkConf
from pyspark.sql import OdpsContext

if __name__ == __main__ :
  conf = SparkConf().setAppName( odps_pyspark)
  sc = SparkContext(conf=conf)
  sql_context = OdpsContext(sc)
  df = sql_context.sql(select id, value from cupid_wordcount)
  df.printSchema()
  df.show(200)
 
  df_2 = sql_context.sql(select id, value from cupid_partition_table1 where pt1 = part1)
  df_2.show(200)

  #Create Drop Table
  sql_context.sql(create table TestCtas as select * from cupid_wordcount).show()
  sql_context.sql(drop table TestCtas).show()

提交運行:

./bin/spark-submit \
–jars ${path to odps-spark-datasource_2.10-3.3.2-public.jar} \
example.py

SparkSQL 應(yīng)用示例(spark2.3)

from pyspark.sql import SparkSession

if __name__ == __main__ :
  spark = SparkSession.builder.appName(spark sql).getOrCreate()

  df = spark.sql(select id, value from cupid_wordcount)
  df.printSchema()
  df.show(10, 200)

  df_2 = spark.sql(SELECT product,category,revenue FROM (SELECT product,category,revenue, dense_rank() OVER (PARTITION BY category ORDER BY revenue DESC) as rank  FROM productRevenue) tmp WHERE  rank = 2
  df_2.printSchema()
  df_2.show(10, 200)

  df_3 = spark.sql(select id, value from cupid_partition_table1 where pt1 = part1)
  df_3.show(10, 200)

  #Create Drop Table
  spark.sql(create table TestCtas as select * from cupid_wordcount).show()
  spark.sql(drop table TestCtas).show()

提交運行:

spark-submit –master yarn-cluster \
–jars ${path to odps-spark-datasource_2.11-3.3.2-public.jar \
example.py

6. 通過 Spark 訪問 VPC 環(huán)境內(nèi)服務(wù)

對于用戶使用 Spark on MaxCompute 對 VPC 環(huán)境內(nèi)的 RDS、Redis、ECS 主機部署的服務(wù)等,受限于 VPC 的訪問限制,暫時還無法訪問,即將在近期支持。

7. 如何把開源 Spark 代碼遷移到 Spark on MaxCompute

case1. 作業(yè)無需訪問 MaxCompute 表和 OSS
用戶 jar 包可直接運行,參照第二節(jié)準(zhǔn)備開發(fā)環(huán)境和修改配置。注意,對于 spark 或 hadoop 的依賴必須設(shè)成 provided。
case2. 作業(yè)需要訪問 MaxCompute 表
參考第三節(jié)編譯 datasource 并安裝到本地 maven 倉庫,在 pom 中添加依賴后重新打包即可。
case3. 作業(yè)需要訪問 OSS
參考第四節(jié)在 pom 中添加依賴后重新打包即可。

8. 任務(wù)提交執(zhí)行

目前 MaxCompute Spark 支持以下幾種運行方式:local 模式,cluster 模式,和在 DataWorks 中執(zhí)行模式。

8.1 Local 模式

local 模式主要是讓用戶能夠方便的調(diào)試應(yīng)用代碼,使用方式跟社區(qū)相同,我們添加了用 tunnel 讀寫 ODPS 表的功能。用戶可以在 ide 和命令行中使用該模式,需要添加配置 spark.master=local[N],其中 N 表示執(zhí)行該模式所需要的 cpu 資源。此外,local 模式下的讀寫表是通過讀寫 tunnel 完成的,需要在 Spark-defaults.conf 中增加 tunnel 配置項(請根據(jù) MaxCompute 項目所在的 region 及網(wǎng)絡(luò)環(huán)境填寫對應(yīng)的 Tunnel Endpoint 地址):tunnel_end_point=http://dt.cn-beijing.maxcompute.aliyun.com。命令行執(zhí)行該模式的方式如下:

1.bin/spark-submit –master local[4] \
–class com.aliyun.odps.spark.examples.SparkPi \
${path to aliyun-cupid-sdk}/spark/spark-2.x/spark-examples/target/spark-examples_2.11-version-shaded.jar

8.2 Cluster 模式

在 Cluster 模式中,用戶需要指定自定義程序入口 Main,Main 結(jié)束(Success or Fail)spark job 就會結(jié)束。使用場景適合于離線作業(yè),可以與阿里云 DataWorks 產(chǎn)品結(jié)合進(jìn)行作業(yè)調(diào)度。命令行提交方式如下:

1.bin/spark-submit –master yarn-cluster \
–class SparkPi \
${ProjectRoot}/spark/spark-2.x/spark-examples/target/spark-examples_2.11-version-shaded.jar

8.3 DataWorks 執(zhí)行模式

用戶可以在 DataWorks 中運行 MaxCompute Spark 離線作業(yè)(cluster 模式),以方便與其他類型執(zhí)行節(jié)點集成和調(diào)度。

用戶需要在 DataWorks 的業(yè)務(wù)流程中上傳并提交 (記得要單擊 提交 按鈕) 資源:

第二步:在創(chuàng)建的業(yè)務(wù)流程中,從數(shù)據(jù)開發(fā)組件中選擇 ODPS Spark 節(jié)點。

雙擊拖拽到工作流的 Spark 節(jié)點,對 Spark 作業(yè)進(jìn)行任務(wù)定義: 
          選擇 Spark 的版本、任務(wù)使用的開發(fā)語言,并指定任務(wù)所使用的資源文件。這里的資源文件就是第一步在業(yè)務(wù)流程中預(yù)先上傳并發(fā)布的資源文件。同時,您還可以指定提交作業(yè)時的配置項,如 executor 的數(shù)量、內(nèi)存大小等配置項。同時設(shè)置配置項:spark.hadoop.odps.cupid.webproxy.endpoint(取值填寫項目所在 region 的 endpoint,如 http://service.cn.maxcompute.aliyun-inc.com/api)、spark.hadoop.odps.moye.trackurl.host(取值填寫:http://jobview.odps.aliyun.com)
以便能夠查看日志中打印出的 jobview 信息。
手動執(zhí)行 Spark 節(jié)點,可以查看該任務(wù)的執(zhí)行日志,從打印出來的日志中可以獲取該任務(wù)的 logview 和 jobview 的 url,編譯進(jìn)一步查看與診斷

Spark 作業(yè)定義完成后,即可以在業(yè)務(wù)流程中對不同類型服務(wù)進(jìn)行編排、統(tǒng)一調(diào)度執(zhí)行。9. 作業(yè)診斷

提交作業(yè)后,需要根據(jù)作業(yè)日志來檢查作業(yè)是否正常提交并執(zhí)行,MaxCompute 對于 Spark 作業(yè)提供了 Logview 工具以及 Spark Web-UI 來幫助開發(fā)者進(jìn)行作業(yè)診斷。

例如,通過 Spark-submit 方式 (dataworks 執(zhí)行 spark 任務(wù)時也會產(chǎn)生相應(yīng)日志) 提交作業(yè),在作業(yè)日志中會打印以下關(guān)鍵內(nèi)容:

通過日志輸出的 logview 在瀏覽器中可以查看 CUPID 類型的任務(wù)執(zhí)行的基本信息。

 

單擊 TempRoot 的 StdOut 按鈕可以查看 SparkPi 的輸出結(jié)果:
 

         
 

 

日志中打印出上述的 TrackingUrl,表示您的作業(yè)已經(jīng)提交到 MaxCompute 集群,這個 TrackingUrl 非常關(guān)鍵,它既是 SparkWebUI,也是 HistoryServer 的 Url。在瀏覽器中打開這個 Url,可以追蹤 Spark 作業(yè)的運行情況。

單擊 driver 的 stdout 即可以查看 Spark 作業(yè)的輸出內(nèi)容。

上述就是丸趣 TV 小編為大家分享的 MaxCompute Spark 開發(fā)的示例分析了,如果剛好有類似的疑惑,不妨參照上述分析進(jìn)行理解。如果想知道更多相關(guān)知識,歡迎關(guān)注丸趣 TV 行業(yè)資訊頻道。

正文完
 
丸趣
版權(quán)聲明:本站原創(chuàng)文章,由 丸趣 2023-08-16發(fā)表,共計13742字。
轉(zhuǎn)載說明:除特殊說明外本站除技術(shù)相關(guān)以外文章皆由網(wǎng)絡(luò)搜集發(fā)布,轉(zhuǎn)載請注明出處。
評論(沒有評論)
主站蜘蛛池模板: 繁昌县| 肥东县| 南川市| 平乐县| 司法| 土默特右旗| 浦东新区| 新田县| 利辛县| 西乌| 宽城| 永嘉县| 博湖县| 炎陵县| 曲周县| 成武县| 高雄县| 淮北市| 福州市| 灵山县| 贺州市| 武鸣县| 洛南县| 闻喜县| 福州市| 象山县| 西乌珠穆沁旗| 揭阳市| 田阳县| 武冈市| 登封市| 九江市| 盘山县| 高碑店市| 柘荣县| 石景山区| 伊宁县| 九江市| 同德县| 广水市| 北票市|