真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

MaxComputeSpark使用和常見(jiàn)問(wèn)題有哪些

這期內(nèi)容當(dāng)中小編將會(huì)給大家?guī)?lái)有關(guān)MaxCompute Spark 使用和常見(jiàn)問(wèn)題有哪些,文章內(nèi)容豐富且以專(zhuān)業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

為澄海等地區(qū)用戶提供了全套網(wǎng)頁(yè)設(shè)計(jì)制作服務(wù),及澄海網(wǎng)站建設(shè)行業(yè)解決方案。主營(yíng)業(yè)務(wù)為成都網(wǎng)站設(shè)計(jì)、網(wǎng)站建設(shè)、澄海網(wǎng)站設(shè)計(jì),以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專(zhuān)業(yè)、用心的態(tài)度為用戶提供真誠(chéng)的服務(wù)。我們深信只要達(dá)到每一位用戶的要求,就會(huì)得到認(rèn)可,從而選擇與我們長(zhǎng)期合作。這樣,我們也可以走得更遠(yuǎn)!

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

1.1  關(guān)鍵特性

支持原生多版本Spark作業(yè)

社區(qū)原生Spark運(yùn)行在MaxCompute里,完全兼容Spark的API,支持多個(gè)Spark版本同時(shí)運(yùn)行

統(tǒng)一的計(jì)算資源

像MaxCompute SQL/MR等任務(wù)類(lèi)型一樣,運(yùn)行在MaxCompute項(xiàng)目開(kāi)通的統(tǒng)一計(jì)算資源中

統(tǒng)一的數(shù)據(jù)和權(quán)限管理

遵循MaxCompute項(xiàng)目的權(quán)限體系,在訪問(wèn)用戶權(quán)限范圍內(nèi)安全地查詢(xún)數(shù)據(jù)

與開(kāi)源系統(tǒng)相同的使用體驗(yàn)

提供原生的開(kāi)源實(shí)時(shí)Spark UI和查詢(xún)歷史日志的功能

1.2 系統(tǒng)結(jié)構(gòu)                

  • 原生Spark通過(guò)MaxCompute Cupid平臺(tái)能夠在MaxCompute中運(yùn)行

MaxCompute Spark 使用和常見(jiàn)問(wèn)題有哪些

1.3 約束與限制  

目前MaxCompute Spark支持以下適用場(chǎng)景:

離線計(jì)算場(chǎng)景:GraphX、Mllib、RDD、Spark-SQL、PySpark等

Streaming場(chǎng)景

讀寫(xiě)MaxCompute Table

引用MaxCompute中的文件資源

讀寫(xiě)VPC環(huán)境下的服務(wù),如RDS、redis、HBase、ECS上部署的服務(wù)等

讀寫(xiě)OSS非結(jié)構(gòu)化存儲(chǔ)

使用限制

不支持交互式類(lèi)需求Spark-Shell、Spark-SQL-Shell、PySpark-Shell等

不支持訪問(wèn)MaxCompute外部表,函數(shù)和UDF

只支持Local模式和Yarn-cluster模式運(yùn)行

二. 開(kāi)發(fā)環(huán)境搭建

2.1 運(yùn)行模式

通過(guò)Spark客戶端提交

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

Local模式

  • 通過(guò)Dataworks提交

本質(zhì)上也是Yarn-Cluster模式,提交任務(wù)到MaxCompute集群中

2.2 通過(guò)客戶端提交

2.2.1 Yarn-Cluster模式

下載MC Spark客戶端

Spark 1.6.3

Spark 2.3.0

環(huán)境變量配置

## 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設(shè)置
# 下載上文提到的MaxCompute Spark客戶端并解壓到本地任意路徑
# 請(qǐng)不要直接設(shè)置SPARK_HOME等于以下路徑下述路徑僅做展示用途
# 請(qǐng)指向正確的路徑
export SPARK_HOME=/path/to/spark_extracted_package
export PATH=$SPARK_HOME/bin:$PATH

## PySpark配置Python版本
export PATH=/path/to/python/bin/:$PATH

參數(shù)配置

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

參數(shù)配置參考下文

準(zhǔn)備項(xiàng)目工程

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

任務(wù)提交

// bash環(huán)境
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環(huán)境提交的命令
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調(diào)試注意

IDEA運(yùn)行Local模式是不能直接引用spark-defaults.conf里的配置,需要手動(dòng)在代碼里指定相關(guān)配置

