日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

MaxCompute Spark 使用和常见问题

發布時間:2024/8/23 编程问答 45 豆豆
生活随笔 收集整理的這篇文章主要介紹了 MaxCompute Spark 使用和常见问题 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

簡介: 本文將就MaxCompute Spark開發環境搭建、常用配置、作業遷移注意事項以及常見問題進行深入介紹。

一. MaxCompute Spark 介紹

MaxCompute Spark是MaxCompute提供的兼容開源的Spark計算服務。它在統一的計算資源和數據集權限體系之上,提供Spark計算框架,支持用戶以熟悉的開發使用方式提交運行Spark作業,以滿足更豐富的數據處理分析場景。

1.1 ?關鍵特性

支持原生多版本Spark作業

社區原生Spark運行在MaxCompute里,完全兼容Spark的API,支持多個Spark版本同時運行

統一的計算資源

像MaxCompute SQL/MR等任務類型一樣,運行在MaxCompute項目開通的統一計算資源中

統一的數據和權限管理

遵循MaxCompute項目的權限體系,在訪問用戶權限范圍內安全地查詢數據

與開源系統相同的使用體驗

提供原生的開源實時Spark UI和查詢歷史日志的功能

1.2 系統結構 ? ? ? ? ? ? ? ?

  • 原生Spark通過MaxCompute Cupid平臺能夠在MaxCompute中運行

?

?

1.3 約束與限制 ?

目前MaxCompute Spark支持以下適用場景:

離線計算場景:GraphX、Mllib、RDD、Spark-SQL、PySpark等

Streaming場景

讀寫MaxCompute Table

引用MaxCompute中的文件資源

讀寫VPC環境下的服務,如RDS、Redis、HBase、ECS上部署的服務等

讀寫OSS非結構化存儲

使用限制

不支持交互式類需求Spark-Shell、Spark-SQL-Shell、PySpark-Shell等

不支持訪問MaxCompute外部表,函數和UDF

只支持Local模式和Yarn-cluster模式運行

?

二. 開發環境搭建

2.1 運行模式

通過Spark客戶端提交

  • Yarn-Cluster模式,提交任務到MaxCompute集群中

Local模式

?

  • 通過Dataworks提交

本質上也是Yarn-Cluster模式,提交任務到MaxCompute集群中

?

2.2 通過客戶端提交

2.2.1 Yarn-Cluster模式

下載MC Spark客戶端

Spark 1.6.3

Spark 2.3.0

?

環境變量配置

## JAVA_HOME配置 # 推薦使用JDK 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設置 # 下載上文提到的MaxCompute Spark客戶端并解壓到本地任意路徑 # 請不要直接設置SPARK_HOME等于以下路徑下述路徑僅做展示用途 # 請指向正確的路徑 export SPARK_HOME=/path/to/spark_extracted_package export PATH=$SPARK_HOME/bin:$PATH## PySpark配置Python版本 export PATH=/path/to/python/bin/:$PATH

參數配置

  • 將$SPARK_HOME/conf/spark-defaults.conf.template 重命名為 spark-defaults.conf

參數配置參考下文

?

準備項目工程

git clone https://github.com/aliyun/MaxCompute-Spark.git cd spark-2.x mvn clean package

任務提交

// bash環境 cd $SPARK_HOME bin/spark-submit --master yarn-cluster --class com.aliyun.odps.spark.examples.SparkPi \ /path/to/MaxCompute-Spark/spark-2.x/target/spark-examples_2.11-1.0.0-SNAPSHOT-shaded.jar// 在windows環境提交的命令 cd $SPARK_HOME/bin spark-submit.cmd --master yarn-cluster --class com.aliyun.odps.spark.examples.SparkPi \path\to\MaxCompute-Spark\spark-2.x\target\spark-examples_2.11-1.0.0-SNAPSHOT-shaded.jar

IDEA調試注意

IDEA運行Local模式是不能直接引用spark-defaults.conf里的配置,需要手動在代碼里指定相關配置

一定要注意需要在IDEA里手動添加MaxCompute Spark客戶端的相關依賴(jars目錄),否則會出現以下報錯:

the value of spark.sql.catalogimplementation should be one of hive in-memory but was odps

  • 參考文檔

?

2.3 通過DataWorks提交

2.3.1 資源上傳

  • 本質上MC Spark節點的配置對應于spark-submit命令的參數和選項

ODPS SPARK節點spark-submit主Java、Python資源app jar or python file配置項--conf PROP=VALUEMain Class--class CLASS_NAME參數[app arguments]選擇JAR資源--jars JARS選擇Python資源--py-files PY_FILES選擇File資源--files FILES選擇Archives資源

--archives

?

?

上傳資源:

0~50MB:可以直接在DataWorks界面創建資源并上傳

50MB~500MB:可以先利用MaxCompute客戶端(CMD)上傳,然后在DataWorks界面添加到數據開發,參考文檔

資源引用:

  • 資源提交后,可以在DataWorks Spark節點界面選擇需要的資源(jar/python/file/archive)

