日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

文檔

搭建Windows開發(fā)環(huán)境

本文為您介紹如何在Windows操作系統(tǒng)下搭建Spark on MaxCompute開發(fā)環(huán)境。

如果您安裝了Linux操作系統(tǒng),請前往搭建Linux開發(fā)環(huán)境

前提條件

搭建Spark開發(fā)環(huán)境前,請確保您已經(jīng)在Windows操作系統(tǒng)中安裝如下軟件:

說明

本文采用的軟件版本號及軟件安裝路徑僅供參考,請根據(jù)您的操作系統(tǒng)下載合適的軟件版本進(jìn)行安裝。

  • JDK

    本文采用JDK 1.8.0_361,JDK官網(wǎng)下載地址請參見JDK官網(wǎng)

  • Python

    本文采用Python 3.7,Python官網(wǎng)下載地址請參見Python官網(wǎng)

    說明

    本文采用Spark-2.4.5,如采用其他版本Spark請下載安裝對應(yīng)版本Python,詳情請參見https://pypi.org/project/pyspark/

  • Maven

    本文采用Apache Maven 3.8.7,Maven官網(wǎng)下載地址請參見Maven官網(wǎng)

  • Git

    本文采用git version 2.39.1.windows.1,Git官網(wǎng)下載地址請參見Git官網(wǎng)

  • Scala

    本文采用Scala 2.13.10,Scala官網(wǎng)下載地址請參見Scala官網(wǎng)

下載Spark on MaxCompute客戶端包

Spark on MaxCompute發(fā)布包集成了MaxCompute認(rèn)證功能。作為客戶端工具,它通過Spark-Submit方式提交作業(yè)到MaxCompute項(xiàng)目中運(yùn)行。MaxCompute提供了面向Spark1.x、Spark2.x和Spark3.x發(fā)布包,下載路徑如下(本文采用Spark-2.4.5):

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

