1. 程式人生 > >收藏 | 大資料應用及其解決方案(完整版)

收藏 | 大資料應用及其解決方案(完整版)

目錄

1. 大資料概述

1.1. 概述
1.2. 大資料定義
1.3. 大資料技術發展

2. 大資料應用

2.1. 大資料應用闡述
2.2. 大資料應用架構
2.3. 大資料行業應用

3. 大資料解決方案 

3.1. 大資料技術組成 

在這裡我還是要推薦下我自己建的大資料學習交流qq裙: 957205962, 裙 裡都是學大資料開發的,如果你正在學習大資料 ,小編歡迎你加入,大家都是軟體開發黨,不定期分享乾貨(只有大資料開發相關的),包括我自己整理的一份2018最新的大資料進階資料和高階開發教程,歡迎進階中和進想深入大資料的小夥伴

3.2. 大資料處理過程 

3.3. 大資料處理的核心技術-Hadoop 

3.4. 大資料處理技術發展前景

4. 基於基站大資料應用及案例 

4.1. 氣象災害應急簡訊釋出平臺 

4.2. 旅遊客源分析

1

大資料概述

1.1. 概述

大資料,IT行業的又一次技術變革,大資料的浪潮洶湧而至,對國家治理、企業決策和個人生活都在產生深遠的影響,並將成為雲端計算、物聯網之後資訊科技產業領域又一重大創新變革。未來的十年將是一個“大資料”引領的智慧科技的時代、隨著社交網路的逐漸成熟,移動頻寬迅速提升、雲端計算、物聯網應用更加豐富、更多的感測裝置、移動終端接入到網路,由此而產生的資料及增長速度將比歷史上的任何時期都要多、都要快。

資料技術發展歷史如圖一所示:

 

 

1.2. 大資料定義

“大資料”是一個涵蓋多種技術的概念,簡單地說,是指無法在一定時間內用常規軟體工具對其內容進行抓取、管理和處理的資料集合。IBM將“大資料”理念定義為4個V,即大量化(Volume)、多樣化(Variety)、快速化(Velocity)及由此產生的價值(Value)。如圖二;

 

 

要理解大資料這一概念,首先要從"大"入手,"大"是指資料規模,大資料一般指在10TB(1TB=1024GB)規模以上的資料量。大資料同過去的海量資料有所區別,其基本特徵可以用4個V來總結(Vol-ume、Variety、Value和Veloc-ity),即體量大、多樣性、價值密度低、速度快。

在這裡我還是要推薦下我自己建的大資料學習交流qq裙: 957205962, 裙 裡都是學大資料開發的,如果你正在學習大資料 ,小編歡迎你加入,大家都是軟體開發黨,不定期分享乾貨(只有大資料開發相關的),包括我自己整理的一份2018最新的大資料進階資料和高階開發教程,歡迎進階中和進想深入大資料的小夥伴
 

• 資料體量巨大。從TB級別,躍升到PB級別。

• 資料型別繁多,如前文提到的網路日誌、視訊、圖片、地理位置資訊,等等。

• 價值密度低。以視訊為例,連續不間斷監控過程中,可能有用的資料僅僅有一兩秒。

• 處理速度快。1秒定律。最後這一點也是和傳統的資料探勘技術有著本質的不同。物聯網、雲端計算、移動網際網路、車聯網、手機、平板電腦、PC以及遍佈地球各個角落的各種各樣的感測器,無一不是資料來源或者承載的方式。

大資料技術是指從各種各樣型別的巨量資料中,快速獲得有價值資訊的技術。解決大資料問題的核心是大資料技術。目前所說的"大資料"不僅指資料本身的規模,也包括採集資料的工具、平臺和資料分析系統。大資料研發目的是發展大資料技術並將其應用到相關領域,通過解決巨量資料處理問題促進其突破性發展。因此,大資料時代帶來的挑戰不僅體現在如何處理巨量資料從中獲取有價值的資訊,也體現在如何加強大資料技術研發,搶佔時代發展的前沿。

1.3. 大資料技術發展

