1. 程式人生 > >淺談大資料開發及和大資料相關的技術

淺談大資料開發及和大資料相關的技術

在現如今,隨著網際網路技術飛速的發展,目前有不少朋友詢問關於大資料方面的問題,比如什麼是大資料開發啊,和大資料相關的技術是什麼呢等問題,我們今天就淺談一下大資料開發及和大資料相關的技術的問題。

首先,大資料(big data),指無法在一定時間範圍內用常規軟體工具進行捕捉、管理和處理的資料集合,是需要新處理模式才能具有更強的決策力、洞察發現力和流程優化能力的海量、高增長率和多樣化的資訊資產。

那麼和大資料相關的技術有哪些?

1、雲技術

大資料常和雲端計算聯絡到一起,因為實時的大型資料集分析需要分散式處理框架來向數十、數百或甚至數萬的電腦分配工作。可以說,雲端計算充當了工業革命時期的發動機的角色,而大資料則是電。

雲端計算思想的起源是麥卡錫在上世紀60年代提出的:把計算能力作為一種像水和電一樣的公用事業提供給使用者。

如今,在Google、Amazon、Facebook等一批網際網路企業引領下,一種行之有效的模式出現了:雲端計算提供基礎架構平臺,大資料應用執行在這個平臺上。

業內是這麼形容兩者的關係:沒有大資料的資訊積澱,則雲端計算的計算能力再強大,也難以找到用武之地;沒有云計算的處理能力,則大資料的資訊積澱再豐富,也終究只是×××水月。


在這裡還是要推薦下我自己建的大資料學習交流群:199427210,群裡都是學大資料開發的,如果你正在學習大資料 


,小編歡迎你加入,大家都是軟體開發黨,不定期分享乾貨(只有大資料軟體開發相關的),包括我自己整理的一份


最新的大資料進階資料和高階開發教程,歡迎進階中和進想深入大資料的小夥伴加入。


那麼大資料到底需要哪些雲端計算技術呢?

這裡暫且列舉一些,比如虛擬化技術,分散式處理技術,海量資料的儲存和管理技術,NoSQL、實時流資料處理、智慧分析技術(類似模式識別以及自然語言理解)等。

雲端計算和大資料之間的關係可以用下面的一張圖來說明,兩者之間結合後會產生如下效應:可以提供更多基於海量業務資料的創新型服務;通過雲端計算技術的不斷髮展降低大資料業務的創新成本。

如果將雲端計算與大資料進行一些比較,最明顯的區分在兩個方面:

第一,在概念上兩者有所不同,雲端計算改變了IT,而大資料則改變了業務。然而大資料必須有云作為基礎架構,才能得以順暢運營。

第二,大資料和雲端計算的目標受眾不同,雲端計算是CIO等關心的技術層,是一個進階的IT解決方案。而大資料是CEO關注的、是業務層的產品,而大資料的決策者是業務層。

2、分散式處理技術

分散式處理系統可以將不同地點的或具有不同功能的或擁有不同資料的多臺計算機用通訊網路連線起來,在控制系統的統一管理控制下,協調地完成資訊處理任務—這就是分散式處理系統的定義。

以Hadoop(Yahoo)為例進行說明,Hadoop是一個實現了MapReduce模式的能夠對大量資料進行分散式處理的軟體框架,是以一種可靠、高效、可伸縮的方式進行處理的。

而MapReduce是Google提出的一種雲端計算的核心計算模式,是一種分散式運算技術,也是簡化的分散式程式設計模式,MapReduce模式的主要思想是將自動分割要執行的問題(例如程式)拆解成map(對映)和reduce(化簡)的方式, 在資料被分割後通過Map 函式的程式將資料對映成不同的區塊,分配給計算機機群處理達到分散式運算的效果,在通過Reduce 函式的程式將結果彙整,從而輸出開發者需要的結果。

再來看看Hadoop的特性,第一,它是可靠的,因為它假設計算元素和儲存會失敗,因此它維護多個工作資料副本,確保能夠針對失敗的節點重新分佈處理。其次,Hadoop 是高效的,因為它以並行的方式工作,通過並行處理加快處理速度。Hadoop 還是可伸縮的,能夠處理 PB 級資料。此外,Hadoop 依賴於社群伺服器,因此它的成本比較低,任何人都可以使用。

你也可以這麼理解Hadoop的構成,Hadoop=HDFS(檔案系統,資料儲存技術相關)+HBase(資料庫)+MapReduce(資料處理)+……Others

Hadoop用到的一些技術有:

HDFS: Hadoop分散式檔案系統(Distributed File System) - HDFS (HadoopDistributed File System)

MapReduce:平行計算框架

HBase: 類似Google BigTable的分散式NoSQL列資料庫。

Hive:資料倉庫工具,由Facebook貢獻。

Zookeeper:分散式鎖設施,提供類似Google Chubby的功能,由Facebook貢獻。

Avro:新的資料序列化格式與傳輸工具,將逐步取代Hadoop原有的IPC機制。

Pig:大資料分析平臺,為使用者提供多種介面。