您需要在Windows操作系統(tǒng)中單擊此電腦 > 屬性 > 高級系統(tǒng)設(shè)置 > 環(huán)境變量配置如下環(huán)境變量信息,配置方法及信息如下。

  • 配置Java環(huán)境變量。

    • 獲取Java安裝路徑。

    • 編輯Java環(huán)境變量信息。

      1. 在系統(tǒng)變量中新增JAVA_HOME的變量,變量值輸入Java安裝路徑。Java環(huán)境變量

      2. 系統(tǒng)變量Path中增加%JAVA_HOME%\bin

    • 確認(rèn)Java已配置成功。

      • 驗(yàn)證方式

        通過鍵盤快捷鍵Win+R打開運(yùn)行對話框,輸入cmd,單擊確定。在命令運(yùn)行界面輸入java -version,若返回的結(jié)果符合預(yù)期,則Java配置成功。

      • 預(yù)期結(jié)果示例

        java version "1.8.0_361"
        Java(TM) SE Runtime Environment (build 1.8.0_361-b09)
        Java HotSpot(TM) 64-Bit Server VM (build 25.361-b09, mixed mode)
  • 配置Spark環(huán)境變量。

    • 獲取Spark客戶端包解壓后的路徑。

    • 編輯Spark環(huán)境變量信息。

      1. 新增SPARK_HOME系統(tǒng)變量,變量值中輸入Spark客戶端包解壓后的路徑。Spark環(huán)境變量

      2. 系統(tǒng)變量Path中增加%SPARK_HOME%\bin

  • 配置Scala環(huán)境變量。

    確認(rèn)Scala已配置成功。

    • 驗(yàn)證方式

      通過鍵盤快捷鍵Win+R打開運(yùn)行對話框,輸入cmd,單擊確定。在命令運(yùn)行界面輸入scala,若返回的結(jié)果符合預(yù)期,則Scala配置成功。

    • 預(yù)期結(jié)果示例

      Welcome to Scala 2.13.10 (Java HotSpot(TM) 64-Bit Server VM, Java 1.8.0_361).
      Type in expressions for evaluation. Or try :help.
      
      scala>
  • 配置Python環(huán)境變量。

    • 獲取Python安裝路徑。

    • 編輯Python環(huán)境變量信息。

      在系統(tǒng)變量Path中增加Python和子目錄Scripts的安裝路徑。Python環(huán)境變量

    • 確認(rèn)Python已配置成功。

      • 驗(yàn)證方式

        通過鍵盤快捷鍵Win+R打開運(yùn)行對話框,輸入cmd,單擊確定。在命令運(yùn)行界面輸入python --version,若返回的結(jié)果符合預(yù)期,則Python配置成功。

      • 預(yù)期結(jié)果示例

        Python 3.10.6
  • 配置Maven環(huán)境變量。

    • 獲取Maven包解壓后的路徑。

    • 編輯Maven環(huán)境變量信息。

      1. 新增MAVEN_HOME系統(tǒng)變量,變量值中輸入Maven包解壓后的路徑。Maven環(huán)境變量

      2. 系統(tǒng)變量Path中增加%MAVEN_HOME%\bin

    • 確認(rèn)Maven已配置成功。

      • 驗(yàn)證方式

        通過鍵盤快捷鍵Win+R打開運(yùn)行對話框,輸入cmd,單擊確定。在命令運(yùn)行界面輸入mvn --version,若返回的結(jié)果符合預(yù)期,則Maven配置成功。

      • 預(yù)期結(jié)果示例

        # ***表示Maven包解壓后的部分路徑。
        Apache Maven 3.8.7 (b89d5959fcde851dcb1c8946a785a163f14e1e29)
        Maven home: D:\***\apache-maven-3.8.7-bin\apache-maven-3.8.7
        Java version: 1.8.0_361, vendor: Oracle Corporation, runtime: C:\Program Files\Java\jdk1.8.0_361\jre
        Default locale: zh_CN, platform encoding: GBK
        OS name: "windows 10", version: "10.0", arch: "amd64", family: "windows"
  • 配置Git環(huán)境變量。

    確認(rèn)Git已配置成功。

    • 驗(yàn)證方式

      通過鍵盤快捷鍵Win+R打開運(yùn)行對話框,輸入cmd,單擊確定。在命令運(yùn)行界面輸入git --version,若返回的結(jié)果符合預(yù)期,則Git配置成功。

    • 預(yù)期結(jié)果示例

      git version 2.39.1.windows.1
  • 配置spark_defaults.conf

    第一次使用Spark on MaxCompute客戶端時(shí),請?jiān)赟park客戶端包的解壓路徑下,將conf文件夾下的spark-defaults.conf.template文件重命名為spark-defaults.conf后再進(jìn)行相關(guān)配置。如果spark-defaults.conf.template和spark-defaults.conf文件都存在,則不需要重命名操作,只需要配置spark-defaults.conf文件即可。代碼示例如下。

    # 直接進(jìn)入到Spark客戶端包的解壓路徑,并進(jìn)入conf文件夾。請以實(shí)際路徑為準(zhǔn)。
    
    # 打開spark-defaults.conf文件配置信息
    
    # 在配置文件末尾添加如下配置信息。
    spark.hadoop.odps.project.name = <MaxCompute_project_name>
    spark.hadoop.odps.access.id = <AccessKey_id>
    spark.hadoop.odps.access.key = <AccessKey_secret>
    spark.hadoop.odps.end.point = <Endpoint>   # Spark客戶端連接訪問MaxCompute項(xiàng)目的Endpoint,您可以根據(jù)自己情況進(jìn)行修改。
    # spark 2.3.0請將spark.sql.catalogImplementation設(shè)置為odps,spark 2.4.5請將spark.sql.catalogImplementation設(shè)置為hive。
    spark.sql.catalogImplementation={odps|hive}
    
    # 如下參數(shù)配置保持不變
    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.moye.trackurl.host = http://jobview.odps.aliyun.com
    • MaxCompute_project_name:待訪問MaxCompute項(xiàng)目的名稱。

      此處為MaxCompute項(xiàng)目名稱,非工作空間名稱。您可以登錄MaxCompute控制臺,左上角切換地域后,在左側(cè)導(dǎo)航欄選擇工作區(qū) > 項(xiàng)目管理,查看具體的MaxCompute項(xiàng)目名稱。

    • AccessKey_id:具備目標(biāo)MaxCompute項(xiàng)目訪問權(quán)限的AccessKey ID。

      您可以進(jìn)入AccessKey管理頁面獲取AccessKey ID。

    • AccessKey_secret:AccessKey ID對應(yīng)的AccessKey Secret。

      您可以進(jìn)入AccessKey管理頁面獲取AccessKey Secret。

    • Endpoint:MaxCompute項(xiàng)目所屬區(qū)域的外網(wǎng)Endpoint。

      各地域的外網(wǎng)Endpoint信息,請參見各地域Endpoint對照表(外網(wǎng)連接方式)

    • VPC_endpoint:MaxCompute項(xiàng)目所屬區(qū)域的VPC網(wǎng)絡(luò)的Endpoint。

      各地域的VPC網(wǎng)絡(luò)Endpoint信息,請參見各地域Endpoint對照表(阿里云VPC網(wǎng)絡(luò)連接方式)

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