大資料技術描述了一種新一代技術和構架,用於以很經濟的方式、以高速的捕獲、發現和分析技術,從各種超大規模的資料中提取價值,而且未來急劇增長的資料迫切需要尋求新的處理技術手段。如圖三所示:

 

 

在“大資料”(Big data)時代,通過網際網路、社交網路、物聯網,人們能夠及時全面地獲得大資訊。同時,資訊自身存在形式的變化與演進,也使得作為資訊載體的資料以遠超人們想象的速度迅速膨脹。

雲時代的到來使得資料創造的主體由企業逐漸轉向個體,而個體所產生的絕大部分資料為圖片、文件、視訊等非結構化資料。資訊化技術的普及使得企業更多的辦公流程通過網路得以實現,由此產生的資料也以非結構化資料為主。預計到2012年,非結構化資料將達到網際網路整個資料量的75%以上。用於提取智慧的“大資料”,往往是這些非結構化資料。傳統的資料倉庫系統、BI、鏈路挖掘等應用對資料處理的時間要求往往以小時或天為單位。但“大資料”應用突出強調資料處理的實時性。線上個性化推薦、股票交易處理、實時路況資訊等資料處理時間要求在分鐘甚至秒級。

全球技術研究和諮詢公司Gartner將“大資料”技術列入2012年對眾多公司和組織機構具有戰略意義的十大技術與趨勢之一,而其他領域的研究,如雲計算、下一代分析、記憶體計算等也都與“大資料”的研究相輔相成。Gartner在其新興技術成熟度曲線中將“大資料”技術視為轉型技術,這意味著“大資料”技術將在未來3—5年內進入主流。

而 “大資料”的多樣性決定了資料採集來源的複雜性,從智慧感測器到社交網路資料,從聲音圖片到線上交易資料,可能性是無窮無盡的。選擇正確的資料來源並進行交叉分析可以為企業創造最顯著的利益。隨著資料來源的爆發式增長,資料的多樣性成為“大資料”應用亟待解決的問題。例如如何實時地及通過各種資料庫管理系統來安全地訪問資料,如何通過優化儲存策略,評估當前的資料儲存技術並改進、加強資料儲存能力,最大限度地利用現有的儲存投資。從某種意義上說,資料將成為企業的核心資產。

“大資料”不僅是一場技術變革,更是一場商業模式變革。在“大資料”概念提出之前,儘管網際網路為傳統企業提供了一個新的銷售渠道,但總體來看,二者平行發展,鮮有交集。我們可以看到,無論是Google通過分析使用者個人資訊,根據使用者偏好提供精準廣告,還是Facebook將使用者的線下社會關係遷移在線上,構造一個半真實的實名帝國,但這些商業和消費模式仍不能脫離網際網路,傳統企業仍無法嫁接到網際網路中。同時,傳統企業通過傳統的使用者分析工具卻很難獲得大範圍使用者的真實需求。

企業從大規模製造過渡到大規模定製,必須掌握使用者的需求特點。在網際網路時代,這些需求特徵往往是在使用者不經意的行為中透露出來的。通過對資訊進行關聯、參照、聚類、分類等方法分析,才能得到答案。

“大資料”在網際網路與傳統企業間建立一個交集。它推動網際網路企業融合進傳統企業的供應鏈,並在傳統企業種下網際網路基因。傳統企業與網際網路企業的結合,網民和消費者的融合,必將引發消費模式、製造模式、管理模式的巨大變革。

大資料正成為IT行業全新的制高點,各企業和組織紛紛助推大資料的發展,相關技術呈現百花齊放局面,並在網際網路應用領域嶄露頭角,具體情況如下圖四所示:

 

 

大資料將帶來巨大的技術和商業機遇,大資料分析挖掘和利用將為企業帶來巨大的商業價值,而隨著應用資料規模急劇增加,傳統計算面臨嚴重挑戰,大規模資料處理和行業應用需求日益增加和迫切出現越來越多的大規模資料處理應用需求,傳統系統難以提供足夠的儲存和計算資源進行處理,雲端計算技術是最理想的解決方案。調查顯示:目前,IT專業人員對雲端計算中諸多關鍵技術最為關心的是大規模資料並行處理技術大資料並行處理沒有通用和現成的解決方案對於應用行業來說,雲端計算平臺軟體、虛擬化軟體都不需要自己開發,但行業的大規模資料處理應用沒有現成和通用的軟體,需要針對特定的應用需求專門開發,涉及到諸多並行化演算法、索引查詢優化技術研究、以及系統的設計實現,這些都為大資料處理技術的發展提供了巨大的驅動力。

