商品簡介
什麼是資料前處理?
電信業者跟資料探勘有什麼關係?
神經網路具體到底是什麼?
集群分析的演算法有哪些?
◎資料探勘的「十大經典演算法」你都認識嗎?
國際權威的學術組織the IEEE International Conference on Data Mining (ICDM)評出了資料探勘領域的十大經典演算法:C4.5、K-Means、SVM、Apriori、EM、PageRank、AdaBoost、KNN、Naive Bayes和CART。
1.C4.5演算法
C4.5是一種用在機器學習和資料探勘領域的分類問題中的演算法。它基於以下假設:給定一個資料集,其中的每一個元組都能用一組屬性值來描述,每一個元組屬於一個互斥的類別中的某一類。C4.5的目標是透過學習,找到一個從屬性值到類別的映射關係,並且這個映射能用於對新的類別未知的實體進行分類。
2.The K-Means Algorithm (K-Means演算法)
K-MeansAlgorithm是一種聚類演算法,它把n個對象根據他們的屬性分為k個分割,k
◎結構化/半結構化/非結構化資料有什麼不同?
(一)結構化資料:能夠用數據或統一的結構加以表示的資料,如數字、符號。傳統的關係資料模型,儲存於資料庫,通常可用二維表結構表示。
(二)非結構化資料:是指其欄位長度可變,並且每個欄位的記錄又可以由可重複或不可重複的子欄位構成的資料庫,用它不僅可以處理結構化資料(如數字、符號等資訊)而且更適合處理非結構化資料(全文文字、圖像、聲音、影視、超媒體等資訊)。
(三)半結構化資料: XML、HTML文檔就屬於半結構化資料。它一般是自描述的,資料結構和內容混在一起,沒有明顯的區分。
◎如何設計神經網路的拓撲結構?
在開始訓練之前,用戶必須確定網路拓撲,說明輸入層的單元數、隱藏層數(如果多於一層)、每個隱藏層的單元數和輸出層的單元數。
對訓練元組中每個屬性的輸入測量值進行規範化將有助於加快學習過程。通常,對輸入值規範化,使得它們落入0.0和1.0之間。離散值屬性可以重新編碼,使得每個域值有一個輸入單元。例如,如果屬性A有3個可能的或已知的值{a0,a1,a2}則可以分配三個輸入單元表示A,即我們可以用I0,I1,I2作為輸入單元。每個單元都初始化為0。
作者簡介
張兆靜,任職於知名電信業,大數據分析專家,曾在IEEE等著名會議上發表論文十篇,主持多項大數據與智慧營運案,曾獲公司頒發的最佳培訓實踐獎。
彭木根,電機博士,畢業後留校任教,博士生導師,擔任IET、IJCS、IJDSN、IJAP等國際SCI學術期刊論文的專刊編委、助理編委或特邀主編。曾擔任Wicon 2010、PlanNet等國際學術會議技術專題合作主席。長期擔任ICC、Globecom、WCNC、PIMRC等多個國際學術會議的技術委員。一直從事TDD無線網路資訊理論、協同網路編碼、無線網路自組織技術、TDD高效能無線傳輸與組網技術、TD-SCDMA及增強演進系統的傳輸,與增強組網技術的研發工作。
序
前言
資料探勘(Data Mining),是指從資料中發現知識的過程(Knowledge Discovery in Databases, KDD)。狹義的資料探勘一般指從大量的、不完全的、有雜訊的、模糊的、隨機的實際應用數據中,提取隱含其中的、人們事先不知道的、但又是潛在有用知識的過程。自從電腦發明之後,科學家們先後提出了許多優秀的資料探勘演算法。2006年12月,在資料探勘領域的權威學術會議the IEEE International Conference on Data Mining(ICDM)上,科學家們評選出了該領域的十大經典演算法:C4.5、K-Means、SVM、Apriori、EM、PageRank、AdaBoost、kNN、Naive Bayes和CART。這是資料探勘學科的一個重要里程碑,從此資料探勘在理論研究和實際應用兩方面均進入飛速發展時期,並得到廣泛關注。
在實際生產活動中,許多問題都可以用資料探勘方法來建立模型,從而提升營運效率。例如,某企業在其行動終端應用(App)上售賣各種商品,它希望向不同的客戶群體精準推送差異化的產品和服務,從而提升銷售業績。在這個案例中,如何將千萬量級的客戶劃分為不同的客戶群體,可以由資料探勘中的集群分析演算法來完成;針對某個客戶群體,如何判斷某個產品是否是他們感興趣的,可以由資料探勘中的分類分析演算法來完成;如何發現某個客戶群體感興趣的各種產品之間的關聯性,應該把哪些產品打包為方案,可以由資料探勘中的關聯分析演算法來完成;如何發現某個客戶群體的興趣愛好的長期趨勢,可以由資料探勘中的迴歸演算法來完成;如何綜合考慮公司的KPI指標、行銷政策和App頁面限制等條件,制訂最終的應用行銷方案,可以基於資料探勘中的ROC曲線建立數學模型求得最優解法來解決。
當前,許多企業正面臨前所未有的競爭壓力。以營運商企業為例,從政策層面看,當各個國家對網路提出了「提速降費」的策略:一方面要提高網路連接速度、提供更好的服務,這意味著公司成本的提高;另一方面要降低資費標準,這意味著單一產品收入的下降,營運商該如何化解這對矛盾?從營運商內部數據統計看,傳統的語音和簡訊、及其他業務收入占比正不斷下降,傳統的利潤點已經風光不再;流量收入目前已占據主要位置並保持上漲趨勢,但單純的流量經營又將面臨「管道化」壓力;未來的利潤增長點要讓位於被稱為「第三條曲線」的數位化服務。電信業者該如何經營這一新鮮事物?從外部環境看,互聯網和電子商務企業借助其在各方面的優勢,已經對營運商形成了巨大的壓力,特別是在數位化服務行銷領域,傳統營運商企業已經不再具備優勢,又該如何應對互聯網企業的全面競爭?
隨著移動互聯網和物聯網時代的來臨,人和萬事萬物被廣泛地聯繫在一起。人們在聯繫的過程產生了大量的數據,例如用戶基礎資訊、網頁瀏覽記錄、歷史消費記錄、影片監控影像,等等。據此,以Google為首的互聯網公司提出了「大數據」(Big Data)的概念,並聲稱人類已經脫離了資訊時代(Information Time, IT),進入了大數據時代(Data Time,DT)。顯然,大量數據包含了非常豐富的淺層次資訊和深層次知識。對於同一競爭領域的企業,誰能獲取最大量的數據,展開最精準的資料探勘與模組建立分析,並加以細緻化的具體實施,誰便能在行業競爭中取得優勢。對於營運商企業而言,其具備的一個顯著優勢便是手握大量數據資源。如果能運用先進的資料探勘技術找出客戶的行為規律,從傳統的經驗式、粗放式、「一刀切」式的營運決策向數據化、精細化、個性化的營運決策轉型,營運商將迎來新的騰飛。上述營運模式轉型的目標,便是所謂的「智慧營運」。
目前,人類對大數據尚沒有統一的、公認的定義,但幾乎所有學者和企業都認同大數據具備四大特徵(四大挑戰):體積巨大(Volume)、類型繁多(Variety)、價值密度低(Value)、需求即時處理(Velocity)。這其中最重要的一點是類型繁多,即過去人類的資料儲備以結構化資料為主,而未來將以非結構化資料為主。回到之前提到的App行銷案例,企業基於用戶的基礎資訊、歷史消費資訊、簡單的網路行為資訊等結構化資料展開資訊建模,被認為是傳統的「基於資料探勘的智慧營運」。隨著時代的發展,企業還掌握了用戶觀看在線影片的內容數據、在營業網點接受營業員推薦的表情資訊和語言交流數據、用戶在客服熱線中的語音諮詢數據等,這些被統稱為非結構化資料,隨著語音辨識、人臉識別、語義識別等新技術的發展成熟,對非結構化資料的分析資訊已成為可能,並將獲得廣闊的商業應用空間。基於非結構化資料的資訊建模又被稱為「基於人工智慧的智慧營運」。考慮當前大部分企業的實際營運現狀,本書將主要圍繞「基於資料探勘的智慧營運」展開討論,「基於人工智慧的智慧營運」將在後續書籍中展開討論。
本書共分為九章:第1章大數據、資料探勘與智慧營運綜述,講述資料探勘的基本概念和發展史、大數據的時代特徵、當前結構化資料探勘進展、非結構化資料探勘與人工技能進展、資料探勘的主流軟體等;第2章數據統計與資料前處理,講述在資料探勘之前的資料整合、資料淨化、數據衍生、數據統計等;第3章集群分析,重點講述K-means、BIRCH、DBSCAN、CLIQUE等幾種主流經典聚類演算法;第4章分類分析,重點講述決策樹、KNN、貝氏、神經網路、SVM等幾種主流分類演算法;第5章迴歸分析,重點講述線性迴歸、非線性迴歸、邏輯迴歸等幾種主流迴歸演算法;第6章關聯分析,重點講述Apriori、FP-tree等幾種主流關聯演算法;第7章增強型資料探勘演算法,重點講述隨機森林、Bagging、Boosting等幾種主流增強演算法;第8章資料探勘在營運商智慧營運中的應用,展開講述資料探勘方法在外呼行銷、精準推送、方案適配、客戶保有、投訴預警、網路品質監控、室內定位中的應用;第9章面向未來大數據的資料探勘與機器學習發展趨勢,簡要講述資料探勘領域的前沿研究進展。
全書以運用大資料探勘方法提升企業營運業績與效率為主線。第3章至第7章組成本書的理論知識部分,在講述理論知識的同時,這部分每章都配套列舉了大量實際應用案例,及其在SPSS等分析軟體中的具體操作流程。此外,第8章從營運商實際工作中選取了大量營運和銷售案例,詳細講述了數據採集、資訊建模、模型應用與精準行銷的全部過程。
本書基於作者所帶領的研究團隊多年研究積累和在營運商企業廣泛應用應用的基礎上提煉而成。全書由曾麗麗博士組織並統稿,梁棟、張兆靜和彭木根撰寫了主要章節,研究團隊中的謝花花、柯聯興、張笑凱、魯晨、李子凡等在讀研究生參與了部分章節的寫作,胡林、唐糖等團隊外專家參與了部分章節的寫作並給出了寶貴的意見。在此對有關人員一併表示誠摯的感謝!
由於作者能力所限,疏漏之處在所難免,希望各位讀者海涵,並批評指正。
(註:本書中所提「數據」即「資料」)
作 者
目次
前言
第1章 大數據、資料探勘與智慧營運綜述
1.1 資料探勘的發展史
1.1.1 資料探勘的定義與起源
1.1.2 資料探勘的早期發展
1.1.3 資料探勘的演算法前傳
1.1.4 資料探勘的第一個里程碑
1.1.5 最近十年的發展與應用
1.2 資料探勘的主要流程與金字塔模型
1.2.1 資料探勘的任務
1.2.2 資料探勘的基本步驟
1.2.3 資料探勘的架構——雲端運算
1.2.4 「金字塔」模型
1.3 資料探勘對智慧營運的意義
1.3.1 「互聯網+」時代的來臨及其對營運商的衝擊和挑戰
1.3.2 大數據時代的來臨及其對營運商的挑戰和機遇
1.3.3 電信業者營運發展面臨的主要瓶頸
1.3.4 電信業者發展的「三條曲線」
1.3.5 智慧營運與大數據變現
1.3.6 資料探勘對於提升智慧營運效率的意義
1.4 大數據時代已經來臨
1.4.1 大數據的定義
1.4.2 大數據的「4V」特徵
1.4.3 結構化資料與非結構化資料
1.5 非結構化資料探勘的研究進展
1.5.1 文字探勘
1.5.2 模式識別
1.5.2.1 模式識別概述
1.5.2.2 模式識別方法
1.5.2.3 模式識別的應用
1.5.3 語音辨識
1.5.3.1 語音辨識技術的發展
1.5.3.2 語音辨識基礎
1.5.3.3 語音辨識基本原理
1.5.3.4 聲學建模方法
1.5.3.5 語音辨識的應用
1.5.4 影片識別
1.5.4.1 影片分析方法概述
1.5.4.2 基於深度學習的影片技術
1.5.4.3 結語
1.5.5 其他非結構化資料探勘
1.5.5.1 Web資料探勘
1.5.5.2 空間群資料探勘
1.6 資料探勘與機器學習、深度學習、人工智慧及雲端運算
1.6.1 機器學習
1.6.2 深度學習
1.6.3 人工智慧
1.6.4 雲端運算
1.7 現有資料探勘的主要分析軟體與系統
1.7.1 Hadoop
1.7.2 Storm
1.7.3 Spark
1.7.4 SPASS(SPSS)
1.7.5 SAS
參考文獻
第2章 數據統計與資料前處理
2.1 資料屬性類型
2.1.1 資料屬性定義
2.1.2 離散屬性
2.1.3 連續屬性
2.2 數據的統計特性
2.2.1 中心趨勢度量
2.2.2 數據散布度量
2.2.2.1 等分位數
2.2.2.2 均值
2.2.2.3 變異數與標準差
2.2.2.4 高階統計特性
2.2.3 數據相關性
2.2.3.1 卡方相關性
2.2.3.2 雙變數相關
2.2.3.3 偏相關
2.3 資料前處理
2.3.1 資料前處理概述
2.3.2 資料前處理的主要任務
2.3.3 資料淨化
2.3.3.1 缺失值
2.3.3.2 雜訊資料
2.3.4 資料整合
2.3.4.1 資料冗餘
2.3.4.2 重複元組
2.3.5 資料縮減
2.3.5.1 主成分分析
2.3.5.2 小波變換
2.3.5.3 屬性子集選擇
2.3.6 資料變換和離散化
2.3.6.1 資料正規化/標準化的主要方法
2.3.6.2 資料離散化的主要方法
2.4 資料欄位的衍生
2.4.1 資料欄位的拆分
2.4.2 統計特徵的構造
2.4.3 資料區的變換
2.5 SPSS軟體中的資料前處理案例
2.5.1 缺失值的實際處理
2.5.2 雜訊資料的實際處理
2.5.3 主成分分析的實際處理
參考文獻
第3章 集群分析
3.1 概述
3.2 聚類演算法的評估
3.3 基於劃分的聚類:K-means
3.3.1 基於劃分的聚類演算法概述
3.3.2 K-means聚類演算法原理
3.3.3 K-means演算法的優勢與劣勢
3.3.4 K-means演算法優化
3.3.5 SPSS軟體中的K-means演算法應用案例
3.4 基於層次化的聚類:BIRCH
3.4.1 基於層次化的聚類演算法概述
3.4.2 BIRCH演算法的基本原理
3.4.3 BIRCH演算法的優勢與劣勢
3.5 基於密度的聚類:DBSCAN
3.5.1 基於密度的聚類演算法概述
3.5.2 DBSCAN演算法的基本原理
3.5.3 DBSCAN演算法的優勢與劣勢
3.6 基於網格的聚類:CLIQUE
3.6.1 基於網格的聚類演算法概述
3.6.2 CLIQUE演算法的基本原理
3.6.3 CLIQUE演算法的優勢與劣勢
參考文獻
第4章 分類分析
4.1 分類分析概述
4.2 分類分析的評估
4.3 決策樹分析
4.3.1 決策樹演算法的基本原理
4.3.2 CHAID決策樹
4.3.2.1 CHAID演算法簡介
4.3.2.2 CHAID演算法原理
4.3.2.3 CHIAD演算法實例分析
4.3.3 ID3決策樹
4.3.3.1 ID3演算法原理
4.3.3.2 熵和資訊增益
4.3.3.3 ID3演算法偽程式碼
4.3.3.4 ID3演算法的特點
4.3.3.5 ID3演算法的案例分析
4.3.4 C4.5決策樹
4.3.4.1 C4.5演算法原理
4.3.4.2 C4.5演算法的偽程式碼
4.3.4.3 C4.5演算法的特點
4.3.4.4 C4.5演算法案例分析
4.3.5 CART決策樹
4.3.5.1 CART決策樹原理介紹
4.3.5.2 Gini係數
4.3.5.3 使用基尼係數進行決策樹分析案例
4.3.6 決策樹中的剪枝問題
4.3.7 決策樹在SPSS中的應用
4.4 最近鄰分析(KNN)
4.4.1 KNN演算法的基本原理
4.4.2 KNN演算法流程
4.4.3 KNN演算法的若干問題
4.4.4 KNN分類器的特徵
4.4.5 KNN演算法在SPSS中的應用
4.4.5.1 用KNN演算法預測用戶是否流失
4.4.5.2 用KNN演算法填充缺失值
4.5 貝氏分析
4.5.1 貝氏定理
4.5.2 單純貝氏分類
4.5.2.1 條件獨立性
4.5.2.2 單純貝氏分類的工作過程
4.5.2.3 單純貝氏分類的特徵
4.5.2.4 單純貝氏分類實例分析
4.5.3 貝氏網路
4.5.3.1 貝氏網路原理
4.5.3.2 模型表示
4.5.3.3 貝氏網路實例分析
4.5.3.4 BBN的特點
4.6 神經網路
4.6.1 感知器
4.6.2 多重人工神經網路
4.6.2.1 多重人工神經網路介紹
4.6.2.2 多層前饋神經網路
4.6.2.3 定義網路拓撲
4.6.3 人工神經網路的特點
4.7 支援向量機
4.7.1 支援向量機簡介
4.7.2 最大邊緣超平面
4.7.3 數據線性可分的情況
4.7.4 數據非線性可分的情況
4.7.5 支援向量機的特徵
參考文獻
第5章 迴歸分析
5.1 迴歸分析概述
5.2 一元線性迴歸
5.2.1 一元線性迴歸的基本原理
5.2.1.1 最小平方法
5.2.1.2 迴歸係數
5.2.2 一元線性迴歸效能評估
5.2.3 SPSS軟體中一元線性迴歸應用案例
5.2.3.1 一元線性迴歸分析的操作步驟
5.2.3.2 一元線性迴歸分析的結果解讀
5.3 多元線性迴歸
5.3.1 多元線性迴歸基本原理
5.3.2 自變數選擇方法
5.3.2.1 雙變數相關
5.3.3 SPSS軟體中的多元線性迴歸應用案例
5.3.3.1 多元線性迴歸預測用戶信用等級
5.3.3.2 多元線性迴歸預測用戶是否流失
5.4 非線性迴歸
5.4.1 非線性迴歸基本原理
5.4.2 冪函數迴歸分析
5.4.3 指數迴歸分析
5.4.4 對數迴歸分析
5.4.5 多項式迴歸分析
5.4.6 非線性模型線性化和曲線迴歸
5.5 邏輯迴歸
5.5.1 邏輯迴歸基本原理
5.5.1.1 Logistic函數
5.5.1.2 損失函數
5.5.1.3 梯度下降法
5.5.2 二元邏輯迴歸
5.5.3 多元邏輯迴歸
5.5.4 SPSS軟體中的邏輯迴歸應用案例
參考文獻
第6章 關聯分析
6.1 關聯分析概述
6.2 關聯分析的評估指標
6.2.1 支持度
6.2.2 信賴度
6.2.3 演算法複雜度
6.3 Apriori演算法
6.3.1 頻繁項集的定義與產生
6.3.2 先驗原理
6.3.3 基於支持度的計數與剪枝
6.3.4 候選項集生成
6.3.5 基於信賴度的剪枝
6.3.6 Apriori演算法規則生成
6.4 FP-tree演算法
6.4.1 頻繁模式樹
6.4.2 FP-tree演算法頻繁項集的產生
6.4.3 FP-tree演算法規則生成
6.4.4 演算法效能對比與評估
6.5 SPSS Modeler關聯分析實例
參考文獻
第7章 增強型資料探勘演算法
7.1 增強型資料探勘演算法概述
7.1.1 組合方法的優勢
7.1.2 構建組合分類器的方法
7.2 隨機森林
7.2.1 隨機森林的原理
7.2.2 隨機森林的優缺點
7.2.3 隨機森林的泛化誤差
7.2.4 輸入特徵的選擇方法
7.3 Bagging演算法
7.4 AdaBoost演算法
7.4.1 AdaBoost演算法簡介
7.4.2 AdaBoost演算法原理
7.4.3 AdaBoost演算法的優缺點
7.5 提高不平衡資料的分類準確率
7.5.1 不平衡資料
7.5.1.1 不平衡資料的介紹
7.5.1.2 不平衡資料分類問題的難點
7.5.2 不平衡資料的處理方法——資料層面
7.5.2.1 過抽樣
7.5.2.2 欠抽樣
7.5.3 不平衡資料的處理方法——演算法層面
7.6 遷移學習
7.6.1 遷移學習的基本原理
7.6.2 遷移學習的分類
7.6.3 遷移學習與資料探勘
7.6.4 遷移學習的發展
參考文獻
第8章 資料探勘在營運商智慧營運中的應用
8.1 概述
8.2 單個業務的精準行銷——合約機外呼行銷
8.2.1 總結歷史行銷規律
8.2.2 預測潛在客戶群體
8.2.3 客戶群體細分
8.2.4 制定層次化、個性化精準行銷方案
8.3 多種互聯網業務的精準推送
8.3.1 根據歷史行銷規律總結單個業務的歷史行銷規律
8.3.2 預測潛在客戶群體、預測單個業務的潛在客戶群體及多個業務的聯合建模
8.3.3 制定多業務層次化個性化聯合精準行銷方案
8.3.4 應用效果評估
8.4 套餐精準適配
8.4.1 痛點
8.4.2 資訊潛在客戶群體
8.4.3 探尋強相關欄位
8.4.4 多元線性迴歸建模
8.4.5 制定層次化、個性化精準行銷方案
8.4.6 應用效果評估與模型調優
8.5 客戶保有
8.5.1 總結客戶流失的歷史規律
8.5.2 細分潛在流失客戶群體
8.5.3 客戶保有效益建模與最優決策
8.5.4 應用效果評估
8.6 投訴預警
8.6.1 客戶投訴現象分析
8.6.2 資訊潛在客戶群體
8.6.3 制定個性化關懷方案
8.7 網路品質柵格化呈現
8.7.1 柵格化呈現的基本原理
8.7.2 覆蓋柵格化
8.7.3 基於流量聚叢集的網路優化策略
8.8 無線室內定位
8.8.1 傳統室內定位方法
8.8.2 基於Wi-Fi信號的指紋定位演算法
8.8.3 基於資料探勘演算法的改進定位方法
8.8.3.1 基於主成分分析和聚類的定位演算法
8.8.3.2 基於四叉樹的定位演算法
參考文獻
第9章 面向未來大數據的資料探勘與機器學習發展趨勢
9.1 大數據時代資料探勘與機器學習面臨的新挑戰
9.2 IEEE ICDM會議資料探勘與機器學習的最新研究進展
9.3 「電腦奧運」——Sort Benchmark
參考文獻
書摘/試閱
1.7 現有資料探勘的主要分析軟體與系統
1.7.1 Hadoop
提到大數據和資料探勘,很多人馬上想到的就是Hadoop。說到Hadoop就不能不說Google的三篇論文。Google在2003年到2006年間發表了三篇非常有名的論文,它們分別是2003年SOSP的GFS(Google File System),2004年OSDI的MapReduce以及2006年OSDI的BigTable。這三篇論文奠定了現在主流大數據分析處理系統的理論基礎。基於這些,現今演化出各式各樣的大數據處理和分析系統。
Hadoop最開始起源於Apache Nutch,後者是一個開源的網路搜尋引擎,本身也是由Lucene項目的一部分。Nutch項目開始於2002年,一個可工作的抓取工具和搜尋系統很快浮出水面。但工程師們意識到,他們的架構將無法擴展到擁有數十億網頁的網路。到了2003年,Google發表了一篇描述Google分布式文件系統(簡稱GFS)的論文,這篇論文為他們提供了及時的幫助,文中稱Google正在使用此文件系統。GFS或類似的東西,可以解決他們在網路抓取和索引過程中產生的大量文件的儲存需求。具體而言,GFS會省掉管理所花的時間,如管理儲存結點。於是在2004年,Nutch開始寫一個開放源碼的應用,即Nutch的分布式文件系統(NDFS)。
Hadoop是一個能夠讓用戶輕鬆架構和使用的分布式運算平台。用戶可以輕鬆地在Hadoop上開發和運行處理大量數據的應用程式。它主要有以下幾個優點:
(1)高可靠性。Hadoop按位儲存和處理數據的能力值得人們信賴。
(2)高擴展性。Hadoop是在可用的電腦集叢集間分配數據並完成運算任務的,這些集叢集可以方便地擴展到數以千計的結點中。
(3)高效性。Hadoop能夠在結點之間動態地移動數據,並保證各個結點的動態平衡,因此處理速度非常快。
(4)高容錯性。Hadoop能夠自動保存數據的多個副本,並且能夠自動將失敗的任務重新分配。
(5)低成本。與一體機、商用資料倉儲以及QlikView、Yonghong Z-Suite等資料集市相比,Hadoop是開源的,項目的軟體成本因此會大大降低。
Hadoop對大數據的意義:
Hadoop得以在大數據處理應用中廣泛應用得益於其自身在數據提取、變形和加載(ETL)方面上的天然優勢。Hadoop的分布式架構,將大數據處理引擎盡可能地靠近儲存,對例如像ETL這樣的批處理操作相對合適,因為類似這樣操作的批處理結果可以直接走向儲存。Hadoop的MapReduce功能實現了將單個任務打碎,並將碎片任務(Map)發送到多個結點上,之後再以單個資料集的形式加載(Reduce)到資料倉儲裡。
2004年,Google的MapReduce論文發表,開發者在Nutch上有了一個可工作的MapReduce應用。到2005年年中,所有主要的Nutch演算法被移植到使用MapReduce和NDFS來運行。
Nutch中的NDFS和MapReduce實現的應用遠遠不只是搜尋領域,在2006年2月,Nutch中轉移出來一部分建立了一個獨立的Lucene子項目,稱為Hadoop。Yahoo對Hadoop非常感興趣,在這個時候,Doug Cutting加入了Yahoo,Yahoo為此專門提供了一個團隊和資源將Hadoop發展成一個可在網路上運行的系統。2008年2月,Yahoo宣布其搜尋引擎產品部署在一個擁有1萬個內核的Hadoop集群上。
2008年1月,Hadoop已成為Apache頂級項目,之前的無數事例證明它是成功的項目。同時圍繞Hadoop產生了一個多樣化、活躍的社區。隨後Hadoop成功地被Yahoo之外的很多公司應用,如Last.fm、Facebook和《紐約時報》《紐約時報》使用100臺機器,並基於亞馬遜的Hadoop產品EC2將4TB的報紙掃描文檔壓縮,轉換為用於Web的PDF文件,這個過程歷時不到24小時。
2008年4月,Hadoop打破世界紀錄,成為最快排序1TB數據的系統。運行在一個910結點的集群,Hadoop在209秒內排序了1TB的數據(還不到三分半鐘),擊敗了前一年的297秒冠軍。同年11月,Google在報告中聲稱,它的MapReduce實現執行1TB數據的排序只用68秒。2009年5月,有報導宣稱Yahoo的團隊使用Hadoop對1TB的數據進行排序只花了62秒。
1.7.2 Storm
2008年一家名叫BackType的公司在矽谷悄然成立,它們主攻領域是資料分析,透過即時收集的數據幫助客戶瞭解其產品對社交媒體的影響。其中有一項功能就是能夠查詢歷史記錄,當時BackType用的是標準的佇列和類似Hadoop的worker方法。很快,工程師Nathan Marz發現了其中巨大的缺點。第一,要保證所有佇列一直在工作;第二,在構建應用程式時候,不夠靈活,顯得過於重量級;第三,在部署方面也非常不方便。於是Nathan Marz開始嘗試新的解決方案,並在2010年12月提出了流(stream)的概念,將流作為分布式抽象的方法,數據之間的傳遞為流。緊接著,對於流的處理的兩個概念體「spout」和「bolt」也產生了。spout生產全新的流,而bolt將產生的流作為輸入並產出流。這就是spout和bolt的平行本質,它與Hadoop中mapper和reducer的平行原理相似。bolt只需簡單地對其要進行處理的流進行註冊,並指出接入的流在bolt中的劃分方式。最後,Nathan Marz對分布式系統頂級抽象就是「topology(拓撲圖)」——由spout和bolt組成的網路。此時,新的大資料分析和處理系統浮出水面,這就是Storm。只是在這個時候,Storm還並不出名。
接下來,Storm的設計採用了不少Hadoop的理念。由於Hadoop自身的缺陷性,它運行一段時間後經常會出現不少的「殭屍進程」,最終導致整個集群資源耗盡,而不能工作。針對這點,Storm做了額外的設計,避免「殭屍進程」,從而使得整個系統的可用性和可靠性大大提高。
2011年5月對BackType是個重要的日子,因為他們被Twitter收購了。借助Twitter的品牌效應,2011年9月19日Storm正式發布。發布會獲得了巨大的成功,Storm當時登上了Hacker News的頭條。由於其良好的即時處理和分析的表現,人們稱Storm為「即時的Hadoop」。
開源的短短的三年後,Storm在2014年9月17日正式步入Apache頂級項目的行列。到如今,Storm已被廣泛應用在醫療保健、天氣、新聞、分析、拍賣、廣告、旅遊、報警、金融等諸多領域。
Storm的優點:
(1)簡單的程式模型。類似MapReduce降低了平行批處理的複雜性,Storm降低了進行即時處理的複雜性。
(2)可以使用各種程式語言。你可以在Storm上使用各種程式語言。默認支持Clojure、Java、Ruby和Python。要增加對其他語言的支持,只需實現一個簡單的Storm通訊協議即可。
(3)容錯性。Storm會管理工作進程和結點的故障。
(4)水平擴展。運算是在多個線程、進程和伺服器之間平行進行的。
(5)可靠的消息處理。Storm保證每個消息至少能得到一次完整處理。任務失敗時,它會負責從消息源重試消息。
(6)快速。系統的設計保證了消息能得到快速處理,使用ØMQ作為其底層消息佇列。
(7)本地模式。Storm有一個「本地模式」,可以在處理過程中完全模擬Storm集群。這讓你可以進行快速開發和單元測試。
主題書展
更多書展今日66折
您曾經瀏覽過的商品
購物須知
為了保護您的權益,「三民網路書店」提供會員七日商品鑑賞期(收到商品為起始日)。
若要辦理退貨,請在商品鑑賞期內寄回,且商品必須是全新狀態與完整包裝(商品、附件、發票、隨貨贈品等)否則恕不接受退貨。