任務運行時:資源文件默認會上傳到Driver和Executor的當前工作目錄

?

2.3.2 參數和配置

  • Spark 配置項:對應于spark-submit命令的--conf選項
  • accessid,accesskey,projectname,endpoint,runtime.end.point,task.major.version無需配置

除此之外,需要將spark-default.conf中的配置逐條加到dataworks的配置項中

?

  • 給主類傳參數(如bizdate)

首先在調度->參數中添加參數,然后在Spark節點“參數”欄引用該參數。多個參數用空格分隔

該參數會傳給用戶主類,用戶在代碼中解析該參數即可

  • 參考文檔

三. 配置介紹

3.1 配置的位置

3.1.1 Spark配置的位置

用戶使用Maxcompute Spark通常會有幾個位置可以添加Spark配置,主要包括:

位置1:spark-defaults.conf,用戶通過客戶端提交時在spark-defaults.conf文件中添加的Spark配置

位置2:dataworks的配置項,用戶通過dataworks提交時在配置項添加的Spark配置,這部分配置最終會在位置3中被添加

位置3:配置在啟動腳本spark-submit --conf選項中

位置4:配置在用戶代碼中,用戶在初始化SparkContext時設置的Spark配置

Spark配置的優先級

用戶代碼 > spark-submit --選項 > spark-defaults.conf配置 > spark-env.sh配置 > 默認值

?

3.1.2 需要區分的兩種配置

一種是必須要配置在spark-defaults.conf或者dataworks的配置項中才能生效(在任務提交之前需要),而不能配置在用戶代碼中,這類配置主要的特征是:

與Maxcompute/Cupid平臺相關:一般參數名中都會帶odps或者cupid,通常這些參數與任務提交/資源申請都關系:

顯而易見,一些資源獲取(如driver的內存,core,diskdriver,maxcompute資源),在任務執行之前就會用到,如果這些參數設置在代碼中,很明顯平臺沒有辦法讀到,所以這些參數一定不要配置在代碼中

其中一些參數即使配置在代碼中,也不會造成任務失敗,但是不會生效

其中一些參數配置在代碼中,可能會造成副作用:如在yarn-cluster模式下設置spark.master為local

訪問VPC的參數:

這類參數也與平臺相關,打通網絡是在提交任務時就進行的

一種是在以上三種位置配置都可以生效,但是在代碼配置的優先級最高

推薦把任務運行與優化相關的參數配置在代碼中,而與資源平臺相關的配置都配置在spark-defaults.conf或者dataworks的配置項中。

?

3.2 資源相關的參數

?

3.3 平臺相關的參數

?

四. 作業診斷

4.1 Logview

4.1.1 Logview 介紹

  • 在任務提交時會打印日志: 日志中含有logview鏈接 (關鍵字 logview url)

Master以及Worker的StdErr打印的是spark引擎輸出的日志,StdOut中打印用戶作業輸出到控制臺的內容

?

?

4.1.2 利用Logview 排查問題

  • 拿到Logview,一般首先看Driver的報錯,Driver會包含一些關鍵性的錯誤

如果Driver中出現類或者方法找不到的問題,一般是jar包打包的問題

如果Driver中出現連接外部VPC或者OSS出現Time out,這種情況一般要去排查一下參數配置

  • 如果Driver中出現連接不到Executor,或者找不到Chunk等錯誤,通常是Executor已經提前退出,需要進一步查看Executor的報錯,可能存在OOM
  • 根據End Time做排序,結束時間越早,越容易是發生問題的Executor節點

根據Latency做排序,Latency代表了Executor的存活的時間,存活時間越短的,越有可能是根因所在

?

?

Spark UI的使用與社區原生版是一致的,可以參考文檔

注意

Spark UI需要鑒權,只有提交任務的Owner才能打開

Spark UI僅在作業運行時才能打開,如果任務已經結束,那么Spark UI是無法打開的,這時候需要查看Spark History Server UI

五. 常見問題

1. local模式運行的問題

  • 問題一:the value of spark.sql.catalogimplementation should be one of hive in-memory but was odps

原因在于用戶沒有正確地按照文檔將Maxcompute Spark的jars目錄添加到類路徑,導致加載了社區版的spark包,需要按照文檔將jars目錄添加到類路徑

問題二:IDEA Local模式是不能直接引用spark-defaults.conf里的配置,必須要把Spark配置項寫在代碼中

問題三:訪問OSS和VPC:

Local模式是處于用戶本機環境,網絡沒有隔離。而Yarn-Cluster模式是處于Maxcompute的網絡隔離環境中,必須要要配置vpc訪問的相關參數

Local模式下訪問oss的endpoint通常是外網endpoint,而Yarn-cluster模式下訪問vpc的endpoint是經典網絡endpoint

?

2. jar包打包的問題

java/scala程序經常會遇到Java類找不到/類沖突問題:

  • 類沖突:用戶Jar包與Spark或平臺依賴的Jar包沖突