2

在這裡我還是要推薦下我自己建的大資料學習交流qq裙: 957205962, 裙 裡都是學大資料開發的,如果你正在學習大資料 ,小編歡迎你加入,大家都是軟體開發黨,不定期分享乾貨(只有大資料開發相關的),包括我自己整理的一份2018最新的大資料進階資料和高階開發教程,歡迎進階中和進想深入大資料的小夥伴
 

大資料應用

2.1. 大資料應用闡述

大資料能做什麼?我們那麼多地方探討大資料,無非總結下來就做三件事:

第一,對資訊的理解。你發的每一張圖片、每一個新聞、每一個廣告,這些都是資訊,你對這個資訊的理解是大資料重要的領域。

第二,使用者的理解,每個人的基本特徵,你的潛在的特徵,每個使用者上網的習慣等等,這些都是對使用者的理解。

第三,關係。關係才是我們的核心,資訊與資訊之間的關係,一條微博和另外一條微博之間的關係,一個廣告和另外一個廣告的關係。一條微博和一個視訊之間的關係,這些在我們肉眼去看的時候是相對簡單的。

比如有條微博說這兩天朝鮮綁架我們船的事,那條微博也大概是談這件事的。人眼一眼就能看出來。但是用機器怎麼能看出來這是一件事,以及他們之間的因果關 系,這是很有難度的。然後就是使用者與使用者之間的關係。哪些人你願意收聽,是你的朋友,哪些是你感興趣的領域,你是一個音樂達人,你是一個吃貨,那個使用者也 是一個吃貨,你願意收聽他。這就是使用者與使用者之間的關係理解。還有使用者與資訊之間的理解,就是你對哪一型別的微博感興趣,你對哪一型別的資訊感興趣,如果 牽扯到商業化,你對哪一類的廣告或者商品感興趣。其實就是使用者與資訊之間的關係,他無非是做這件事。

 

 

大資料說的那麼懸,其實主要是做三件事:對使用者的理解、對資訊的理解、對關係的理解。如果我們在這三件事之間還要提一件事的話,一個叫趨勢。 他也是關係的一種變種,只是關係稍微遠一點,情感之間的分析,還有我們政府部門做的輿情監控。他可以監控大規模的資料,可以分析出人的動向。在美國的好萊 塢,這兩年也是基於FACEBOOK和TIWTTER的資料來預測即將上映的電影的票房。他也是一個趨勢的分析,只是我們把這個趨勢提前來。核心就是這三件事。

2.2. 大資料應用架構

 

 

2.3. 大資料行業應用

2.3.1. 醫療行業

1. Seton Healthcare是採用IBM最新沃森技術醫療保健內容分析預測的首個客戶。該技術允許企業找到大量病人相關的臨床醫療資訊,通過大資料處理,更好地分析病人的資訊。

2. 在加拿大多倫多的一家醫院,針對早產嬰兒,每秒鐘有超過3000次的資料讀取。通過這些資料分析,醫院能夠提前知道哪些早產兒出現問題並且有針對性地採取措施,避免早產嬰兒夭折。

3. 它讓更多的創業者更方便地開發產品,比如通過社交網路來收集資料的健康類App。也許未來數年後,它們蒐集的資料能讓醫生給你的診斷變得更為精確,比方說不是通用的成人每日三次一次一片,而是檢測到你的血液中藥劑已經代謝完成會自動提醒你再次服藥。

2.3.2. 能源行業

1. 智慧電網現在歐洲已經做到了終端,也就是所謂的智慧電錶。在德國,為了鼓勵利用太陽能,會在家庭安裝太陽能,除了賣電給你,當你的太陽能有多餘電的時候還可以買回來。通過電網收集每隔五分鐘或十分鐘收集一次資料,收集來的這些資料可以用來預測客戶的用電習慣等,從而推斷出在未來2~3個月時間裡,整個電網大概需要多少電。有了這個預測後,就可以向發電或者供電企業購買一定數量的電。因為電有點像期貨一樣,如果提前買就會比較便宜,買現貨就比較貴。通過這個預測後,可以降低採購成本。