Spark on MaxCompute提供了項(xiàng)目工程模板,建議您下載模板復(fù)制后直接在模板里開發(fā)。

重要

模板工程里的關(guān)于spark依賴的scope為provided,請不要更改,否則提交的作業(yè)無法正常運(yùn)行。

準(zhǔn)備項(xiàng)目工程示例如下:

  • 下載Spark-1.x模板并編譯

    #打開已經(jīng)下載好的git客戶端(Git Bash),進(jìn)入到需要下載項(xiàng)目工程的目錄,執(zhí)行
    git clone https://github.com/aliyun/MaxCompute-Spark.git
    
    #進(jìn)入到工程文件夾中
    cd MaxCompute-Spark/spark-1.x
    
    #編譯該工程包
    mvn clean package
  • 下載Spark-2.x 模板并編譯

    #打開已經(jīng)下載好的git客戶端(Git Bash),進(jìn)入到需要下載項(xiàng)目工程的目錄,執(zhí)行
    git clone https://github.com/aliyun/MaxCompute-Spark.git
    
    #進(jìn)入到工程文件夾中
    cd MaxCompute-Spark/spark-2.x
    
    #編譯該工程包
    mvn clean package
  • 下載Spark-3.x 模板并編譯

    #打開已經(jīng)下載好的git客戶端(Git Bash),進(jìn)入到需要下載項(xiàng)目工程的目錄,執(zhí)行
    git clone https://github.com/aliyun/MaxCompute-Spark.git
    
    #進(jìn)入到工程文件夾中
    cd MaxCompute-Spark/spark-3.x
    
    #編譯該工程包
    mvn clean package

上述命令執(zhí)行完畢后,如果顯示創(chuàng)建失敗,說明環(huán)境配置有誤,請按照上述配置指導(dǎo)仔細(xì)檢查并修正環(huán)境配置信息。

配置依賴說明

在準(zhǔn)備的Spark on MaxCompute項(xiàng)目下,配置依賴信息。命令示例如下(您可在Git客戶端繼續(xù)執(zhí)行,也可直接打開該文件進(jìn)行修改)。

  • 配置訪問MaxCompute表所需的依賴。

    • 使用Spark-1.x模板場景

      # 進(jìn)入spark-1.x文件夾。
      cd MaxCompute-Spark/spark-1.x
      
      # 編輯Pom文件,添加odps-spark-datasource依賴。
      <dependency>
        <groupId>com.aliyun.odps</groupId>
        <artifactId>odps-spark-datasource_2.10</artifactId>
        <version>3.3.8-public</version>
      </dependency>                           
    • 使用Spark-2.x模板場景

      # 進(jìn)入spark-2.x文件夾。
      cd MaxCompute-Spark/spark-2.x
      
      # 編輯Pom文件,添加odps-spark-datasource依賴。
      <dependency>
          <groupId>com.aliyun.odps</groupId>
          <artifactId>odps-spark-datasource_2.11</artifactId>
          <version>3.3.8-public</version>
      </dependency>
  • 配置訪問OSS所需的依賴。

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

    <dependency>
        <groupId>com.aliyun.odps</groupId>
        <artifactId>hadoop-fs-oss</artifactId>
        <version>3.3.8-public</version>
    </dependency>

更多Spark-1.x、Spark-2.x以及Spark-3.x的依賴配置信息,請參見Spark-1.x pom文件Spark-2.x pom文件Spark-3.x pom文件

冒煙測試

完成以上的工作之后,執(zhí)行冒煙測試,驗(yàn)證Spark on MaxCompute是否可以端到端連通。

SparkPi冒煙測試

以Spark-2.x為例,您可以提交一個(gè)SparkPi驗(yàn)證功能是否正常,提交命令如下。

# 通過鍵盤快捷鍵Win+R打開運(yùn)行對話框,輸入cmd。
# 進(jìn)入到需要執(zhí)行作業(yè)的D:\PC\spark\spark-2.4.5-odps0.33.2\bin目錄下。
cd D:\PC\spark\spark-2.4.5-odps0.33.2\bin

#輸入如下命令。
spark-submit \
--class com.aliyun.odps.spark.examples.SparkPi \
--master yarn \
--deploy-mode cluster \
/path/to/your/spark-examples_2.11-1.0.0-SNAPSHOT-shaded.jar

# 當(dāng)看到以下日志表明冒煙作業(yè)成功。
19/06/11 11:57:30 INFO Client:
         client token: N/A
         diagnostics: N/A
         ApplicationMaster host: 11.222.166.90
         ApplicationMaster RPC port: 38965
         queue: queue
         start time: 1560225401092
         final status: SUCCEEDED

