SlideShare a Scribd company logo
1 of 20
分散式系統(Hadoop)


     微程式資訊股份有限公司:研發部協理 薛共和
     分享對象:公司一級主管
雲端運算?
你說的雲端計算該不會是虛擬主機吧(Virtual
Private Server:VPS),還是把程式做成web的
形式?外行人只能看熱鬧,像廣達 鴻海 華碩...
之流,他們在談的雲端只是為了炒股票 ;雲端
運算的基礎不在硬體,而在軟體(程式語言)的
架構
嚴格說來雲端運算不是技術,它是概念, cloud
computing 跟 grid computing 並沒有明顯區
隔,兩者均是分散式運算衍伸的概念
Saas : YouTube、Facebook、Twitter、無名
       小站...(telnet 是最早的Saas)、iCloud
Paas : Google AppEngine、Microsoft
       Azure、Amazon S3、Amazon
       SimpleDB (LIVE+ v1.0有點這個味道)
       、Stackato
Iaas : 騰雲計算(TCloud:趨勢,雲端教我的事)、
       中華電信 (hicloud 自創 Caas)

對於資訊大國的台灣來說;沒有發展Paas 的條
件,因為;台灣沒有發展好用的程式語言或架構
的條件與經驗
資訊領域目前遇到的難題
巨量的資料處理,傳統的資料運算所遇到瓶頸

   思考:1) 悠遊卡要做行為分析時

   卡號 台北站
   卡號 台大門市
   ... ...
小額消費 日交易筆數 > 250,000 = 62M ;
一年 將近 2G(未包含交通使用紀錄)
2) 中華電信行動通訊用戶特性客製化行銷

   門號 接通起始時間
   門號 繞道其他網路起始時間
   門號 接通結束時間
    ... ...
   每個月保留資料記錄約為3~4T的資訊,
   且資料需要保存6~9個月的通話明細
3) 紐約股票交易中心一天會產生1T交易資訊
4) Facebook維護超過10億條的資訊,超過1P
   的資訊
 ps. giga G 10^9| tera T 10^12| peta P 10^15
Hadoop 的歷史
a) Hadoop 是由 Apache Lucene的建立者
   (Doug Cutting)所開發維護,而Lucene是一
   個文字分析的函式庫(search engine)
b) 當時一億個網址的索引,成本大約要花費硬
   體50萬 以及每個月3萬元 的執行成本
c) Nutch 計畫在 2002 年展開 ,他是一個網頁
   抓取與查詢的系統,但他們發現這個架構的
   規模跟不上真實世界的成長
d) 2003年 Google 發表了雲端運算論文 (
   GFS /Bigtable/MapReduce)
e) 2004年 Doug Cutting 開始一個開放原碼
   的實做 Distributed Filesystem (NDFS).
f) 2004, Google向世界發布 MapReduce 的
   架構
g) 2005 Doug Cutting在Nutch實做
   MapReduce
h) 2006 Doug Cutting 將 Nutch改名為
   Hadoop 並且加入的Yahoo 團隊
i) 2008 Yahoo 宣佈達成 10,000-core Hadoop
   cluster
j) 2009 Yahoo 破了世界紀錄 1T的 資料分析
   花了62秒,打敗google 之前創下的紀錄 68
   秒

從這個歷史;我們看到一個好的架構要發展10
年是很平常的事,很多程式語言甚至是發展20
年才紅起來
其他資料儲存/運算架構
RDBMS(Oracle/Mysql...)

Grid Computing(MPI)

Volunteer Computing(SETI@home)
分散運算原理(心得與奇想)
分析計算: 所有的計算都可以簡化成 + - ,包括
微積分...於是: (((1+10+4) * 3 - 20) /6 )* 8 - 1
((1+10+4) * 3 - 20) /6 -> 可以在 8台機器運
算,把結果加起來再 - 1
(1+10+4) 可在一台機器上分成三個不同的程
序 運算 , 最後 - 20 再 除以 6
實際上,分散式運算跟計算的交換律有關,只要
a(運算)b = b(運算)a 的情況 ,就能分散計算

但是;一旦我們把這個分析做完,實際的運算就
會發現根本不需要分散( 因為剩下的多半很簡
單) ,所以分散式的計算 ,重點在怎麼拆分計算,
而不是計算
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;
         核心運算不能平行