2. 維斯塔斯風力系統,依靠的是BigInsights軟體和IBM超級計算機,然後對氣象資料進行分析,找出安裝風力渦輪機和整個風電場最佳的地點。利用大資料,以往需要數週的分析工作,現在僅需要不足1小時便可完成。

2.3.3. 通訊行業

1. XO Communications通過使用IBM SPSS預測分析軟體,減少了將近一半的客戶流失率。XO現在可以預測客戶的行為,發現行為趨勢,並找出存在缺陷的環節,從而幫助公司及時採取措施,保留客戶。此外,IBM新的Netezza網路分析加速器,將通過提供單個端到端網路、服務、客戶分析檢視的可擴充套件平臺,幫助通訊企業制定更科學、合理決策。

2. 電信業者透過數以千萬計的客戶資料,能分析出多種使用者行為和趨勢,賣給需要的企業,這是全新的資料經濟。

3. 中國移動通過大資料分析,對企業運營的全業務進行鍼對性的監控、預警、跟蹤。系統在第一時間自動捕捉市場變化,再以最快捷的方式推送給指定負責人,使他在最短時間內獲知市場行情。

4. NTT docomo把手機位置資訊和網際網路上的資訊結合起來,為顧客提供附近的餐飲店資訊,接近末班車時間時,提供末班車資訊服務。

2.3.4. 零售業

1. "我們的某個客戶,是一家領先的專業時裝零售商,通過當地的百貨商店、網路及其郵購目錄業務為客戶提供服務。公司希望向客戶提供差異化服務,如何定位公司的差異化,他們通過從 Twitter 和 Facebook 上收集社交資訊,更深入的理解化妝品的營銷模式,隨後他們認識到必須保留兩類有價值的客戶:高消費者和高影響者。希望通過接受免費化妝服務,讓使用者進行口碑宣傳,這是交易資料與互動資料的完美結合,為業務挑戰提供瞭解決方案。"Informatica的技術幫助這家零售商用社交平臺上的資料充實了客戶主資料,使他的業務服務更具有目標性。

2. 零售企業也監控客戶的店內走動情況以及與商品的互動。它們將這些資料與交易記錄相結合來展開分析,從而在銷售哪些商品、如何擺放貨品以及何時調整售價上給出意見,此類方法已經幫助某領先零售企業減少了17%的存貨,同時在保持市場份額的前提下,增加了高利潤率自有品牌商品的比例。

3

大資料解決方案

3.1. 大資料技術組成

大資料技術由四種技術構成,它們包括:

3.1.1. 分析技術

分析技術意味著對海量資料進行分析以實時得出答案,由於大資料的特殊性,大資料分析技術還處於發展階段,老技術會日趨完善,新技術會更多出現。大資料分析技術涵蓋了以下的的五個方面

3.1.1.1. 視覺化分析

資料視覺化無論對於普通使用者或是資料分析專家,都是最基本的功能。資料影象化可以讓資料自己說話,讓使用者直觀的感受到結果。

3.1.1.2. 資料探勘演算法

影象化是將機器語言翻譯給人看,而資料探勘就是機器的母語。分割、叢集、孤立點分析還有各種各樣五花八門的演算法讓我們精煉資料,挖掘價值。這些演算法一定要能夠應付大資料的量,同時還具有很高的處理速度。

3.1.1.3. 預測分析能力

資料探勘可以讓分析師對資料承載資訊更快更好地消化理解,進而提升判斷的準確性,而預測性分析可以讓分析師根據影象化分析和資料探勘的結果做出一些前瞻性判斷。

3.1.1.4. 語義引擎

非結構化資料的多元化給資料分析帶來新的挑戰,我們需要一套工具系統的去分析,提煉資料。語義引擎需要設計到有足夠的人工智慧以足以從資料中主動地提取資訊。

3.1.1.5. 資料質量和資料管理

