接著(zhù)前兩篇對大數據的介紹之后,本篇從實(shí)際操作的角度分享大數據內部關(guān)鍵的運作機制,這是在真正開(kāi)始學(xué)習大數據之前對大數據的一個(gè)概覽。為的是讓我們成為大數據的主人。以下是小編為你整理的為什么要學(xué)習大數據 ?
大數據運行機制 ?
這是對大數據運行機制的概覽,如果你閱讀過(guò)上一篇(OODA),就會(huì )感覺(jué)非常熟悉。不錯,他們在概念上是如出一撤的!不過(guò)實(shí)際操作卻又有巨大的不同。
收集數據: ?
大數據的*站就是收集和存儲海量數據(公開(kāi)/隱私)?,F在每個(gè)人都是一個(gè)巨大的數據源,通過(guò)智能手機和個(gè)人筆記本釋放出大量的個(gè)人行為信息。獲取數據似乎已經(jīng)變得越來(lái)越容易,數據收集這一模塊*的挑戰在于獲取海量數據的高速要求以及數據的全面性考慮。 ?
清洗數據: ?
傳統商業(yè)智能在數據清洗處理的做法(ETL)是,把準確的數據放入定義好的格式中,通過(guò)基礎的抽取統計生成高維度的數據,方便直接使用。然而大數據有個(gè)最突出的特征——數據非結構化或者半結構化。因為數據有可能是圖片,二進(jìn)制等等。數據清洗的*挑戰來(lái)了——如何轉化處理大量非結構數據,便于分布式地計算分析。 ?
硬件: ?
這是大家都很熟悉的概念,和大數據相關(guān)的是虛擬化。主要包括存儲虛擬化,計算虛擬化。因此又說(shuō)虛擬化存儲和云計算是大數據的“左膀右臂”!!大數據還需要支持多種類(lèi)型的數據庫,因此一個(gè)支持擴展的數據倉庫是大數據中的基礎。 ?
HBase/Sqoop/Flume(數據導入與導出): ?
HBase是運行在HDFS架構上的列存儲數據庫,并且已經(jīng)與Pig/Hive很好地集成。通過(guò)Java API可以近無(wú)縫地使用HBase。 ?
Sqoop設計的目的是方便從傳統數據庫導入數據到Hadoop數據集合(HDFS/Hive)。 ?
Flume設計的目的是便捷地從日志文件系統直接把數據導到Hadoop數據集合(HDFS)中。 ?
以上這些數據轉移工具都極大的方便了使用的人,提高了工作效率,把經(jīng)歷專(zhuān)注在業(yè)務(wù)分析上! ?
ZooKeeper/Oozie(系統管理架構): ?
ZooKeeper是一個(gè)系統管理協(xié)調架構,用于管理分布式架構的基本配置。它提供了很多接口,使得配置管理任務(wù)簡(jiǎn)單化! ?
Oozie服務(wù)是用于管理工作流。用于調度不同工作流,使得每個(gè)工作都有始有終。 ?
這些架構幫助我們輕量化地管理大數據分布式計算架構。 ?
7 ?
Ambari/Whirr(系統部署管理): ?
Ambari幫助相關(guān)人員快捷地部署搭建整個(gè)大數據分析架構,并且實(shí)時(shí)監控系統的運行狀況。 ?
Whirr的主要作用是幫助快速的進(jìn)行云計算開(kāi)發(fā)。
?
Mahout(機器學(xué)習): ?
Mahout旨在幫助我們快速地完成高智商的系統。其中已經(jīng)實(shí)現了部分機器學(xué)習的邏輯。這個(gè)架構可以讓我們快速地集成更多機器學(xué)習的智能!! ?
大數據服務(wù)對比 ?
不同大數據服務(wù)提供商有不同的產(chǎn)品線(xiàn),因此不同提供商的產(chǎn)品適用場(chǎng)景也會(huì )有所不同。我們重點(diǎn)分析三大服務(wù)提供商的大數據服務(wù)架構。 ?
亞馬遜 ?
擁有大量關(guān)于大數據處理的經(jīng)驗。初期大數據使用者大部分都使用亞馬遜打造的Hadoop架構服務(wù)(EC2)。 ?
經(jīng)過(guò)厚重沉淀之后,Amazon在2009年提供開(kāi)發(fā)EMR大數據服務(wù)。EMR服務(wù)提供了多種大數據處理分析方案,比如簡(jiǎn)單查詢(xún)服務(wù),關(guān)聯(lián)數據分析服務(wù)。EMR服務(wù)可以使用Hadoop語(yǔ)言繼續開(kāi)發(fā),并且訪(fǎng)問(wèn)EMR服務(wù)的步驟也相當簡(jiǎn)單并且安全。 ?
亞馬遜使用托管DynamoDB代替HBase,作為易于擴展的NoSQL數據庫。
?
谷歌 ?
谷歌云服務(wù)平臺出類(lèi)拔萃,它所提供的并非虛擬化解決方案,而是提供由API定義的服務(wù)和應用程序。程序員無(wú)需顧慮硬件,甚至不需要關(guān)心后臺的運作行為。 ?
當然這從某種程度也限制了程序員的工作,不過(guò)如果谷歌的服務(wù)適合業(yè)務(wù),那么使用起來(lái)將是全世界*效快捷的大數據架構服務(wù)。 ?
谷歌的AppEngine作為云平臺管理服務(wù),提供了基于MapReduce的大數據并行計算服務(wù)。所有的這些服務(wù)都可以通過(guò)REST風(fēng)格的API訪(fǎng)問(wèn)。 ?
BigQuery作為分析的數據庫,提供了類(lèi)SQL的查詢(xún)語(yǔ)法。它的性能要比Apache Hive來(lái)得快! ?
微軟 ?
微軟在大數據中屬于后來(lái)居上者。通過(guò)Microsoft Azure大數據服務(wù)平臺,微軟融合自身海量成熟的軟件,例如SQL Server,提供了多種IaaS服務(wù)。 ?
微軟的服務(wù)面向更多的程序員,使得可以使用不同語(yǔ)言來(lái)對接大數據平臺Azure。Azure旨在提供一個(gè)生態(tài)的大數據分析開(kāi)發(fā)環(huán)境,使得普通研究員也可以施展自己對大數據的理解! ?
學(xué)習Oracle是一個(gè)漫長(cháng)艱辛的過(guò)程
如果沒(méi)有興趣,只是被迫學(xué)習,那么是很難學(xué)好的。學(xué)習到一定程度的時(shí)候,要想進(jìn)一步提高,就不得不接觸很多Oracle之外的東西,如Unix,如網(wǎng)絡(luò )、存儲等。因此,要真的決心學(xué)好Oracle,就一定要有興趣。有了興趣,就會(huì )一切變得簡(jiǎn)單快樂(lè )起來(lái)。簡(jiǎn)單總結一下,那就是:興趣、學(xué)習、實(shí)踐。
如何入門(mén)是許多初學(xué)者最頭疼的事情。Oracle涉及的方面太多了:SQL、管理、優(yōu)化、備份恢復……那么從哪開(kāi)始學(xué)好呢?如果在*期間學(xué)過(guò)數據庫理論,或有一定的數據庫基礎自然很好;如果沒(méi)有的話(huà),真的是個(gè)大問(wèn)題。我個(gè)人認為還是應該從SQL語(yǔ)句學(xué)起。比較好的教材是Oracle OCP認證的《SQL and PL/SQL》。學(xué)習SQL的時(shí)候,盡可能堅持使用Oracle自帶的工具:SQLPLUS。 ?
有了一定的SQL基礎后,就要盡可能的了解Oracle的體系結構,這就涉及到了Oracle管理的內容了。我學(xué)習的時(shí)候,機械工業(yè)出版社的《Oracle9i DBA手冊》這本書(shū)對我的幫助挺大?;蛟S現在都出11g版本的了吧。Oracle公司的《Oracle Concepts》是非常棒的書(shū),對了解Oracle體系結構很有好處。每個(gè)Oracle版本都有對應的版本,可以認真多讀幾次,每次都會(huì )有新的收獲。 ?
公司的產(chǎn)品現在幾乎都采用Oracle了,我們做維護的時(shí)候,備份與恢復是不得不接觸的內容。數據量少的,比如20、30多個(gè)G,還可以考慮用exp/imp來(lái)備份與恢復,但數據量大了,這種方法就根本不適合了。于是學(xué)習Oracle備份與恢復技術(shù)也是必然的事情。大數據量情況下,Oracle建議用RMAN來(lái)進(jìn)行數據的備份與恢復。目前市場(chǎng)上有很多數據庫備份恢復軟件,其實(shí)好多也是后臺調用RMAN。清華*出版社出版的《Oracle 9i RMAN 備份與恢復技術(shù)》是一本非常不錯的介紹RMAN的書(shū)。 ?
有了以上的基礎,可以說(shuō)已經(jīng)入門(mén)了,對遇到的一些初級Oracle問(wèn)題將不再束手無(wú)策。然而我們的學(xué)習之路仍然還很漫長(cháng)。我們的用戶(hù)可能經(jīng)常抱怨數據庫運行緩慢。這時(shí),如果有一定的優(yōu)化知識,那就好辦了。有時(shí)你會(huì )看到優(yōu)化前需要運行幾個(gè)小時(shí)的作業(yè),優(yōu)化后也許幾秒鐘就能完成!Oracle9i的性能診斷工具包statspack、Oracle10g/11g的自動(dòng)工作符合存儲庫AWR都是調優(yōu)的好幫手。機械工業(yè)出版社出版的《Oracle9i STATSPACK高性能調整》是學(xué)習statspack不錯的書(shū)。