一定要注意需要在IDEA里手動(dòng)添加MaxCompute Spark客戶端的相關(guān)依賴(lài)(jars目錄),否則會(huì)出現(xiàn)以下報(bào)錯(cuò):

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

  • 參考文檔

2.3 通過(guò)DataWorks提交

2.3.1 資源上傳

  • 本質(zhì)上MC Spark節(jié)點(diǎn)的配置對(duì)應(yīng)于spark-submit命令的參數(shù)和選項(xiàng)

ODPS SPARK節(jié)點(diǎn)spark-submit主Java、Python資源app jar or python file配置項(xiàng)--conf PROP=VALUEMain Class--class CLASS_NAME參數(shù)[app arguments]選擇JAR資源--jars JARS選擇Python資源--py-files PY_FILES選擇File資源--files FILES選擇Archives資源

--archives

MaxCompute Spark 使用和常見(jiàn)問(wèn)題有哪些

上傳資源:

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

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

資源引用:

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

任務(wù)運(yùn)行時(shí):資源文件默認(rèn)會(huì)上傳到Driver和Executor的當(dāng)前工作目錄

2.3.2 參數(shù)和配置

  • Spark 配置項(xiàng):對(duì)應(yīng)于spark-submit命令的--conf選項(xiàng)

  • accessid,accesskey,projectname,endpoint,runtime.end.point,task.major.version無(wú)需配置

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

  • 給主類(lèi)傳參數(shù)(如bizdate)

首先在調(diào)度->參數(shù)中添加參數(shù),然后在Spark節(jié)點(diǎn)“參數(shù)”欄引用該參數(shù)。多個(gè)參數(shù)用空格分隔

該參數(shù)會(huì)傳給用戶主類(lèi),用戶在代碼中解析該參數(shù)即可

  • 參考文檔

三. 配置介紹

3.1 配置的位置

3.1.1 Spark配置的位置

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

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

位置2:dataworks的配置項(xiàng),用戶通過(guò)dataworks提交時(shí)在配置項(xiàng)添加的Spark配置,這部分配置最終會(huì)在位置3中被添加

位置3:配置在啟動(dòng)腳本spark-submit --conf選項(xiàng)中

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

Spark配置的優(yōu)先級(jí)

用戶代碼 > spark-submit --選項(xiàng) > spark-defaults.conf配置 > spark-env.sh配置 > 默認(rèn)值

3.1.2 需要區(qū)分的兩種配置

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

與Maxcompute/Cupid平臺(tái)相關(guān):一般參數(shù)名中都會(huì)帶odps或者cupid,通常這些參數(shù)與任務(wù)提交/資源申請(qǐng)都關(guān)系:

顯而易見(jiàn),一些資源獲取(如driver的內(nèi)存,core,diskdriver,maxcompute資源),在任務(wù)執(zhí)行之前就會(huì)用到,如果這些參數(shù)設(shè)置在代碼中,很明顯平臺(tái)沒(méi)有辦法讀到,所以這些參數(shù)一定不要配置在代碼中

其中一些參數(shù)即使配置在代碼中,也不會(huì)造成任務(wù)失敗,但是不會(huì)生效

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

訪問(wèn)VPC的參數(shù):

這類(lèi)參數(shù)也與平臺(tái)相關(guān),打通網(wǎng)絡(luò)是在提交任務(wù)時(shí)就進(jìn)行的

一種是在以上三種位置配置都可以生效,但是在代碼配置的優(yōu)先級(jí)最高

推薦把任務(wù)運(yùn)行與優(yōu)化相關(guān)的參數(shù)配置在代碼中,而與資源平臺(tái)相關(guān)的配置都配置在spark-defaults.conf或者dataworks的配置項(xiàng)中。

3.2 資源相關(guān)的參數(shù)

MaxCompute Spark 使用和常見(jiàn)問(wèn)題有哪些

3.3 平臺(tái)相關(guān)的參數(shù)

MaxCompute Spark 使用和常見(jiàn)問(wèn)題有哪些

四. 作業(yè)診斷

4.1 Logview

4.1.1 Logview 介紹

  • 在任務(wù)提交時(shí)會(huì)打印日志: 日志中含有logview鏈接 (關(guān)鍵字 logview url)

Master以及Worker的StdErr打印的是spark引擎輸出的日志,StdOut中打印用戶作業(yè)輸出到控制臺(tái)的內(nèi)容