資料質量與管理是管理的最佳實踐,透過標準化流程和機器對資料進行處理可以確保獲得一個預設質量的分析結果。

我們知道大資料分析技術最初起源於網際網路行業。網頁存檔、使用者點選、商品資訊、使用者關係等資料形成了持續增長的海量資料集。這些大資料中蘊藏著大量可以用於增強使用者體驗、提高服務質量和開發新型應用的知識,而如何高效和準確的發現這些知識就基本決定了各大網際網路公司在激烈競爭環境中的位置。首先,以Google為首的技術型網際網路公司提出了MapReduce的技術框架,利用廉價的PC伺服器叢集,大規模併發處理批量事務。

利用檔案系統存放非結構化資料,加上完善的備份和容災策略,這套經濟實惠的大資料解決方案與之前昂貴的企業小型機叢集+商業資料庫方案相比,不僅沒有丟失效能,而且還贏在了可擴充套件性上。之前,我們在設計一個數據中心解決方案的前期,就要考慮到方案實施後的可擴充套件性。通常的方法是預估今後一段時期內的業務量和資料量,加入多餘的計算單元(CPU)和儲存,以備不時只需。

這樣的方式直接導致了前期一次性投資的巨大,並且即使這樣也依然無法保證計算需求和儲存超出設計量時的系統性能。而一旦需要擴容,問題就會接踵而來。首先是商業並行資料庫通常需要各節點物理同構,也就是具有近似的計算和儲存能力。而隨著硬體的更新,我們通常加入的新硬體都會強於已有的硬體。這樣,舊硬體就成為了系統的瓶頸。為了保證系統性能,我們不得不把舊硬體逐步替換掉,經濟成本損失巨大。其次,即使是當前最強的商業並行資料庫,其所能管理的資料節點也只是在幾十或上百這個數量級,這主要是由於架構上的設計問題,所以其可擴充套件性必然有限。而MapReduce+GFS框架,不受上述問題的困擾。需要擴容了,只需增加個機櫃,加入適當的計算單元和儲存,集群系統會自動分配和排程這些資源,絲毫不影響現有系統的執行

3.1.2. 儲存資料庫

在這裡我還是要推薦下我自己建的大資料學習交流qq裙: 957205962, 裙 裡都是學大資料開發的,如果你正在學習大資料 ,小編歡迎你加入,大家都是軟體開發黨,不定期分享乾貨(只有大資料開發相關的),包括我自己整理的一份2018最新的大資料進階資料和高階開發教程,歡迎進階中和進想深入大資料的小夥伴

儲存資料庫(In-Memory Databases)讓資訊快速流通,大資料分析經常會用到儲存資料庫來快速處理大量記錄的資料流通。比方說,它可以對某個全國性的連鎖店某天的銷售記錄進行分析,得出某些特徵進而根據某種規則及時為消費者提供獎勵回饋。

但傳統的關係型資料庫嚴格的設計定式、為保證強一致性而放棄效能、可擴充套件性差等問題在大資料分析中被逐漸暴露。隨之而來,NoSQL資料儲存模型開始風行。NoSQL,也有人理解為Not Only SQL,並不是一種特定的資料儲存模型,它是一類非關係型資料庫的統稱。其特點是:沒有固定的資料表模式、可以分散式和水平擴充套件。NoSQL並不是單純的反對關係型資料庫,而是針對其缺點的一種補充和擴充套件。典型的NoSQL資料儲存模型有文件儲存、鍵-值儲存、圖儲存、物件資料庫、列儲存等

NoSQL資料庫是一種建立在雲平臺的新型資料處理模式,NoSQL在很多情況下又叫做雲資料庫。由於其處理資料的模式完全是分佈於各種低成本伺服器和儲存磁碟,因此它可以幫助網頁和各種互動性應用快速處理過程中的海量資料。它為Zynga、AOL、Cisco以及其它一些企業提供網頁應用支援。正常的資料庫需要將資料進行歸類組織,類似於姓名和帳號這些資料需要進行結構化和標籤化。但是NoSQL資料庫則完全不關心這些,它能處理各種型別的文件。