IDEA本地冒煙測試

  1. 在IDEA中打開已下載的項(xiàng)目工程代碼,并手動將Spark on MaxCompute客戶端下的Jars目錄添加至IDEA項(xiàng)目工程中,詳情請參見IDEA本地執(zhí)行注意事項(xiàng)

  2. 在本地IDEA中添加如下代碼,進(jìn)行調(diào)試。

    val spark = SparkSession
          .builder()
          .appName("SparkPi")
          .config("spark.master", "local[4]") // 需要設(shè)置spark.master為local[N]才能直接運(yùn)行,N為并發(fā)數(shù)。
          .getOrCreate()
  3. Local不能直接引用spark-defaults.conf里的配置,需要手動指定相關(guān)配置,即在main下創(chuàng)建resource>odps.conf目錄,并在odps.conf中指定相關(guān)配置。配置示例如下:

    說明

    Spark 2.4.5及以上版本需要在odps.conf中指定配置項(xiàng)。

    dops.access.id=""
    odps.access.key=""
    odps.end.point=""
    odps.project.name=""

Spark 2.4.5使用注意事項(xiàng)

  • 使用Spark 2.4.5提交作業(yè)

    直接使用Yarn-cluster模式在本地提交任務(wù)。詳情請參見Cluster模式

  • Spark 2.4.5使用變化

    • 如果使用Yarn-cluster模式在本地提交任務(wù),需要新增環(huán)境變量HADOOP_CONF_DIR=$SPARK_HOME/conf

    • 如果使用Local模式進(jìn)行調(diào)試,需要在$SPARK_HOME/conf目錄下新建odps.conf文件,并添加如下配置。

      odps.project.name = 
      odps.access.id = 
      odps.access.key =
      odps.end.point =
  • Spark 2.4.5參數(shù)配置變化

    • spark.sql.catalogImplementation配置為hive

    • spark.sql.sources.default配置為hive

    • spark.sql.odps.columnarReaderBatchSize,向量化讀每個(gè)batch包含的行數(shù),默認(rèn)值為4096。

    • spark.sql.odps.enableVectorizedReader,開啟向量化讀,默認(rèn)值為True。

    • spark.sql.odps.enableVectorizedWriter,開啟向量化寫,默認(rèn)值為True。

    • spark.sql.odps.split.size,該配置可以用來調(diào)節(jié)讀MaxCompute表的并發(fā)度,默認(rèn)每個(gè)分區(qū)為256 MB。

Spark 3.1.1使用注意事項(xiàng)

  • 使用Spark 3.1.1提交作業(yè)

    直接使用Yarn-cluster模式在本地提交任務(wù)。詳情請參見Cluster模式

  • Spark 3.1.1使用變化

    • 如果使用Yarn-cluster模式在本地提交任務(wù),需要新增環(huán)境變量HADOOP_CONF_DIR=$SPARK_HOME/conf

    • 如果使用Yarn-cluster模式提交PySpark作業(yè),需要在spark-defaults.conf配置文件添加以下參數(shù)使用Python3。

      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
    • 如果使用Local模式進(jìn)行調(diào)試:

      • 需要在$SPARK_HOME/conf目錄下新建odps.conf文件,并添加如下配置。

        odps.project.name = 
        odps.access.id = 
        odps.access.key =
        odps.end.point =
      • 需要在代碼中添加spark.hadoop.fs.defaultFS = file:///,示例如下。

        val spark = SparkSession
          .builder()
          .config("spark.hadoop.fs.defaultFS", "file:///")
          .enableHiveSupport()
          .getOrCreate()
  • Spark 3.1.1參數(shù)配置變化

    • spark.sql.defaultCatalog配置為odps

    • spark.sql.catalog.odps配置為org.apache.spark.sql.execution.datasources.v2.odps.OdpsTableCatalog

    • spark.sql.sources.partitionOverwriteMode配置為dynamic

    • spark.sql.extensions配置為org.apache.spark.sql.execution.datasources.v2.odps.extension.OdpsExtensions

    • spark.sql.odps.enableVectorizedReader,開啟向量化讀,默認(rèn)值為True。

    • spark.sql.odps.enableVectorizedWriter,開啟向量化寫,默認(rèn)值為True。

    • spark.sql.catalog.odps.splitSizeInMB,該配置可以用來調(diào)節(jié)讀MaxCompute表的并發(fā)度,默認(rèn)每個(gè)分區(qū)為256 MB。