類沒有找到:用戶Jar包沒有打成Fat Jar或者由于類沖突引起

?

打包需要注意:

依賴為provided和compile的區別:

provided:代碼依賴該jar包,但是只在編譯的時候需要用,而運行時不需要,運行時會去集群中去尋找的相應的jar包

compile:代碼依賴該jar包,在編譯、運行時候都需要,在集群中不存在這些jar包,需要用戶打到自己的jar包中。這種類型的jar包一般是一些三方庫,且與spark運行無關,與用戶代碼邏輯有關

用戶提交的jar包必須是Fat jar:

必須要把compile類型的依賴都打到用戶jar包中,保證代碼運行時能加載到這些依賴的類

?

需要設置為provided的jar包

groupId為org.apache.spark的Jar包

平臺相關的Jar包

cupid-sdk

hadoop-yarn-client

odps-sdk

?

需要設置為compile的jar包

oss相關的jar包

hadoop-fs-oss

用戶訪問其他服務用到的jar包:

如mysql,hbase

用戶代碼需要引用的第三方庫

?

3. 需要引入Python包

很多時候用戶需要用到外部Python依賴

首先推薦用戶使用我們打包的公共資源,包含了常用的一些數據處理,計算,以及連接外部服務(mysql,redis,hbase)的三方庫

## 公共資源python2.7.13 spark.hadoop.odps.cupid.resources = public.python-2.7.13-ucs4.tar.gz spark.pyspark.python = ./public.python-2.7.13-ucs4.tar.gz/python-2.7.13-ucs4/bin/python## 公共資源python3.7.9 spark.hadoop.odps.cupid.resources = public.python-3.7.9-ucs4.tar.gz spark.pyspark.python = ./public.python-3.7.9-ucs4.tar.gz/python-3.7.9-ucs4/bin/python3

作者:亢海鵬

原文鏈接

本文為阿里云原創內容,未經允許不得轉載

?

總結

以上是生活随笔為你收集整理的MaxCompute Spark 使用和常见问题的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 中文字幕在线色 | 国产免费一区二区三区最新不卡 | 日韩制服在线 | 亚洲天堂免费看 | 免费国产羞羞网站视频 | 久久久久久久久久久网站 | 国产亚洲欧美一区二区 | 国产视频xxx | 熟女国产精品一区二区三 | 日本一区二区三区中文字幕 | 玩弄白嫩少妇xxxxx性 | 视频在线观看免费 | 精品久久久久久亚洲精品 | 荫蒂被男人添免费视频 | 精品乱子伦一区二区三区 | 国产精品91在线观看 | 午夜精品久久久久久久久久久久久 | 国产丝袜一区二区三区 | 午夜伦理影院 | 国产精品一区二区久久国产 | 丰满人妻一区二区三区免费 | 国产精品无码一区二区无人区多人 | 青青青在线观看视频 | 国产精品人人人人 | 国产精品99精品无码视 | 黄色免费一级 | 日批在线视频 | 久久国产福利一区 | 欧美激情伊人 | 亚洲精品资源在线 | 欧美性猛交xxxx乱大交俱乐部 | 不卡av网 | 国产精品一线二线三线 | 爱爱色图 | 青娱乐国产盛宴 | 久久伊人五月天 | 国产一级爽片 | 欧美中文在线观看 | 国产最新自拍 | 一级黄网 | 国产你懂得 | 五月婷婷网站 | 一区二区美女视频 | 一级黄色性片 | 亚洲自拍激情 | 91色视频在线 | 色婷婷国产精品久久包臀 | 97av超碰| 日本在线看 | 国产大片一区 | 91九色精品 | 免费人成视频在线 | 亚洲黄片一区二区 | 国产第一页视频 | av性天堂网 | 亚洲日本影院 | 欧美色噜噜 | 新版红楼梦在线高清免费观看 | 国产日韩欧美激情 | 成人免费区一区二区三区 | 福利社区一区二区 | 国产毛片电影 | 色射综合| 91老师国产黑色丝袜在线 | 色哟哟导航 | 伦理片一区二区三区 | 国内自拍亚洲 | 国产小视频网址 | 人乳videos巨大吃奶 | 肉色丝袜小早川怜子av | 91天天爽 | 风流还珠之乱淫h文 | 丰满少妇高潮久久三区 | 成人va在线观看 | 日本色婷婷 | 天天操女人 | 国产精品视频一区二区三 | 日本黄色免费观看 | 国产91在线 | 亚洲 | 国产午夜精品一区二区三区 | 射射色| 日韩逼| 国产夫妻久久 | 天天干夜夜骑 | 免费操人视频 | 欧美做爰全过程免费看 | 日韩中文字幕视频 | 日韩欧美视频在线 | aa黄色大片 | 无码人妻精品一区二区三区不卡 | 一级黄色片看看 | 日韩精品欧美在线 | 欧美第一夜 | 国产免费一区视频观看免费 | 夜夜爽av福利精品导航 | 台湾佬久久 | av免费网站观看 | 亚洲无线看 | 老女人网站 |