全部產品
Search
文件中心

MaxCompute:快速入門

更新時間:Jun 19, 2024

本文以開發WordCount MapReduce作業為例,為您介紹如何通過MaxCompute Studio編寫MapReduce程式及產生JAR包,並在MaxCompute用戶端上運行MapReduce作業。

前提條件

請確認您已滿足如下條件:

  • 已安裝並配置MaxCompute用戶端。

    更多安裝並配置MaxCompute用戶端操作,請參見安裝並配置MaxCompute用戶端

  • 已安裝MaxCompute Studio並串連MaxCompute專案。

    更多安裝MaxCompute Studio及串連MaxCompute專案操作,請參見安裝MaxCompute Studio管理專案串連

  • 已準備好來源資料檔案並儲存至本地。

    本文的樣本資料檔案名稱為data.txt,內容為hello,odps,儲存位置為MaxCompute用戶端的bin目錄。

注意事項

如果您使用Maven開發MapReduce程式,可以從Maven庫中搜尋odps-sdk-mapredodps-sdk-commonsodps-sdk-core擷取不同版本的Java SDK,pom.xml檔案需要配置的依賴資訊如下。

<dependency>
    <groupId>com.aliyun.odps</groupId>
    <artifactId>odps-sdk-mapred</artifactId>
    <version>0.36.4-public</version>
</dependency>
<dependency>
    <groupId>com.aliyun.odps</groupId>
    <artifactId>odps-sdk-commons</artifactId>
    <version>0.36.4-public</version>
</dependency>
<dependency>
    <groupId>com.aliyun.odps</groupId>
    <artifactId>odps-sdk-core</artifactId>
    <version>0.36.4-public</version>
</dependency>

操作流程

  1. 步驟一:開發MapReduce程式

    通過MaxCompute Studio編寫、運行調試MapReduce程式。

  2. 步驟二:產生並上傳MapReduce JAR包

    將編譯成功的WordCount.java指令碼打包為JAR包並上傳至MaxCompute專案中。

  3. 步驟三:運行MapReduce作業

    基於上傳至MaxCompute專案的JAR包,使用jar命令運行MapReduce作業。

步驟一:開發MapReduce程式

  1. 建立MaxCompute Java Module。

    1. 啟動IntelliJ IDEA,在頂部功能表列,單擊File > New > Module...

    2. New Module對話方塊的左側導覽列,單擊MaxCompute Java

    3. 配置Module SDK,單擊Next

    4. 填寫Module name,例如mapreduce,單擊Finish

  2. 編寫並運行調試WordCount MapReduce程式。

    1. Project地區,按右鍵Module的源碼目錄src > main > java,選擇new > MaxCompute Java

    2. Create new MaxCompute java class對話方塊,單擊Driver,並填寫Name,例如WordCount,按Enter鍵。

      建立Java class

    3. 在建立的WordCount.java指令碼介面,編寫WordCount MapReduce程式,實現統計單詞個數功能。

      WordCount完整程式碼範例,請參見程式碼範例

    4. 在左側導覽列的WordCount.java指令碼上,單擊右鍵,選擇Run

    5. Run/Debug Configurations對話方塊,配置MaxCompute project為目標MaxCompute專案。

      設定項目資訊

    6. 單擊OK,運行並調試WordCount.java指令碼,確保指令碼編譯成功。

步驟二:產生並上傳MapReduce JAR包

  1. 在IntelliJ IDEA左側導覽列的WordCount.java指令碼上,單擊右鍵,選擇Deploy to server...

  2. Package a jar and submit resource對話方塊,配置打包參數並單擊OK,完成打包及上傳操作。

    打包

    詳細參數說明,請參見操作步驟

    說明

    如果您使用Maven開發MapReduce程式,打包為JAR包後,需要通過MaxCompute用戶端手動將JAR包上傳至MaxCompute專案。更多上傳JAR包操作,請參見添加資源。命令樣本如下。

    add jar mapreduce-1.0-SNAPSHOT.jar;

步驟三:運行MapReduce作業

  1. 登入MaxCompute用戶端或在MaxCompute Studio中開啟MaxCompute用戶端。

    MaxCompute Studio中整合了MaxCompute用戶端,您可以在MaxCompute Studio中直接運行MaxCompute用戶端。更多資訊,請參見整合MaxCompute用戶端

  2. 建立輸入表和輸出表。

    輸入表中的資料為MapReduce作業的來源資料,輸出表中儲存MapReduce作業對輸入表中的資料進行處理後的結果。命令樣本如下。

    --建立輸入表wc_in。
    create table wc_in (key STRING, value STRING);
    --建立輸出表wc_out。
    create table wc_out (key STRING, cnt BIGINT);

    更多建表文法資訊,請參見建立表

  3. 使用Tunnel Upload命令向表wc_in中插入資料。

    命令樣本如下。

    tunnel upload data.txt wc_in;

    更多Tunnel資訊,請參見Tunnel

  4. 使用jar命令調用產生的JAR包,運行MapReduce作業。

    命令樣本如下。

    jar -resources mapreduce-1.0-SNAPSHOT.jar -classpath mapreduce-1.0-SNAPSHOT.jar com.aliyun.odps.mapred.open.example.WordCount wc_in wc_out;
    • -resources mapreduce-1.0-SNAPSHOT.jar-resources指定MapReduce作業調用的資源名稱,即步驟二中上傳的JAR包mapreduce-1.0-SNAPSHOT.jar。

    • -classpath mapreduce-1.0-SNAPSHOT.jar -classpath指定MainClass所在JAR包的本地路徑。

    • com.aliyun.odps.mapred.open.example.WordCount:MapReduce程式中定義的MainClass。

    • wc_in wc_out:輸入表和輸出表。

    更多jar命令資訊,請參見文法介紹

  5. 執行如下命令查看wc_out表的寫入結果。

    select * from wc_out;

    返回結果如下。

    +------------+------------+
    | key        | cnt        |
    +------------+------------+
    | hello      | 1          |
    | odps       | 1          |
    +------------+------------+