選取您的 Cookie 偏好設定

我們使用提供自身網站和服務所需的基本 Cookie 和類似工具。我們使用效能 Cookie 收集匿名統計資料,以便了解客戶如何使用我們的網站並進行改進。基本 Cookie 無法停用,但可以按一下「自訂」或「拒絕」以拒絕效能 Cookie。

如果您同意,AWS 與經核准的第三方也會使用 Cookie 提供實用的網站功能、記住您的偏好設定,並顯示相關內容,包括相關廣告。若要接受或拒絕所有非必要 Cookie,請按一下「接受」或「拒絕」。若要進行更詳細的選擇,請按一下「自訂」。

使用串流處理資料 - Amazon EMR

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

使用串流處理資料

Hadoop 串流是 Hadoop 隨附的公用程式,可讓您以 Java 以外的語言開發 MapReduce 可執行檔。串流是以 JAR 檔的形式進行實作,因此您可以從 Amazon EMR API 或命令列 (就像標準的 JAR 檔案) 執行它。

本章節描述了如何使用串流搭配 Amazon EMR。

注意

Apache Hadoop 串流是一個獨立的工具。因此,這裡並不會敘述其所有函數和參數。如需有關 Hadoop 串流的詳細資訊,請前往 http://hadoop.apache.org/docs/stable/hadoop-streaming/HadoopStreaming.html

使用 Hadoop 串流公用程式

本章節將描述了如何使用 Hadoop 的串流公用程式。

Hadoop 程序
1

以您選擇的程式設計語言來寫入映射器和縮減器可執行檔。

遵照 Hadoop 文件中的指示來撰寫串流可執行檔。此程式應透過標準輸出從標準輸入和輸出資料讀取其輸入。根據預設,每列輸入/輸出代表一個記錄且每列的第一個標籤會用做為金鑰和值的分隔符號。

2

在本機上測試可執行檔並將它們上傳到 Amazon S3。

3

使用 Amazon EMR 命令列界面或 Amazon EMR 主控台來執行您的應用程式。

每個映射器指令碼會在叢集中以個別程序來啟動。每個縮減器可執行檔會將映射器可執行檔的輸出轉換為任務流程的資料輸出。

大多數串流應用程式都需要 inputoutputmapperreducer 參數。下表描述這些和其他可選參數。

參數 描述 必要
-input

Amazon S3 上的輸入資料位置。

類型:字串

預設:無

限制條件:URI。如果沒有指定通訊協定,則會使用叢集的預設檔案系統。

-輸出

在 Amazon S3 上 Amazon EMR 上傳已處理資料的位置。

類型:字串

預設:無

限制條件:URI

預設:如果未指定位置,Amazon EMR 會將資料上傳至 input 指定的位置。

-mapper

映射器可執行檔的名稱。

類型:字串

預設:無

-reducer

縮減器可執行檔的名稱。

類型:字串

預設:無

-cacheFile

包含 Hadoop 檔案的 Amazon S3 位置會複製到本機工作目錄 (主要是為了改善效能)。

類型:字串

預設:無

限制:[URI]#[要在工作目錄中建立的符號連結名稱]

-cacheArchive

將 JAR 檔案解壓縮至工作目錄

類型:字串

預設:無

限制:[URI]#[要在工作目錄中建立的符號連結目錄]

-combiner

結合結果

類型:字串

預設:無

限制條件:Java 類別名稱

以下程式碼範例是一種以 Python 編寫的映射器可執行檔。此指令碼是 WordCount 範例應用程式的一部分。

#!/usr/bin/python import sys def main(argv): line = sys.stdin.readline() try: while line: line = line.rstrip() words = line.split() for word in words: print "LongValueSum:" + word + "\t" + "1" line = sys.stdin.readline() except "end of file": return None if __name__ == "__main__": main(sys.argv)
隱私權網站條款Cookie 偏好設定
© 2025, Amazon Web Services, Inc.或其附屬公司。保留所有權利。