在處理海量資料同時請求時,它也不會有任何問題。比方說,如果有1000萬人同時登入某個Zynga遊戲,它會將這些資料分佈於全世界的伺服器並通過它們來進行資料處理,結果與1萬人同時線上沒什麼兩樣。現今有多種不同型別的NoSQL模式。商業化的模式如Couchbase、10gen的mongoDB以及Oracle的NoSQL;開源免費的模式如CouchDB和Cassandra;還有亞馬遜最新推出的NoSQL雲服務。

3.1.3. 分散式計算技術

分散式計算結合了NoSQL與實時分析技術,如果想要同時處理實時分析與NoSQL資料功能,那麼你就需要分散式計算技術。分散式技術結合了一系列技術,可以對海量資料進行實時分析。更重要的是,它所使用的硬體非常便宜,因而讓這種技術的普及變成可能。SGI的Sunny Sundstrom解釋說,通過對那些看起來沒什麼關聯和組織的資料進行分析,我們可以獲得很多有價值的結果。比如說可以分發現一些新的模式或者新的行為。運用分散式計算技術,銀行可以從消費者的一些消費行為和模式中識別網上交易的欺詐行為。

分散式計算技術讓不可能變成可能,分散式計算技術正引領著將不可能變為可能。Skybox Imaging就是一個很好的例子。這家公司通過對衛星圖片的分析得出一些實時結果,比如說某個城市有多少可用停車空間,或者某個港口目前有多少船隻。它們將這些實時結果賣給需要的客戶。沒有這個技術,要想快速便宜的分析這麼大量衛星圖片資料將是不可能的。如圖五所示:

 

 

分散式計算技術是Google的核心,也是Yahoo的基礎,目前分散式計算技術是基於Google建立的技術,但是卻最新由Yahoo所建立。Google總共發表了兩篇論文,2004年發表的叫做MapReduce的論文介紹瞭如何在多計算機之間進行資料處理;另一篇於2003年發表,主要是關於如何在多伺服器上儲存資料。來自於Yahoo的工程師Doug Cutting在讀了這兩篇論文後建立了分散式計算平臺,以他兒子的玩具大象命名。如圖六所示

 

 

而Hadoop作為一個重量級的分散式處理開源框架已經在大資料處理領域有所作為

3.2. 大資料處理過程

3.2.1. 採集

大資料的採集是指利用多個數據庫來接收發自客戶端(Web、App或者感測器形式等)的資料,並且使用者可以通過這些資料庫來進行簡單的查詢和處理工作。比如,電商會使用傳統的關係型資料庫MySQL和Oracle等來儲存每一筆事務資料,除此之外,Redis和MongoDB這樣的NoSQL資料庫也常用於資料的採集。

在大資料的採集過程中,其主要特點和挑戰是併發數高,因為同時有可能會有成千上萬的使用者來進行訪問和操作,比如火車票售票網站和淘寶,它們併發的訪問量在峰值時達到上百萬,所以需要在採集端部署大量資料庫才能支撐。並且如何在這些資料庫之間進行負載均衡和分片的確是需要深入的思考和設計。

3.2.2. 匯入/預處理

雖然採集端本身會有很多資料庫,但是如果要對這些海量資料進行有效的分析,還是應該將這些來自前端的資料匯入到一個集中的大型分散式資料庫,或者分散式儲存叢集,並且可以在匯入基礎上做一些簡單的清洗和預處理工作。也有一些使用者會在匯入時使用來自Twitter的Storm來對資料進行流式計算,來滿足部分業務的實時計算需求。

匯入與預處理過程的特點和挑戰主要是匯入的資料量大,每秒鐘的匯入量經常會達到百兆,甚至千兆級別。

3.2.3. 統計/分析

統計與分析主要利用分散式資料庫,或者分散式計算叢集來對儲存於其內的海量資料進行普通的分析和分類彙總等,以滿足大多數常見的分析需求,在這方面,一些實時性需求會用到EMC的GreenPlum、Oracle的Exadata,以及基於MySQL的列式儲存Infobright等,而一些批處理,或者基於半結構化資料的需求可以使用Hadoop。

統計與分析這部分的主要特點和挑戰是分析涉及的資料量大,其對系統資源,特別是I/O會有極大的佔用。