先看2個例子
a) UNIX 的指令

grep "微程式" test.log
grep "微程式" test.log | sort
grep "微程式" test.log | sort | wc

b) inverted index
HDFS
(Hadoop Distributed File
       System)
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
商業上的實際運用
a) 中華電信的帳務處理
b) Yahoo 使用 Hadoop 處理 spam的問題
c) Google 使用 MapReduce 處理網頁的
   PageRank 計算
d) Facebook / Last.fm ... 使用 Hadoop
e) 氣象單位分析歷史氣象資訊
未來展望

a) 消費者行為分析

b) 推薦系統

c) 主動式RFID資訊分析

d) 智慧電網 資料分析
謝謝撥空參加會議
歡迎提出問題討論

More Related Content

Viewers also liked

寵物活力指數
寵物活力指數寵物活力指數
寵物活力指數共和 薛
 
life+雲端生活家
 life+雲端生活家 life+雲端生活家
life+雲端生活家共和 薛
 
Learn RabbitMQ with Python in 90mins
Learn RabbitMQ with Python in 90minsLearn RabbitMQ with Python in 90mins
Learn RabbitMQ with Python in 90minsLarry Cai
 
穆黎森:Interactive batch query at scale
穆黎森:Interactive batch query at scale穆黎森:Interactive batch query at scale
穆黎森:Interactive batch query at scalehdhappy001
 
Learn flask in 90mins
Learn flask in 90minsLearn flask in 90mins
Learn flask in 90minsLarry Cai
 
Rabbit mq簡介(上)
Rabbit mq簡介(上)Rabbit mq簡介(上)
Rabbit mq簡介(上)共和 薛
 
Rabbit mq messaginginthecloud_v_mworld_2010_ms
Rabbit mq messaginginthecloud_v_mworld_2010_msRabbit mq messaginginthecloud_v_mworld_2010_ms
Rabbit mq messaginginthecloud_v_mworld_2010_msRabbit MQ
 
[@NaukriEngineering] Messaging Queues
[@NaukriEngineering] Messaging Queues[@NaukriEngineering] Messaging Queues
[@NaukriEngineering] Messaging QueuesNaukri.com
 
Practical Message Queuing Using RabbitMQ (PHPem, 3rd July 2014)
Practical Message Queuing Using RabbitMQ (PHPem, 3rd July 2014)Practical Message Queuing Using RabbitMQ (PHPem, 3rd July 2014)
Practical Message Queuing Using RabbitMQ (PHPem, 3rd July 2014)James Titcumb
 
基于Fuel的超融合一体机
基于Fuel的超融合一体机基于Fuel的超融合一体机
基于Fuel的超融合一体机EdwardBadBoy
 
OpenStack Tutorial
OpenStack TutorialOpenStack Tutorial
OpenStack TutorialBret Piatt
 

Viewers also liked (12)

寵物活力指數
寵物活力指數寵物活力指數
寵物活力指數
 
life+雲端生活家
 life+雲端生活家 life+雲端生活家
life+雲端生活家
 
Learn RabbitMQ with Python in 90mins
Learn RabbitMQ with Python in 90minsLearn RabbitMQ with Python in 90mins
Learn RabbitMQ with Python in 90mins
 
穆黎森:Interactive batch query at scale
穆黎森:Interactive batch query at scale穆黎森:Interactive batch query at scale
穆黎森:Interactive batch query at scale
 
Learn flask in 90mins
Learn flask in 90minsLearn flask in 90mins
Learn flask in 90mins
 
Rabbit mq簡介(上)
Rabbit mq簡介(上)Rabbit mq簡介(上)
Rabbit mq簡介(上)
 
Rabbit mq messaginginthecloud_v_mworld_2010_ms
Rabbit mq messaginginthecloud_v_mworld_2010_msRabbit mq messaginginthecloud_v_mworld_2010_ms
Rabbit mq messaginginthecloud_v_mworld_2010_ms
 
[@NaukriEngineering] Messaging Queues
[@NaukriEngineering] Messaging Queues[@NaukriEngineering] Messaging Queues
[@NaukriEngineering] Messaging Queues
 
