① AWS亞馬遜和Aliyun阿里雲、七牛雲的雲主機的區別和優勢是什麼
摘要 AWS的優點:
② 亞馬遜AWS的速度怎麼樣
利用傳統技術服務,需要花數周時間才能采購、交付並運行資源。這么長的時間期扼殺了創新。使用亞馬遜AWS,開發人員可以在幾分鍾內部署數百、甚至數千個計算節點,而無需任何繁瑣的流程。亞馬遜AWS自助服務環境改變了開發人員創建和部署應用程序的速度,使軟體開發團隊能夠更快、更頻繁的進行創新。
③ aws的工具
⊕ 流程建模(Process Model)平台
⊕ 應用建模(Application Model)平台
⊕ 流程自動化(Process Automate)技術
⊕ 應用整合(Integration)技術
⊕ 業務活動監控(BAM)平台
⊕ 流程管理(Process Manage)平台
⊕客戶端交互(Portal Worklist)平台
⊕ 流程優化(Optimize)平台
流程建模
AWS的業務流程建模工具是一款基於BPMN標準的流程建模與設計工具,支持XPDL2.0標準的流程XML模型和BPEL標准。業務分析人員和技術開發人員可以同時在該設計環境中進行團隊協作。AWS平台的流程建模方式提供了基於純Web和客戶端Studio兩種雙向兼容的工具,無論採用哪種,都可以時時聯機到運行伺服器,對運行的模型進行版本管理和在線優化。
AWS的流程建模可支持至頂而下、逐層深入的建模方法,不僅支持用於流程執行的BPM模型,還以利用建模工具從業務師角度對企業價值鏈、流程區域、流程地圖、子流程進行立體的梳理,繼而成企業流程的梳理模型和執行模型。
應用建模
探討企業通過技術來改善流程,主要有兩種方法:一種是通過集成和授權來驅動傳統的遺留應用系統;另一種是利用現代的BPM系統執行BPM應用。在BPM系統中,流程即為應用程序,這種可理解為流程所定義的每個步驟視為個人或其他應用系統所執行的任務,更加明確的說BPM應用包含了流程和應用程序兩部分。在中國,大多數集團企業或行業客戶IT建設尚處於初級磨合階段,大量BPM應用需要進行設計或重建,AWS的應用建模工具和引擎能夠為交付每個步驟的應用程序提供全過程的設計工具和執行環境。
值得關注的是AWS藉助了MDA(Model Driven Architecture,模型驅動架構)技術,實現了業務應用需求與軟體開發技術的分離,讓編程技術人員有更多的時間關注在用戶需求與業務敏捷性,不必考慮實現細節。透過AWS的MDA模型架構,可以讓一個軟體應用可視、可控的通過模型組合起來,並隨時可以重新進行組合。在AWS所表達的業務系統中,應用就是由看得見、摸的著的系列模型組合而成的,大大降低了應用功能(非流程)的交付周期和難度,使經過簡單培訓的技術人員也能高質量、高效率的設計出足夠復雜的業務應用來。同時AWS的建模工具支持與Eclipse(java編程環境)的集成,具備簡單Java編程經驗的設計者可通過擴展各種事件介面實現更復雜的業務邏輯。
自動化
在BPM系統中,AWS將重復的、無增值價值的活動由觸發器邏輯自動完成,而「人工任務」是最重要也最有價值的交互活動,「人工任務」在實現流程自動化的一大挑戰是如何讓當前任務工作者知道 「接力賽的下一棒」,負責這一環節的機制在AWS中被稱為「參與者路由方案」。合適的參與者路由方案可以迅速、准確的動態找到任務的處理者,而不必擔心因組織、角色的調整而引起的流程調整,組織是為流程自動化服務的。不僅支持按角色、上下關系的參與者路由方案,AWS平台為滿足復雜業務、組織結構(例如矩陣式、多維矩陣式組織結構)提供了二十餘種常用路由方案和規則表達,靈活滿足90%以上的流程自動化路由需求,當不能滿足特殊的流程自動化需求時,AWS提供了可自定義擴展的Java介面來編程實現。
應用整合
通過適合的技術可以將外部應用系統的身份、局部應用、業務互交、數據等整合到一起,AWS平台為實現集成提供了開放的工具、產品和技術,通過AWS平台實現集成的幾種常見模式:
⊕ 身份被集成:登錄狀態被三方Portal門戶掌管
⊕ 集成身份:登錄狀態由AWS Portal掌管,整合其他Web應用
⊕ 數據交換:流程中將請求/結果放入ESB企業服務匯流排或JMS隊列
⊕ 協同外部系統數據:流程中讀寫外部數據(XML、WebServices、DB、Other)
⊕ 協同外部文件格式:流程表單與常用文件格式的轉換(Word、Excel、XML、PDF)
⊕ 協同外部溝通平台:流程與外部通訊技術的集成(簡訊、MSN、EMail、RTX)
⊕ 協同外部Web界面:流程中調用外部Web應用界面(SSO、URL Binding)
⊕ 外部啟動/執行AWS流程:在三方外部系統執行AWS流程(SDK API、WebServices)
⊕ 協同外部流程/狀態:由AWS流程觸發外部系統流程或更改數據的狀態(API、WebServices、DB)
業務活動監控(Business Activity Montior,BAM)平台 BAM提供了對業務績效指標的實時訪問,以改進業務運作的速度和效率,並將這些變化和趨勢由一系列的圖形儀表動態的展現給用戶。BAM能夠讓高管人員以可視化的方式從自己Web Portal上監控業務或流程的「關鍵指標」(Key Performance Indicator,簡稱 KPI),AWS平台為實現對流程、變化的業務數據進行時時監控提供了平台級支持。在AWS BAM平台中預設了十餘個流程績效和運行狀態的監控,通過Adobe Flex技術將數據動態推送到Web客戶端,在實施項目案例時也可根據BAM提供的介面快速封裝成自己的業務儀表盤,並通過統一的授權機制將儀表部署給特定用戶。
流程管理
除了提供各種度量和績效指標監控,AWS還為流程管理員提供流程運行實例和任務運行實例的管理,能夠對各類實例進行跟蹤、轉移、停止等相關管理。對流程運行數據提供豐富的統計分析和模型報告。AWS為領導監控全部流程或管轄范圍內的流程實例提供了管控查詢工具,該工具可以按條件查詢到超時異常或符合條件的流程實例,進而打開流程跟蹤圖和用戶表單界面,實現對系統流程運行的管控監督過程簡單、透明化。
通過AWS報表工具,流程管理人員可以對任意系統BO數據(用戶業務數據)的產生過程進行反向流程跟蹤(任務追溯),最終可直達用戶表單界面。亦可利用一些特殊的流程管理工具、特性實現非常規需求(例如任務超時績效統計、表單用戶數據版本快照、任務工作交接等)。
客戶端
AWS Portal Server為企業用戶訪問散落各處的Web應用、信息、數據提供了統一的入口,並為BPM用戶提供了簡潔而高效的流程交互功能,使得流程參與者可以通過集成的入口完成所有任務或對歷史任務進行查詢、跟蹤。
流程優化
適應企業的管理變化是BPM的主要任務,AWS適應變化的能力是所有BPM軟體所不及的,這主要取決於AWS在一開始就採用了MDA架構,這一技術使得流程模型和其他業務模型的設計和執行在同一個統一的平台上,並抽取了通用的程序邏輯為豐富的規則表達式,使經過培訓的普通人員即可完成流程的優化。使業務人員能夠所見即所得,而流程設計人員可以隨時在線調整和優化正在運行的流程模型或進行版本管理,並且使這一過程只需要輕點滑鼠即可完成,真正實現了企業對戰略規劃和業務變化的敏捷響應。
④ 什麼是 Amazon DynamoDB
DynamoDB 是Amazon(亞馬遜)最新發布的 NoSQL (指的是非關系型的資料庫。隨著互聯網web2.0網站的興起,傳統的關系資料庫在應付web2.0網站,特別是超大規模和高並發的SNS類型的web2.0純動態網站已經顯得力不從心,暴露了很多難以克服的問題,而非關系型的資料庫則由於其本身的特點得到了非常迅速的發展。)。DynamoDB是一個性能好、可靠高且具有可擴展性的 NoSQL 雲資料庫服務,DynamoDB集15年分布式非關系性資料庫開發之精粹,又通過內部使用考驗,是AWS團隊精心打造的產品。
⑤ 請教用AWS的C++版SDK開發所遇到的問題,在線等
通過ARM交叉編譯器可通過靜態庫的方式在Android平台上執行本地C++程序,但是未來在正式發布時可能會因為許可權等種種問題而不發運行,但是理論上Android支持不支持C++是Google自己來決定的,畢竟老對手Symbian C++發展了近20年,而微軟Windows CE也歷經了13年,所以Google不會拿自己平台的安全問題開玩笑。
⑥ 過去兩年,亞馬遜雲在中國都做了些啥
自從2013年底AWS亞馬遜雲宣布中國區域雲計算平台服務開始有限預覽服務以來,業界一直都很關注亞馬遜雲在中國的進展。在亞馬遜AWS正式推出商用服務之前,業界普遍認為這個真空期是其它雲服務廠商在中國發展的絕佳窗口期。看起來過去的兩年中,亞馬遜雲在中國市場似乎沒太多作為,事實是這樣的么?
掘金中國企業「走出去」大市場
在深圳的TCL通訊科技控股有限公司移動互聯網新興業務中心總經理李友林說,TCL要在海外選雲服務供應商,選來選去沒的選,只有選亞馬遜雲。為什麼呢?
先說TCL如何在海外用AWS亞馬遜雲服務。首先,TCL與AWS亞馬遜在海外市場屬於深度合作,特別是在FOTA(Firmware Over-the-Air ,移動終端空中下載軟體升級技術)方面。TCL向海外用戶推送手機的固件更新就是使用AWS的雲服務及其技術架構,每年通過FOTA更新的海外用戶約在1000萬量級以上。其次,TCL的海外移動增值服務也依託於AWS的雲服務及其CloudFront內容分發CDN服務,目前TCL海外手機應用商店的月APP下載量已經突破1000萬,每個月的下載量以20%的速度增長。第三,TCL根據不同的國家為用戶免費提供2G到5G不等的存儲空間,也是通過AWS雲服務方式實現的。個人雲業務剛剛開始,將很快會達到很高的量級。目前TCL採用了亞馬遜雲在亞太兩個服務節點、北美兩個服務節點、歐洲一個服務節點以及在南美和澳洲各設有一個CDN節點。
那麼,為什麼TCL要在海外市場選AWS亞馬遜雲服務呢?一個最重要的原因在於AWS亞馬遜雲的銷售模式和技術服務模式。負責TCL客戶的AWS客戶經理介紹說,AWS亞馬遜雲在中國的客戶經理同時負責中國雲服務和海外雲服務的服務,並面向客戶同時負責中國與海外的技術支持服務。其他的國際雲服務廠商都是各個國家市場分開來單獨承擔銷售任務,各個國家市場獨立核算。AWS對於中國客戶,無論是國際還是中國的服務需求,中國的客戶一個電話打到中國的客戶經理那就能解決問題。
很多中國企業在「走出去」的過程中,向海外雲服務公司采購了當地的雲服務。可一旦涉及到當地的雲服務技術支持,或者語言不通或者文化上不理解等,造成中國企業海外上「雲」的極大困難。而AWS亞馬遜雲從基因上就解決了這些問題,這就是李友林說的「選來選去沒的選」的重要原因,實際上很多中國企業走出去的過程中選擇亞馬遜雲,都是因為同樣的原因。
讓中國創業者裂變式增長
來自廣州的Mobvista是一家成立於2013年的創業公司,從成立到現在主要有兩塊業務,一是全球移動網路廣告分發,二是海外游戲發行。在過去兩年多的時間中,該創業公司可以說是經歷了裂變式的發展:從一開始的4個人到現在250人以上,在香港、廣州、北京以及美國都設有辦公室,還准備在東南亞和印度開設辦公室。Mobvista目前服務的廣告主包括了網路、阿里巴巴、360、91助手等在內的國內互聯網公司以及各類游戲公司等。
Mobvista聯合創始人、CTO 黃偉堅表示,選用AWS亞馬遜雲要的原因是隨著業務的發展,整個系統架構越來越復雜,針對每一次比較大的技術架構升級,AWS亞馬遜雲都能提供相應的解決方案。以Mobvista的移動廣告業務為例,其流量覆蓋了全球236個國家和地區,每天的移動廣告展現量為100億次左右,點擊量在1億次到2億次,通過轉化流程每天激活量在百萬級別。自公司成立以來,Mobvista經歷了三次大的系統架構升級,分別對應系統承載點擊量達到100萬次、1000萬次和1億次三個節點。
每一次系統架構升級的時候,一方面Mobvista自己會去研究、組合、調研和測試雲服務,另外一方面AWS亞馬遜雲也給出了專業性的建議,能根據業務場景相應建議如何搭建業務架構。Mobvista曾想嘗試用機器學習,AWS亞馬遜雲專門派了一個機器學習專家做了兩場介紹,後續還不停地郵件溝通。「這是我們選擇AWS亞馬遜雲一個非常重要的原因,每一次業務架構的升級,AWS豐富的產品線都能滿足我們在技術上的訴求。此外,AWS後台自動化程度很高、技術文檔做得很全、技術支持也做得挺不錯,整個雲服務用起來非常順暢。」
AWS亞馬遜雲讓Mobvista的廣告延遲性維持在非常低的水平。廣告本身是一個點擊和跳轉的行為,用戶點了廣告後就會跳轉到Mobvista的伺服器,再跳轉到真正要去的頁面或者是購買頁面。無論用戶在世界哪個地區,Mobvista都可以把用戶從點擊一個廣告到跳轉到伺服器的用時控制在200毫秒以內,這與AWS亞馬遜的全球部署緊密相關。」對創業公司來說是一個非常快的起步過程,前提是雲服務能提供非常穩定可靠的支持才行,到了我們這個量級對系統的穩定性、可靠性要求非常高。」
借勢物聯網、中外一把抓
物聯網應用通常會產生海量數據存儲,因為不論是設備端現有的諸多感測器,還是感測器在控制過程中,都會產生海量數據。在大數據的時代,很多設備造商會把數據存儲交給雲服務,之後再做數據分析。「AWS亞馬遜雲提供了相當穩定的IO效果。我們在其他平台上也試用過,當流量增長之後資料庫的品質就大幅度下滑了,下滑的部分主要是因為系統的IO效果不足,所以導致在響應和體驗方面都很差的效果。」艾拉物聯中國區技術總監楊閩鍾如是說。
實際上物聯網是一個萬物互聯的基礎設施,物聯網更需要全球化的部署及高穩定、高可靠、高可用性。艾拉物聯於2010年成立於美國矽谷,2014年5月份在中國深圳成立了辦事處,艾拉物聯是AWS亞馬遜雲中國有限預覽版的用戶之一。公司聯合創始人之一Adrian Caceres,曾在亞馬遜126實驗室工作過,是四代Kindle的架構團隊成員之一。另外一位聯合創始人Tom Lee是斯坦福教授,在斯坦福任教22年並主導開設了世界上第一門物聯網IoT課程。
楊閩鍾表示,艾拉物聯是一個有著全球化戰略的公司,在美國和中國都有自己的團隊。很多美國大品牌生產的產品其實都是針對中國市場的,當這些美國品牌公司聽說艾拉物聯能在中國提供本地的雲服務,都非常高興,這是因為這些產品在真正上市之前都需要做測試。反過來,很多中國廠商想做OEM產品再賣給國外的客戶,通過艾拉物聯的品牌及其在全球的支持網路,很容易擴張海外的業務。現在艾拉物聯除了在中國和美國外,還將在歐洲搭建平台。AWS亞馬遜雲為艾拉物聯提供IaaS層,艾拉物聯在此基礎上向客戶提供自己的PaaS開發層。
「我們預計未來物聯網上有500億的設備,很多平台都面臨著如何形成一個系統而不是碎片化的狀態。把設備聯上網了,後續將產生很多問題。新功能如何更新?產品設計出來後,需求發生了變化怎麼辦?我們經常說在IoT行業里沒有水晶球,沒有人會知道在一年後或者是3年、5年後整個市場會變成什麼樣。一個靈活的平台可以讓自身隨著需求變化而迅速改變。」當AWS亞馬遜雲在中國開放有限預覽後,艾拉物聯迅速加入。
AWS亞馬遜雲中國華南區、西南區團隊負責人黃皓介紹說,AWS亞馬遜雲在全球除中國外是一個統一的賬戶,用戶無論在哪個國家使用了雲服務,都是通過一個統一的賬戶進行管理。而中國相對獨立,單獨設置了一個賬戶進行區分。因此,AWS亞馬遜雲的全球化管理相當簡單、靈活。
上述三個企業的經歷表明了AWS亞馬遜過去兩年在中國市場的積極布局與推進,其中AWS中文支持服務的推出極大推進了AWS亞馬遜雲針對中國企業的銷售。2014年底,AWS亞馬遜雲面向中國市場的有限預覽客戶推出了中文技術支持(AWS Support)服務,提供快速響應客戶需求的專業服務團隊,實現全球覆蓋、全時區、24x7x365 全年無休的客戶服務。客戶使用AWS Support服務,無需簽訂長期的合同,而是按照實際使用時間付費,而且所有級別的 AWS Support 均為供不限次數的案例支持。
AWS的人士告訴記者,現在AWS亞馬遜雲在中國有幾百人的技術銷售團隊,專門負責針對中國企業的全球化雲服務需求及中文技術支持。可見在過去的兩年中,AWS亞馬遜雲在中國也沒閑著,而是積極拓展業務,曲線進入中國市場。隨著與寧夏政府合作數據中心工程的推進, AWS亞馬遜雲全面進入中國市場已經指日可待,屆時將給中國雲計算市場帶來多大沖擊?套用貴州大數據的一句推廣語:「人在干,雲在算」!
⑦ 基於AWS開發編譯的平台使用的是什麼編譯環境
開始前 先強烈建議 登錄控制台走一遍亞馬遜的引導流程,並用nodejs版 在你ubuntu上跑一邊,把策略文件生成了。並了解如何創建事物(設備)
文檔:https://docs.aws.amazon.com/iot/latest/developerguide/iot-gs.html
當前版本:
aws-iot-device-sdk-cpp: Release version 1.3.0
Openssl 版本: 1.0.2d
gcc:4.8.3(需支持c++11)
項目AWS IOT C++SDK git:
https://github.com/aws/aws-iot-device-sdk-cpp/tree/release
⑧ 為什麼選擇AWSAWS有哪些認證與考試
大家知道亞馬遜的一個基本原則是不會去評論競爭對手,這是公司的要求。用戶在選擇雲服務商的時候的風險與買產品是不太一樣的,應該要低一些。因為買產品,基本上是一錘子買賣,三年之內軟硬體不太會換的。但是雲服務卻不一樣,你任何時間都可以換。這個服務到底好不好,最好親身去體驗一下。亞馬遜AWS會提供一個Free
Usage Tier免費套餐服務,大家可以試一下。如果要做橫向比較的話,可以從幾個方面來看:
第一,雲服務商的運營經驗和品牌。
第二,技術。技術包括兩個維度,一是技術的廣度,你要的技術他有沒有,二是技術的深度,某一個技術做得怎麼樣,這是需要去評估的,而不僅僅去看產品名字、服務名字有可以了。比如同樣叫RDS,但RDS與RDS之間的差別蠻大的。同樣的虛擬主機,差別也是蠻大的。
第三,服務,雲計算是作為一個服務而不是產品提供了,因此服務商的服務能力和品質直接影響到用戶的體驗。
第四,價格。各服務商的價格有高有低,還是需要你自己去比較。
關於認證考試培訓的問題,這個很有意思的問題,為什麼呢?因為大家知道如果一個平台的使用量越來越多,平台認證的價格會越來越高,我們現在看到AWS的使用量增長非常快,而且在市場上應用也非常廣,所以這個認證是會挺有市場。AWS認證目前按照三個不同的角色來劃分,比如說你是開發者,我們是有開發人員認證。如果你是一個架構師,那我們架構師認證。如果你是一個做運維的,我們有運維的認證。
同時在級別主要分為三個,入門級就是初級(Associate),中級叫專家級(Professional),高級叫大師級(Master),詳見這里。
如果你想更系統的了解AWS的服務,你可以參加一些AWS的培訓,目前國內沒有正式推出,但是應該快會推出。國內培訓團隊推出了一個免費的培訓課程AWSome
Day,建議大家有機會就去參加。(InfoQ註:6月25日AWSome Day將在成都舉行,歡迎報名。)
關於認證考試,這個認證考試是機考的,要到專門的考點去考。北京的考點是在魏公村附近,這個具體的地點在注冊考試時能看到。
⑨ 如何用aws完成 maprece program
大數據的時代, 到處張嘴閉嘴都是Hadoop, MapRece, 不跟上時代怎麼行? 可是對一個hadoop的新手, 寫一個屬於自己的MapRece程序還是小有點難度的, 需要建立一個maven項目, 還要搞清楚各種庫的依賴, 再加上編譯運行, 基本上頭大兩圈了吧。 這也使得很多隻是想簡單了解一下MapRece的人望而卻步。
本文會教你如何用最快最簡單的方法編寫和運行一個屬於自己的MapRece程序, let's go!
首先有兩個前提:
1. 有一個已經可以運行的hadoop 集群(也可以是偽分布系統), 上面的hdfs和maprece工作正常 (這個真的是最基本的了, 不再累述, 不會的請參考 http://hadoop.apache.org/docs/current/)
2. 集群上安裝了JDK (編譯運行時會用到)
正式開始
1. 首先登入hadoop 集群裡面的一個節點, 創建一個java源文件, 偷懶起見, 基本盜用官方的word count (因為本文的目的是教會你如何快編寫和運行一個MapRece程序, 而不是如何寫好一個功能齊全的MapRece程序)
內容如下:
import java.io.IOException;
import java.util.StringTokenizer;
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.io.IntWritable;
import org.apache.hadoop.io.Text;
import org.apache.hadoop.maprece.Job;
import org.apache.hadoop.maprece.Mapper;
import org.apache.hadoop.maprece.Recer;
import org.apache.hadoop.maprece.lib.input.FileInputFormat;
import org.apache.hadoop.maprece.lib.output.FileOutputFormat;
import org.apache.hadoop.util.GenericOptionsParser;
public class myword {
public static class TokenizerMapper
extends Mapper<Object, Text, Text, IntWritable>{
private final static IntWritable one = new IntWritable(1);
private Text word = new Text();
public void map(Object key, Text value, Context context
) throws IOException, InterruptedException {
StringTokenizer itr = new StringTokenizer(value.toString());
while (itr.hasMoreTokens()) {
word.set(itr.nextToken());
context.write(word, one);
}
}
}
public static class IntSumRecer
extends Recer<Text,IntWritable,Text,IntWritable> {
private IntWritable result = new IntWritable();
public void rece(Text key, Iterable<IntWritable> values,
Context context
) throws IOException, InterruptedException {
int sum = 0;
for (IntWritable val : values) {
sum += val.get();
}
result.set(sum);
context.write(key, result);
}
}
public static void main(String[] args) throws Exception {
Configuration conf = new Configuration();
String[] otherArgs = new GenericOptionsParser(conf, args).getRemainingArgs();
if (otherArgs.length != 2) {
System.err.println('Usage: wordcount <in> <out>');
System.exit(2);
}
Job job = new Job(conf, 'word count');
job.setJarByClass(myword.class);
job.setMapperClass(TokenizerMapper.class);
job.setCombinerClass(IntSumRecer.class);
job.setRecerClass(IntSumRecer.class);
job.setOutputKeyClass(Text.class);
job.setOutputValueClass(IntWritable.class);
FileInputFormat.addInputPath(job, new Path(otherArgs[0]));
FileOutputFormat.setOutputPath(job, new Path(otherArgs[1]));
System.exit(job.waitForCompletion(true) ? 0 : 1);
}
}
與官方版本相比, 主要做了兩處修改
1) 為了簡單起見,去掉了開頭的 package org.apache.hadoop.examples;
2) 將類名從 WordCount 改為 myword, 以體現是我們自己的工作成果 :)
2. 拿到hadoop 運行的class path, 主要為編譯所用
運行命令
hadoop classpath
保存打出的結果,本文用的hadoop 版本是Pivotal 公司的Pivotal hadoop, 例子:
/etc/gphd/hadoop/conf:/usr/lib/gphd/hadoop/lib/*:/usr/lib/gphd/hadoop/.//*:/usr/lib/gphd/hadoop-hdfs/./:/usr/lib/gphd/hadoop-hdfs/lib/*:/usr/lib/gphd/hadoop-hdfs/.//*:/usr/lib/gphd/hadoop-yarn/lib/*:/usr/lib/gphd/hadoop-yarn/.//*:/usr/lib/gphd/hadoop-maprece/lib/*:/usr/lib/gphd/hadoop-maprece/.//*::/etc/gphd/pxf/conf::/usr/lib/gphd/pxf/pxf-core.jar:/usr/lib/gphd/pxf/pxf-api.jar:/usr/lib/gphd/publicstage:/usr/lib/gphd/gfxd/lib/gemfirexd.jar::/usr/lib/gphd/zookeeper/zookeeper.jar:/usr/lib/gphd/hbase/lib/hbase-common.jar:/usr/lib/gphd/hbase/lib/hbase-protocol.jar:/usr/lib/gphd/hbase/lib/hbase-client.jar:/usr/lib/gphd/hbase/lib/hbase-thrift.jar:/usr/lib/gphd/hbase/lib/htrace-core-2.01.jar:/etc/gphd/hbase/conf::/usr/lib/gphd/hive/lib/hive-service.jar:/usr/lib/gphd/hive/lib/libthrift-0.9.0.jar:/usr/lib/gphd/hive/lib/hive-metastore.jar:/usr/lib/gphd/hive/lib/libfb303-0.9.0.jar:/usr/lib/gphd/hive/lib/hive-common.jar:/usr/lib/gphd/hive/lib/hive-exec.jar:/usr/lib/gphd/hive/lib/postgresql-jdbc.jar:/etc/gphd/hive/conf::/usr/lib/gphd/sm-plugins/*:
3. 編譯
運行命令
javac -classpath xxx ./myword.java
xxx部分就是上一步裡面取到的class path
運行完此命令後, 當前目錄下會生成一些.class 文件, 例如:
myword.class myword$IntSumRecer.class myword$TokenizerMapper.class
4. 將class文件打包成.jar文件
運行命令
jar -cvf myword.jar ./*.class
至此, 目標jar 文件成功生成
5. 准備一些文本文件, 上傳到hdfs, 以做word count的input
例子:
隨意創建一些文本文件, 保存到mapred_test 文件夾
運行命令
hadoop fs -put ./mapred_test/
確保此文件夾成功上傳到hdfs 當前用戶根目錄下
6. 運行我們的程序
運行命令
hadoop jar ./myword.jar myword mapred_test output
順利的話, 此命令會正常進行, 一個MapRece job 會開始工作, 輸出的結果會保存在 hdfs 當前用戶根目錄下的output 文件夾裡面。
至此大功告成!
如果還需要更多的功能, 我們可以修改前面的源文件以達到一個真正有用的MapRece job。
但是原理大同小異, 練手的話, 基本夠了。
一個拋磚引玉的簡單例子, 歡迎板磚。