3.2.4. 挖掘

與前面統計和分析過程不同的是,資料探勘一般沒有什麼預先設定好的主題,主要是在現有資料上面進行基於各種演算法的計算,從而起到預測(Predict)的效果,從而實現一些高級別資料分析的需求。比較典型演算法有用於聚類的Kmeans、用於統計學習的SVM和用於分類的NaiveBayes,主要使用的工具有Hadoop的Mahout等。該過程的特點和挑戰主要是用於挖掘的演算法很複雜,並且計算涉及的資料量和計算量都很大,常用資料探勘演算法都以單執行緒為主。

整個大資料處理的普遍流程至少應該滿足這四個方面的步驟,才能算得上是一個比較完整的大資料處理

3.3. 大資料處理的核心技術-Hadoop

大資料技術涵蓋了硬軟體多個方面的技術,目前各種技術基本都獨立存在於儲存、開發、平臺架構、資料分析挖掘的各個相對獨立的領域。這一部分主要介紹和分析大資料處理的核心技術——Hadoop。

3.3.1. Hadoop的組成

在這裡我還是要推薦下我自己建的大資料學習交流qq裙: 957205962, 裙 裡都是學大資料開發的,如果你正在學習大資料 ,小編歡迎你加入,大家都是軟體開發黨,不定期分享乾貨(只有大資料開發相關的),包括我自己整理的一份2018最新的大資料進階資料和高階開發教程,歡迎進階中和進想深入大資料的小夥伴

大資料不同於傳統型別的資料,它可能由TB甚至PB級資訊組成,既包括結構化資料,也包括文字、多媒體等非結構化資料。這些資料型別缺乏一致性,使得標準儲存技術無法對大資料進行有效儲存,而且我們也難以使用傳統的伺服器和SAN方法來有效地儲存和處理龐大的資料量。這些都決定了“大資料”需要不同的處理方法,而Hadoop目前正是廣泛應用的大資料處理技術。Hadoop是一個基於Java的分散式密集資料處理和資料分析的軟體框架。該框架在很大程度上受Google在2004年白皮書中闡述的MapReduce的技術啟發。Hadoop主要元件包含如圖七:

 

 

Hadoop Common:通用模組,

• 支援其他Hadoop模組

• Ha d o o p Di s t r i b u t e d Fi l eSystem(HDFS):分散式檔案系統,用以提供高流量的應用資料訪問

• Hadoop YARN:支援工作排程和叢集資源管理的框架

• HadoopMapReduce:針對大資料的、靈活的並行資料處理框架

其他相關的模組還有:

• ZooKeeper:高可靠性分散式協調系統

• Oozie:負責MapReduce作業排程

• HBase:可擴充套件的分散式資料庫,可以將結構性資料儲存為大表

• Hive:構建在MapRudece之上的資料倉庫軟體包

• Pig:架構在Hadoop之上的高階資料處理層

在Hadoop框架中,最底層的HDFS儲存Hadoop叢集中所有儲存節點上的檔案。HDFS的架構是基於一組特定的節點構建的(如圖八),

 

 

這些節點包括一個NameNode和大量的DataNode。儲存在HDFS中的檔案被分成塊,然後將這些塊複製到多個計算機中(DataNode)。這與傳統的RAID架構大不相同。塊的大小(通常為64MB)和複製的塊數量在建立檔案時由客戶機決定。NameNode可以控制所有檔案操作。HDFS內部的所有通訊都基於標準的TCP/IP協議。NameNode在HDFS內部提供元資料服務,負責管理檔案系統名稱空間和控制外部客戶機的訪問。它決定是否將檔案對映到DataNode上的複製塊上。DataNode通常以機架的形式組織,機架通過一個交換機將所有系統連線起來。H a d o o p M a p R e d u c e 是Google MapReduce的開源實現。MapReduce技術是一種簡潔的平行計算模型,它在系統層面解決了擴充套件性、容錯性等問題,通過接受使用者編寫的Map函式和Reduce函式,自動地在可伸縮的大規模叢集上並行執行,從而可以處理和分析大規模的資料[6]。Hadoop提供了大量的介面和抽象類,從而為Hadoop應用程式開發人員提供許多工具,可用於除錯和效能度量等。在H a d o o p 應用例項中,一個代表客戶機在單個主系統上啟動Ma pRe d u c e的應用程式稱為JobTracker。類似於NameNode,它是Ha d o o p 叢集中唯一負責控制MapReduce應用程式的系統。在應用程式提交之後,將提供包含在HDFS中的輸入和輸出目錄。JobTr a cke r使用檔案塊資訊(物理量和位置)確定如何建立其他TaskTracker從屬任務。MapReduce應用程式被複制到每個出現輸入檔案塊的節點,將為特定節點上的每個檔案塊建立一個唯一的從屬任務。每個TaskTracker將狀態和完成資訊報告給JobTracker。如圖顯示一個示例叢集中的工作分佈,如圖九:

 

 