4.1.2 利用Logview 排查問(wèn)題

  • 拿到Logview,一般首先看Driver的報(bào)錯(cuò),Driver會(huì)包含一些關(guān)鍵性的錯(cuò)誤

如果Driver中出現(xiàn)類(lèi)或者方法找不到的問(wèn)題,一般是jar包打包的問(wèn)題

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

  • 如果Driver中出現(xiàn)連接不到Executor,或者找不到Chunk等錯(cuò)誤,通常是Executor已經(jīng)提前退出,需要進(jìn)一步查看Executor的報(bào)錯(cuò),可能存在OOM

  • 根據(jù)End Time做排序,結(jié)束時(shí)間越早,越容易是發(fā)生問(wèn)題的Executor節(jié)點(diǎn)

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

MaxCompute Spark 使用和常見(jiàn)問(wèn)題有哪些

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

注意

Spark UI需要鑒權(quán),只有提交任務(wù)的Owner才能打開(kāi)

Spark UI僅在作業(yè)運(yùn)行時(shí)才能打開(kāi),如果任務(wù)已經(jīng)結(jié)束,那么Spark UI是無(wú)法打開(kāi)的,這時(shí)候需要查看Spark History Server UI

五. 常見(jiàn)問(wèn)題

1. local模式運(yùn)行的問(wèn)題

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

原因在于用戶沒(méi)有正確地按照文檔將Maxcompute Spark的jars目錄添加到類(lèi)路徑,導(dǎo)致加載了社區(qū)版的spark包,需要按照文檔將jars目錄添加到類(lèi)路徑

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

問(wèn)題三:訪問(wèn)OSS和VPC:

Local模式是處于用戶本機(jī)環(huán)境,網(wǎng)絡(luò)沒(méi)有隔離。而Yarn-Cluster模式是處于Maxcompute的網(wǎng)絡(luò)隔離環(huán)境中,必須要要配置vpc訪問(wèn)的相關(guān)參數(shù)

Local模式下訪問(wèn)oss的endpoint通常是外網(wǎng)endpoint,而Yarn-cluster模式下訪問(wèn)vpc的endpoint是經(jīng)典網(wǎng)絡(luò)endpoint

2. jar包打包的問(wèn)題

java/scala程序經(jīng)常會(huì)遇到Java類(lèi)找不到/類(lèi)沖突問(wèn)題:

  • 類(lèi)沖突:用戶Jar包與Spark或平臺(tái)依賴(lài)的Jar包沖突

類(lèi)沒(méi)有找到:用戶Jar包沒(méi)有打成Fat Jar或者由于類(lèi)沖突引起

打包需要注意:

依賴(lài)為provided和compile的區(qū)別:

provided:代碼依賴(lài)該jar包,但是只在編譯的時(shí)候需要用,而運(yùn)行時(shí)不需要,運(yùn)行時(shí)會(huì)去集群中去尋找的相應(yīng)的jar包

compile:代碼依賴(lài)該jar包,在編譯、運(yùn)行時(shí)候都需要,在集群中不存在這些jar包,需要用戶打到自己的jar包中。這種類(lèi)型的jar包一般是一些三方庫(kù),且與spark運(yùn)行無(wú)關(guān),與用戶代碼邏輯有關(guān)

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

必須要把compile類(lèi)型的依賴(lài)都打到用戶jar包中,保證代碼運(yùn)行時(shí)能加載到這些依賴(lài)的類(lèi)

需要設(shè)置為provided的jar包

groupId為org.apache.spark的Jar包

平臺(tái)相關(guān)的Jar包

cupid-sdk

hadoop-yarn-client

odps-sdk

需要設(shè)置為compile的jar包

oss相關(guān)的jar包

hadoop-fs-oss

用戶訪問(wèn)其他服務(wù)用到的jar包:

如MySQL,hbase

用戶代碼需要引用的第三方庫(kù)

3. 需要引入Python包

很多時(shí)候用戶需要用到外部Python依賴(lài)

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

## 公共資源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 使用和常見(jiàn)問(wèn)題有哪些了,如果剛好有類(lèi)似的疑惑,不妨參照上述分析進(jìn)行理解。如果想知道更多相關(guān)知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。


文章題目:MaxComputeSpark使用和常見(jiàn)問(wèn)題有哪些
本文地址:http://weahome.cn/article/gecsco.html

其他資訊

在線咨詢(xún)

微信咨詢(xún)

電話咨詢(xún)

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部