王耀聰 <jazz@narlabs.org.tw> 高通量運算技術與平台 High Throughput Computing Technologies and NCHC's Platform Service 國家高速網路與計算中心 王耀聰 <jazz@narlabs.org.tw> 2013/09/13 - 2013 Big Data前瞻論壇
知識源自彙整過去, 智慧在能預測未來 資料多寡不是重點,重點是 我們想要產生什麼價值呢? 時效合理嘛? 成本合理嘛? 知識源自彙整過去, 智慧在能預測未來 資料多寡不是重點,重點是 我們想要產生什麼價值呢? 時效合理嘛? 成本合理嘛? http://www.pursuantgroup.com/blog/tag/dikw-model/ 2
大家都說「資料是金礦」, 那就讓我們拿採礦當類比吧! 大家都說「資料是金礦」, 那就讓我們拿採礦當類比吧! 國際金價 提供給客戶的價值 產品通路 開採成本 總擁有成本 軟硬體投資 提煉廠 分析平台與工具軟體 SMAQ 含金度 資料鑑價? 商業模式 開採權 分析資料的合法性 個資法 金礦 資料集 Open Data 3
巨量資料的三大挑戰 3 Vs of Big Data 參考來源: [1] Laney, Douglas. "3D Data Management: Controlling Data Volume, Velocity and Variety" (6 February 2001) [2] Gartner Says Solving 'Big Data' Challenge Involves More Than Just Managing Volumes of Data, June 2011 Volume 資料數量 (amount of data) Velocity 資料增加率 (speed of data in/out) Variety 資料多樣性 (data types, sources) Batch (批次作業) Realtime (即時資料) TB EB Unstructured 非結構化資料 Semi-structured 半結構化資料 Structured 結構化資料 PB 巨量資料的挑戰在於如何管理「數量」、「增加率」與「多樣性」 4
處理巨量資料的三類技術(1) Data at Rest – MapReduce Framework Volume Velocity Variety TB EB PB Realtime Batch Structured MapReduce Framework Petabyte File System Hadoop HPCC Unstructured 5
巨量資料處理的資訊架構 The SMAQ stack for big data 未來處理海量資料的人必需知道SMAQ(Storage, MapReduce and Query) 做網頁相關的人可能聽過LAMP 參考來源:The SMAQ stack for big data,Edd Dumbill,22 September 2010, http://radar.oreilly.com/2010/09/the-smaq-stack-for-big-data.html 圖片來源:http://smashingweb.ge6.org/wp-content/uploads/2011/10/apache-php-mysql-ubuntu.png
高資料通量處理平台 Hadoop Key Concept : Data Locality 執行處理海量資料應用程式的軟體平台。 亦可以想像成一個處理海量資料的生產線,只須 學會定義 map 跟 reduce 工作站該做哪些事情。 生產機台 就像工廠的倉庫 存放生產原料跟待售貨物 HDFS存放 待處理的非結構化資料 與處理後的結構化資料 包裝機台 Map Reduce 一進一出 多進一出
批次作業的運算時間 Processing Time of Batch Jobs
處理巨量資料的三類技術(2) Data in Motion – In-Memory Processing Volume Velocity Variety TB EB PB Realtime Batch Structured HBase / Drill / Impala Unstructured 9
Google的技術演進 vs Apache 專案 Dremel (2010) Apache Drill (2012) Big Query (JSON, SQL-like) Percolator (2010) Incremental Index Update (Caffeine) Pregel (2009) Apache Giraph (2011) Graph Database BigTable (2006) Apache HBase (2007) MapReduce (2004) Hadoop MapReduce (2006) Google File System (2003) HDFS (2006)
令人眼花撩亂的多樣化資料庫選擇 NoSQL vs NewSQL http://www.infoq.com/news/2011/04/newsql 11
In-Memory Processing的運算時間 以HBase為例
處理巨量資料的三類技術(3) Streaming Data Collection Volume Velocity Variety TB EB PB Realtime Batch Structured Unstructured Message Queue Storm / Kafka 13
巨量資料的奇幻漂流 Life of Big Data 14
Twitter Storm + Apache Kafka http://blog.infochimps.com/2012/10/30/next-gen-real-time-streaming-storm-kafka-integration/
混合模式的巨量資料處理架構 Lambda Architecture HBase Storm ElephantDB Or Voldemort Source: Lambda Architecture, 8. March 2013 http://www.ymc.ch/en/lambda-architecture-part-1
王耀聰 <jazz@narlabs.org.tw> 高通量運算平台現況與未來規劃 國家高速網路與計算中心 王耀聰 <jazz@narlabs.org.tw> 2013/09/13 - 2013 Big Data前瞻論壇
hadoop.nchc.org.tw 現況 2009-04-13 對外開放申請帳號,12台 2010-10-20 完成升級,21台 截至2013-09-10,共計4012人次申請 系統現況:6台故障,15台繼續服務中 累計服務對象數:(根據註冊資料整理結果) 94所大學 33間民間公司 3所醫院(國泰/童綜合/龍泉榮民醫院) 18
目前系統架構 Current Architectre
全台首座公用Hadoop實驗叢集 On-Demand Self Service Powered by Zterm http://zhouer.org/ZTerm/
讓網路受限的用戶更便利 - Web-based Console
便利熟悉高階語言的資料分析用戶 - RStudio 開發環境 http://hadoop.nchc.org.tw/rstudio/
營運經驗分享 Lesson Learned 大量帳號的管理: 使用者預設HDFS家目錄 安全性:設定使用者HDFS權限 善用CDH或HDP2的套件:好處是易於管理跟升級 大量帳號的管理: 用DRBL內建指令大量建立帳號 /opt/drbl/sbin/drbl-useradd 超過5000+帳號該怎麼管理?LDAP + OpenID帳號整合 生命週期管理!(多人共用環境,由生到滅,要訂好遊戲規則) 使用者預設HDFS家目錄 跑迴圈切換使用者,下 hadoop fs -mkdir tmp 安全性:設定使用者HDFS權限 跑迴圈切換使用者,下hadoop dfs -chown $(id) /usr/$(id) 然後跑hadoop dfs -chmod -R 700 /usr/$(id)
營運經驗分享 Lesson Learned 硬碟規劃 記憶體規劃 規劃黃金法則@ 2013 JBOD架構,不用硬體RAID。 I/O分流:HDFS一顆(以上)硬碟,MapReduce一顆硬碟 記憶體規劃 面對記憶體怪物,記得切SWAP Partition 未來面對In-Memory Processing的需求,記得多買記憶體 規劃黃金法則@ 2013 1 core : 2~8 GB RAM : 2 TB Disk
用戶需求分享 Lesson Learned from Users 使用者不熟悉該如何使用我們提供的服務 對外開辦教育訓練還不夠,直接深入各個需求單位會更好! 應用為王:資料庫、網頁服務與Mobile App整合需求頗高 該挑選NoSQL還是NewSQL呢?端看I/O特性! 上游:Open Data,下游:統計分析應用 Data as a Service :資料集提供本身就是一種服務 不要期待使用者改變寫程式的方法,儘量迎合他們熟悉的工具 整合虛擬化 許多論文都需要跑不同節點數的效能比較 個人研究資料如何保密?網路如何切割?透過虛擬化作隔離!
未來規劃 Future Plan 分散式儲存(HDFS,MooseFS,提升同時讀寫資料通量) 支援在地運算的工作排程(MapReduce) 分散式資料庫(Ex. HBase) 資料倉儲 (Ex. Hive) 高階語言 介面 (Ex. Pig) 資料探勘工具庫 (Ex. Nutch, Lucene , Solr) 分析預測工具庫 (Ex. R, Mahout) 多 租 戶 帳 號 管 理 與 系 統 監 控 自 動 化 安 裝 佈 署 使用者介面( Web-based GUI / IDE ) 網路化虛擬(Ex. Open vSwitch) 虛擬化管理軟體(Ex. KVM + OpenNebula)
ATA over Ethernet (AoE) 虛擬化雲端服務平台 (晶片組須支援虛擬化) vSwitch Power User For Analytics Hadoop Cluster VM#1 VM#2 VM#3 8 VCPU 4 VCPU 16G RAM 32G RAM 4 SATA MooseFS ( for VM ) ATA over Ethernet (AoE) DN NM NN 1 RM NN 2 YARN 高通量資料分析平台 (JBOD儲存架構)
問題與討論 Questions?