580
阿裏雲
本地運行__功能介紹_MapReduce_大數據計算服務-阿裏雲
用戶通過在jar命令中設置–local參數,在本地模擬MapReduce的運行過程,從而進行本地調試。本地運行時, 客戶端會從ODPS中下載本地調試所需要的輸入表的元信息、數據,所需要的資源以及輸出表的元信息,並將這些信息保存到一個名為warehouse的本地目錄中。 在程序運行結束後,會將計算結果輸出到warehouse目錄內的一個文件中。如果本地的warehouse目錄下已經下載了輸入表及被引用的資源,在下一次運行時, 會直接引用warehouse下的數據及文件,而不會重複下載。
在本地運行過程中,仍然會啟動多個Map及Reduce進程處理數據,但這些進程不是並發運行,而是依次串行運行。此外這個模擬運行過程與真正的分布式運行有如下差別:
- 輸入表行數限製:目前,最多隻會下載100行數據;
- 資源的使用:在分布式環境中,ODPS會限製引用資源的大小,詳情請參考 應用限製 。但在本地運行環境中,不會有資源大小的限製;
- 安全限製:ODPS MapReduce及UDF程序在分布式環境中運行時受到 Java沙箱 的限製。但在本地運行時,則沒有此限製;
下麵將給出一個簡單的本地本地運行示例:
odps:my_project> jar -l com.aliyun.odps.mapred.example.WordCount wc_in wc_out
Summary:
counters: 10
map-reduce framework
combine_input_groups=2
combine_output_records=2
map_input_bytes=4
map_input_records=1
map_output_records=2
map_output_[wc_out]_bytes=0
map_output_[wc_out]_records=0
reduce_input_groups=2
reduce_output_[wc_out]_bytes=8
reduce_output_[wc_out]_records=2
OK
備注:
- 關於WordCount示例的介紹請參考 WordCount代碼示例 。
如果用戶是第一次運行本地調試命令,命令成功結束後,會在當前路徑下看到一個名為warehouse的路徑。warehouse的目錄結構如下所示:
<warehouse>
|____my_project(項目空間目錄)
|____ <__tables__>
| |__wc_in(表數據目錄)
| | |____ data(文件)
| | |
| | |____ <__schema__> (文件)
| |__wc_out(表數據目錄)
| |____ data(文件)
| |
| |____ <__schema__> (文件)
|
|____ <__resources__>
|
|___table_resource_name (表資源)
| |____<__ref__>
|
|___ file_resource_name(文件資源)
my_project的同級目錄表示項目空間。wc_in及wc_out表示數據表,用戶在jar命令中讀寫的表文件數據會被下載到這級目錄下。 schema文件中的內容表示表的元信息,其文件格式定義為:
project=local_project_name
table=local_table_name
columns=col1_name:col1_type,col2_name:col2_type
partitions=p1:STRING,p2:BIGINT -- 本示例中不需要此字
其中,列名與列類型使用冒號”:”分隔,列與列之間使用逗號”,”分隔。schema文件的最前麵需要聲明Project名字及Table名字, 即project_name.table_name,使用逗號與列的定義做分隔。data文件表示表的數據。列的數量及數據必須與schema文件的定義相符, 不能多列或者少列,列之間使用逗號分隔。
wc_in的schema文件內容:
my_project.wc_in,key:STRING,value:STRING
data文件內容示例:
0,2
客戶端會從ODPS中下載表的元信息及部分數據內容並保存到上述兩個文件中。如果再次運行這個示例,將直接使用wc_in目錄下的數據, 不會再次下載。需要特殊聲明的是,從ODPS中下載數據的功能隻在MapReduce的本地運行模式下才支持,在 Eclipse開發插件 中進行本地調試時, 不支持將ODPS的數據下載到本地。
wc_out的schema文件內容:
my_project.wc_out,key:STRING,cnt:BIGINT
data文件內容:
0,1
2,1
客戶端會從ODPS現在wc_out表的元信息,並保存到schema文件中。而data文件的內容是在本地運行後,生成的結果數據文件。
Note:
- 用戶也可以自行編輯schema及data文件,而後將這兩個文件放置在對應的表目錄下。在本地運行時,客戶端檢測到表目錄已經存在, 則不會從ODPS中下載這個表的信息。本地的表目錄可以是ODPS中不存在的表。
最後更新:2016-05-06 10:43:14
上一篇:
資源使用__功能介紹_MapReduce_大數據計算服務-阿裏雲
下一篇:
Java沙箱__MapReduce_大數據計算服務-阿裏雲
開通表格存儲服務__快速入門_表格存儲-阿裏雲
雲數據庫 MongoDB 版使用哪個版本的Mongodb?__開發運維_技術運維問題_雲數據庫 MongoDB 版-阿裏雲
後端ECS為何訪問不了負載均衡實例__後端 ECS 服務器常見問題_常見問題_負載均衡-阿裏雲
DetachPolicyFromUser__授權策略管理接口_RAM API文檔_訪問控製-阿裏雲
AssumeRole__操作接口_STS API文檔_訪問控製-阿裏雲
編輯賬號信息__賬號管理類 API_Open API 參考_企業級分布式應用服務 EDAS-阿裏雲
域名注冊流程__域名注冊_注冊續費_域名-阿裏雲
主題使用手冊__Java SDK_SDK使用手冊_消息服務-阿裏雲
掛載數據盤__磁盤_用戶指南_雲服務器 ECS-阿裏雲
宗寧:城市大腦開始落地,阿裏雲讓城市開始思考
相關內容
常見錯誤說明__附錄_大數據計算服務-阿裏雲
發送短信接口__API使用手冊_短信服務-阿裏雲
接口文檔__Android_安全組件教程_移動安全-阿裏雲
運營商錯誤碼(聯通)__常見問題_短信服務-阿裏雲
設置短信模板__使用手冊_短信服務-阿裏雲
OSS 權限問題及排查__常見錯誤及排除_最佳實踐_對象存儲 OSS-阿裏雲
消息通知__操作指南_批量計算-阿裏雲
設備端快速接入(MQTT)__快速開始_阿裏雲物聯網套件-阿裏雲
查詢API調用流量數據__API管理相關接口_API_API 網關-阿裏雲
使用STS訪問__JavaScript-SDK_SDK 參考_對象存儲 OSS-阿裏雲