Practical Message Queuing Using RabbitMQ (PHPem, 3rd July 2014)
Practical Message Queuing Using RabbitMQ (PHPem, 3rd July 2014)Practical Message Queuing Using RabbitMQ (PHPem, 3rd July 2014)
Practical Message Queuing Using RabbitMQ (PHPem, 3rd July 2014)
 
基于Fuel的超融合一体机
基于Fuel的超融合一体机基于Fuel的超融合一体机
基于Fuel的超融合一体机
 
OpenStack Framework Introduction
OpenStack Framework IntroductionOpenStack Framework Introduction
OpenStack Framework Introduction
 
OpenStack Tutorial
OpenStack TutorialOpenStack Tutorial
OpenStack Tutorial
 

Similar to Hadoop

課程1 1:雲端運算初探
課程1 1:雲端運算初探課程1 1:雲端運算初探
課程1 1:雲端運算初探vaemon
 
Hadoop 0.20 程式設計
Hadoop 0.20 程式設計Hadoop 0.20 程式設計
Hadoop 0.20 程式設計Wei-Yu Chen
 
Hadoop Map Reduce 程式設計
Hadoop Map Reduce 程式設計Hadoop Map Reduce 程式設計
Hadoop Map Reduce 程式設計Wei-Yu Chen
 