3.3.2. Hadoop的優點:

Hadoop能夠使使用者輕鬆開發和執行處理大資料的應用程式。它主要有以下幾個優點:

3.3.2.1. 高可靠性。

Hadoop按位儲存和處理資料的能力值得人們信賴。

3.3.2.2. 高擴充套件性。

Hadoop是在可用的計算機集簇間分配資料並完成計算任務的,這些集簇可以方便地擴充套件到數以千計的節點中。

3.3.2.3. 高效性。

Hadoop能夠在節點之間動態地移動資料,並保證各個節點的動態平衡,因此處理速度非常快。

3.3.2.4. 高容錯性。

Hadoop能夠自動儲存資料的多個副本,並且能夠自動將失敗的任務重新分配。Hadoop帶有用Java語言編寫的框架,因此執行在Linux生產平臺上是非常理想的。Hadoop上的應用程式也可以使用其他語言編寫,比如C++。

3.3.3. Hadoop的不足

Hadoop作為一個處理大資料的軟體框架,雖然受到眾多商業公司的青睞,但是其自身的技術特點也決定了它不能完全解決大資料問題。在當前Hadoop的設計中,所有的metadata操作都要通過集中式的NameNode來進行,NameNode有可能是效能的瓶頸。當前Hadoop單一NameNode、單一Jobtracker的設計嚴重製約了整個Hadoop可擴充套件性和可靠性。首先,NameNode和JobTracker是整個系統中明顯的單點故障源。再次,單一NameNode的記憶體容量有限,使得Hadoop叢集的節點數量被限制到2000個左右,能支援的檔案系統大小被限制在10-50PB,最多能支援的檔案數量大約為1.5億左右。實際上,有使用者抱怨其叢集的NameNode重啟需要數小時,這大大降低了系統的可用性。隨著Hadoop被廣泛使用,面對各式各樣的需求,人們期望Hadoop能提供更多特性,比如完全可讀寫的檔案系統、Snapshot、Mirror等等。這些都是當前版本的Hadoop不支援,但是使用者又有強烈需求的。

3.3.4. 主要商業性“大資料”處理方案

“大資料”被科技企業看作是雲端計算之後的另一個巨大商機,包括IBM、谷歌、亞馬遜和微軟在內的一大批知名企業紛紛掘金這一市場。此外,很多初創企業也開始加入到大資料的淘金隊伍中。Hadoop是非結構資料庫的代表,低成本、高擴充套件性和靈活性等優勢使其成為各種面向大資料處理分析的商業服務方案的首選。Oracle、IBM、Microsoft三大商業資料提供商是Hadoop的主要支持者。很多知名企業都以Hadoop技術為基礎提供自己的商業性大資料解決方案。這一部分主要介紹以Hadoop為基礎的典型商業性大資料解決方案。

3.3.2.5. IBM InfoSphere大資料分析平臺

I B M於2 0 1 1 年5 月推出的InfoSphere大資料分析平臺是一款定位為企業級的大資料分析產品。該產品包括BigInsight s和Streams,二者互補,Biglnsights基於Hadoop,對大規模的靜態資料進行分析,它提供多節點的分散式計算,可以隨時增加節點,提升資料處理能力。St reams採用記憶體計算方式分析實時資料。它們將包括HadoopMapReduce在內的開源技術緊密地與IBM系統整合起來。研究Hado