Ambari:Hadoop管理工具,可以快捷的監控、部署、管理叢集。

Sqoop:用於在Hadoop與傳統的資料庫間進行資料的傳遞。

說了這麼多,舉個實際的例子,雖然這個例子有些陳舊,但是淘寶的海量資料技術架構還是有助於我們理解對於大資料的運作處理機制:

3

如上圖所示,淘寶的海量資料產品技術架構分為五個層次,從上至下來看它們分別是:資料來源,計算層,儲存層,查詢層和產品層。

資料來源層。存放著淘寶各店的交易資料。在資料來源層產生的資料,通過DataX,DbSync和Timetunel準實時的傳輸到下面第2點所述的“雲梯”。

計算層。在這個計算層內,淘寶採用的是Hadoop叢集,這個叢集,我們暫且稱之為雲梯,是計算層的主要組成部分。在雲梯上,系統每天會對資料產品進行不同的MapReduce計算。

儲存層。在這一層,淘寶採用了兩個東西,一個使MyFox,一個是Prom。MyFox是基於MySQL的分散式關係型資料庫的叢集,Prom是基於Hadoop Hbase技術的一個NoSQL的儲存叢集。

查詢層。在這一層中,Glider是以HTTP協議對外提供restful方式的介面。資料產品通過一個唯一的URL來獲取到它想要的資料。同時,資料查詢即是通過MyFox來查詢的。

最後一層是產品層,這個就不用解釋了。

3、 儲存技術

大資料可以抽象的分為大資料儲存和大資料分析,這兩者的關係是:大資料儲存的目的是支撐大資料分析。到目前為止,還是兩種截然不同的計算機技術領域:大資料儲存致力於研發可以擴充套件至PB甚至EB級別的資料儲存平臺;大資料分析關注在最短時間內處理大量不同型別的資料集。

提到儲存,有一個著名的摩爾定律相信大家都聽過:18個月積體電路的複雜性就增加一倍。所以,儲存器的成本大約每18-24個月就下降一半。成本的不斷下降也造就了大資料的可儲存性。

比如,Google大約管理著超過50萬臺伺服器和100萬塊硬碟,而且Google還在不斷的擴大計算能力和儲存能力,其中很多的擴充套件都是基於在廉價伺服器和普通儲存硬碟的基礎上進行的,這大大降低了其服務成本,因此可以將更多的資金投入到技術的研發當中。

以Amazon舉例,Amazon S3 是一種面向 Internet 的儲存服務。該服務旨在讓開發人員能更輕鬆的進行網路規模計算。Amazon S3 提供一個簡明的 Web 服務介面,使用者可通過它隨時在 Web 上的任何位置儲存和檢索的任意大小的資料。 此服務讓所有開發人員都能訪問同一個具備高擴充套件性、可靠性、安全性和快速價廉的基礎設施,Amazon 用它來執行其全球的網站網路。再看看S3的設計指標:在特定年度內為資料元提供 99.999999999% 的耐久性和 99.99% 的可用性,並能夠承受兩個設施中的資料同時丟失。

S3很成功也確實卓有成效,S3雲的儲存物件已達到萬億級別,而且效能表現相當良好。S3雲已經擁萬億跨地域儲存物件,同時AWS的物件執行請求也達到百萬的峰值數量。目前全球範圍內已經有數以十萬計的企業在通過AWS執行自己的全部或者部分日常業務。這些企業使用者遍佈190多個國家,幾乎世界上的每個角落都有Amazon使用者的身影。

4、 感知技術

大資料的採集和感知技術的發展是緊密聯絡的。以感測器技術,指紋識別技術,RFID技術,座標定位技術等為基礎的感知能力提升同樣是物聯網發展的基石。全世界的工業裝置、汽車、電錶上有著無數的數碼感測器,隨時測量和傳遞著有關位置、運動、震動、溫度、溼度乃至空氣中化學物質的變化,都會產生海量的資料資訊。

而隨著智慧手機的普及,感知技術可謂迎來了發展的高峰期,除了地理位置資訊被廣泛的應用外,一些新的感知手段也開始登上舞臺,比如,最新的”iPhone 5S”在home鍵內嵌指紋感測器,新型手機可通過呼氣直接檢測燃燒脂肪量,用於手機的嗅覺感測器面世可以監測從空氣汙染到危險的化學藥品,微軟正在研發可感知使用者當前心情智慧手機技術,谷歌眼鏡InSight新技術可通過衣著進行人物識別。

除此之外,還有很多與感知相關的技術革新讓我們耳目一新:比如,牙齒感測器實時監控口腔活動及飲食狀況,嬰兒穿戴裝置可用大資料去養育寶寶,Intel正研發3D筆記本攝像頭可追蹤眼球讀懂情緒,日本公司開發新型可監控使用者心率的紡織材料,業界正在嘗試將生物測定技術引入支付領域等。

其實,這些感知被逐漸捕獲的過程就是就世界被資料化的過程,一旦世界被完全資料化了,那麼世界的本質也就是資訊了。

就像一句名言所說,“人類以前延續的是文明,現在傳承的是資訊。”