D3.js 與 Vue 框架的結合,讓圖表更具表現力(LearnWeb Taiwan Meetup #14)
D3.js 與 Vue 框架的結合,讓圖表更具表現力(LearnWeb Taiwan Meetup #14)D3.js 與 Vue 框架的結合,讓圖表更具表現力(LearnWeb Taiwan Meetup #14)
D3.js 與 Vue 框架的結合,讓圖表更具表現力(LearnWeb Taiwan Meetup #14)LearnWeb Taiwan
 
Data Engineering in Taiwan: PAST, NOW and FUTURE
Data Engineering in Taiwan: PAST, NOW and FUTUREData Engineering in Taiwan: PAST, NOW and FUTURE
Data Engineering in Taiwan: PAST, NOW and FUTUREJazz Yao-Tsung Wang
 
Hadoop系统及其关键技术
Hadoop系统及其关键技术Hadoop系统及其关键技术
Hadoop系统及其关键技术冬 陈
 
Hadoop基础及hive入门
Hadoop基础及hive入门Hadoop基础及hive入门
Hadoop基础及hive入门haiwang
 
Ms open camp 2016
Ms open camp 2016Ms open camp 2016
Ms open camp 2016Ascii Huang
 
DISQL 2.0: Language for Big Data Analysis Widely Adopted in Baidu
DISQL 2.0: Language for Big Data Analysis Widely Adopted in BaiduDISQL 2.0: Language for Big Data Analysis Widely Adopted in Baidu
DISQL 2.0: Language for Big Data Analysis Widely Adopted in BaiduXiaoming Chen
 
專題報告
專題報告專題報告
專題報告helen1398
 
打開窗,讓大象跨進來 - Microsoft HDInsight
打開窗,讓大象跨進來 - Microsoft HDInsight打開窗,讓大象跨進來 - Microsoft HDInsight
打開窗,讓大象跨進來 - Microsoft HDInsightKuo-Chun Su
 
Hadoop与数据分析
Hadoop与数据分析Hadoop与数据分析
Hadoop与数据分析George Ang
 
《云计算入门指南》
《云计算入门指南》《云计算入门指南》
《云计算入门指南》wiit
 
KSDG_007_Web 編程另闢蹊徑-GWT,Dart,TypeScript介紹與比較
KSDG_007_Web 編程另闢蹊徑-GWT,Dart,TypeScript介紹與比較KSDG_007_Web 編程另闢蹊徑-GWT,Dart,TypeScript介紹與比較
KSDG_007_Web 編程另闢蹊徑-GWT,Dart,TypeScript介紹與比較Stipc Nsysu
 
分布式流数据实时计算平台 Iprocess
分布式流数据实时计算平台 Iprocess分布式流数据实时计算平台 Iprocess
分布式流数据实时计算平台 Iprocessbabel_qi
 
云存储与虚拟化分论坛 基于云计算的海量数据挖掘
云存储与虚拟化分论坛 基于云计算的海量数据挖掘云存储与虚拟化分论坛 基于云计算的海量数据挖掘
云存储与虚拟化分论坛 基于云计算的海量数据挖掘Riquelme624
 
雲端計算的現況與應用
雲端計算的現況與應用雲端計算的現況與應用
雲端計算的現況與應用fenrisulfryt
 
大数据下的大表Join计算和优化
大数据下的大表Join计算和优化大数据下的大表Join计算和优化
大数据下的大表Join计算和优化huhai463127310
 

Similar to Hadoop (20)

課程1 1:雲端運算初探
課程1 1:雲端運算初探課程1 1:雲端運算初探
課程1 1:雲端運算初探
 
Hadoop 0.20 程式設計
Hadoop 0.20 程式設計Hadoop 0.20 程式設計
Hadoop 0.20 程式設計
 
Hadoop 介紹 20141024
Hadoop 介紹 20141024Hadoop 介紹 20141024
Hadoop 介紹 20141024
 
Hadoop Map Reduce 程式設計
Hadoop Map Reduce 程式設計Hadoop Map Reduce 程式設計
Hadoop Map Reduce 程式設計
 
D3.js 與 Vue 框架的結合,讓圖表更具表現力(LearnWeb Taiwan Meetup #14)
D3.js 與 Vue 框架的結合,讓圖表更具表現力(LearnWeb Taiwan Meetup #14)D3.js 與 Vue 框架的結合,讓圖表更具表現力(LearnWeb Taiwan Meetup #14)
D3.js 與 Vue 框架的結合,讓圖表更具表現力(LearnWeb Taiwan Meetup #14)
 
Data Engineering in Taiwan: PAST, NOW and FUTURE
Data Engineering in Taiwan: PAST, NOW and FUTUREData Engineering in Taiwan: PAST, NOW and FUTURE
Data Engineering in Taiwan: PAST, NOW and FUTURE
 
Hadoop系统及其关键技术
Hadoop系统及其关键技术Hadoop系统及其关键技术
Hadoop系统及其关键技术
 
Hadoop基础及hive入门
Hadoop基础及hive入门Hadoop基础及hive入门
Hadoop基础及hive入门
 
Ms open camp 2016
Ms open camp 2016Ms open camp 2016
Ms open camp 2016
 
DISQL 2.0: Language for Big Data Analysis Widely Adopted in Baidu
DISQL 2.0: Language for Big Data Analysis Widely Adopted in BaiduDISQL 2.0: Language for Big Data Analysis Widely Adopted in Baidu
DISQL 2.0: Language for Big Data Analysis Widely Adopted in Baidu
 
專題報告
專題報告專題報告
專題報告
 
打開窗,讓大象跨進來 - Microsoft HDInsight
打開窗,讓大象跨進來 - Microsoft HDInsight打開窗,讓大象跨進來 - Microsoft HDInsight
打開窗,讓大象跨進來 - Microsoft HDInsight
 
Hadoop与数据分析
Hadoop与数据分析Hadoop与数据分析
Hadoop与数据分析
 
《云计算入门指南》
《云计算入门指南》《云计算入门指南》
《云计算入门指南》
 
App house
App houseApp house
App house
 
KSDG_007_Web 編程另闢蹊徑-GWT,Dart,TypeScript介紹與比較
KSDG_007_Web 編程另闢蹊徑-GWT,Dart,TypeScript介紹與比較KSDG_007_Web 編程另闢蹊徑-GWT,Dart,TypeScript介紹與比較
KSDG_007_Web 編程另闢蹊徑-GWT,Dart,TypeScript介紹與比較
 
分布式流数据实时计算平台 Iprocess
分布式流数据实时计算平台 Iprocess分布式流数据实时计算平台 Iprocess
分布式流数据实时计算平台 Iprocess
 
云存储与虚拟化分论坛 基于云计算的海量数据挖掘
云存储与虚拟化分论坛 基于云计算的海量数据挖掘云存储与虚拟化分论坛 基于云计算的海量数据挖掘
云存储与虚拟化分论坛 基于云计算的海量数据挖掘
 
雲端計算的現況與應用
雲端計算的現況與應用雲端計算的現況與應用
雲端計算的現況與應用
 
大数据下的大表Join计算和优化
大数据下的大表Join计算和优化大数据下的大表Join计算和优化
大数据下的大表Join计算和优化
 

Hadoop