Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Hadoop

1,919 views

Published on

給公司主管介紹Hadoop

Published in: Technology, News & Politics
  • Be the first to comment

  • Be the first to like this

Hadoop

  1. 1. 分散式系統(Hadoop) 微程式資訊股份有限公司:研發部協理 薛共和 分享對象:公司一級主管
  2. 2. 雲端運算?你說的雲端計算該不會是虛擬主機吧(VirtualPrivate Server:VPS),還是把程式做成web的形式?外行人只能看熱鬧,像廣達 鴻海 華碩...之流,他們在談的雲端只是為了炒股票 ;雲端運算的基礎不在硬體,而在軟體(程式語言)的架構嚴格說來雲端運算不是技術,它是概念, cloudcomputing 跟 grid computing 並沒有明顯區隔,兩者均是分散式運算衍伸的概念
  3. 3. Saas : YouTube、Facebook、Twitter、無名 小站...(telnet 是最早的Saas)、iCloudPaas : Google AppEngine、Microsoft Azure、Amazon S3、Amazon SimpleDB (LIVE+ v1.0有點這個味道) 、StackatoIaas : 騰雲計算(TCloud:趨勢,雲端教我的事)、 中華電信 (hicloud 自創 Caas)對於資訊大國的台灣來說;沒有發展Paas 的條件,因為;台灣沒有發展好用的程式語言或架構的條件與經驗
  4. 4. 資訊領域目前遇到的難題巨量的資料處理,傳統的資料運算所遇到瓶頸 思考:1) 悠遊卡要做行為分析時 卡號 台北站 卡號 台大門市 ... ...小額消費 日交易筆數 > 250,000 = 62M ;一年 將近 2G(未包含交通使用紀錄)
  5. 5. 2) 中華電信行動通訊用戶特性客製化行銷 門號 接通起始時間 門號 繞道其他網路起始時間 門號 接通結束時間 ... ... 每個月保留資料記錄約為3~4T的資訊, 且資料需要保存6~9個月的通話明細3) 紐約股票交易中心一天會產生1T交易資訊4) Facebook維護超過10億條的資訊,超過1P 的資訊 ps. giga G 10^9| tera T 10^12| peta P 10^15
  6. 6. Hadoop 的歷史a) Hadoop 是由 Apache Lucene的建立者 (Doug Cutting)所開發維護,而Lucene是一 個文字分析的函式庫(search engine)b) 當時一億個網址的索引,成本大約要花費硬 體50萬 以及每個月3萬元 的執行成本c) Nutch 計畫在 2002 年展開 ,他是一個網頁 抓取與查詢的系統,但他們發現這個架構的 規模跟不上真實世界的成長
  7. 7. d) 2003年 Google 發表了雲端運算論文 ( GFS /Bigtable/MapReduce)e) 2004年 Doug Cutting 開始一個開放原碼 的實做 Distributed Filesystem (NDFS).f) 2004, Google向世界發布 MapReduce 的 架構g) 2005 Doug Cutting在Nutch實做 MapReduceh) 2006 Doug Cutting 將 Nutch改名為 Hadoop 並且加入的Yahoo 團隊
  8. 8. i) 2008 Yahoo 宣佈達成 10,000-core Hadoop cluster
  9. 9. j) 2009 Yahoo 破了世界紀錄 1T的 資料分析 花了62秒,打敗google 之前創下的紀錄 68 秒從這個歷史;我們看到一個好的架構要發展10年是很平常的事,很多程式語言甚至是發展20年才紅起來
  10. 10. 其他資料儲存/運算架構RDBMS(Oracle/Mysql...)Grid Computing(MPI)Volunteer Computing(SETI@home)
  11. 11. 分散運算原理(心得與奇想)分析計算: 所有的計算都可以簡化成 + - ,包括微積分...於是: (((1+10+4) * 3 - 20) /6 )* 8 - 1((1+10+4) * 3 - 20) /6 -> 可以在 8台機器運算,把結果加起來再 - 1(1+10+4) 可在一台機器上分成三個不同的程序 運算 , 最後 - 20 再 除以 6
  12. 12. 實際上,分散式運算跟計算的交換律有關,只要a(運算)b = b(運算)a 的情況 ,就能分散計算但是;一旦我們把這個分析做完,實際的運算就會發現根本不需要分散( 因為剩下的多半很簡單) ,所以分散式的計算 ,重點在怎麼拆分計算,而不是計算
  13. 13. MapReduce 是一種分散運算的程式架構要把微程式研究所內的每個同學分數加一分並且把他的平均值計算出來f(x) = x+1;map: map (f[x] , [1,2,3,4,5]) -> [ 2,3,4,5,6]; 可平行運算reduce: (2+3+4+5+6) / 5 = 4; 核心運算不能平行
  14. 14. 先看2個例子a) UNIX 的指令grep "微程式" test.loggrep "微程式" test.log | sortgrep "微程式" test.log | sort | wcb) inverted index
  15. 15. HDFS(Hadoop Distributed File System)
  16. 16. 192M --> HDFS每個BLOCK 64M (0 , 1 , 2)HDFS 每個block 會備份在三個地方,現需要分散在 5 台機器(a b c d e) a 0 2 b 1 2 0-->a c 1 2 => 1-->b d 0 2-->c e 0 1
  17. 17. 商業上的實際運用a) 中華電信的帳務處理b) Yahoo 使用 Hadoop 處理 spam的問題c) Google 使用 MapReduce 處理網頁的 PageRank 計算d) Facebook / Last.fm ... 使用 Hadoope) 氣象單位分析歷史氣象資訊
  18. 18. 未來展望a) 消費者行為分析b) 推薦系統c) 主動式RFID資訊分析d) 智慧電網 資料分析
  19. 19. 謝謝撥空參加會議歡迎提出問題討論

×