天天看點

《Hadoop與大資料挖掘》一導讀

《Hadoop與大資料挖掘》一導讀

為什麼要寫這本書

最早提出“大資料”時代到來的是全球知名咨詢公司麥肯錫,麥肯錫稱:“資料,已經滲透到當今每一個行業和業務職能領域,成為重要的生産因素。人們對于海量資料的挖掘和運用,預示着新一波生産率增長和消費者盈餘浪潮的到來。”

早在2012年,大資料(big data)一詞已經被廣泛提起,人們用它來描述和定義資訊爆炸時代産生的海量資料,并命名與之相關的技術發展與創新。那時就有人預計,從2013年至2020年,全球資料規模将增長10倍,每年産生的資料量将由當時的4.4萬億gb,增長至44萬億gb,每兩年翻一番。

既然“大資料”浪潮已經來臨,那麼與之對應的大資料人才呢?在國外,大資料技術發展正如火如荼,各種友善大家學習的資料、教程應有盡有。但是,在國内,這種資料卻是有“門檻”的。其一,這類資料是英文的,對于部分人員來說,閱讀是有難度的;其二,這些資料對于初學者或在校生來說,在理論了解上也有一些難度,沒有充分的動手實踐來協助了解大資料相關技術的原理、架構等;其三,在如何應用大資料技術來解決企業實實在在遇到的大資料相關問題方面,沒有很好的資料;其四,對于企業使用者來說,如何将大資料技術和資料挖掘技術相結合,對企業大量資料進行挖掘,以挖掘出有價值的資訊,也是難點。

作為大資料相關技術,hadoop無疑應用很廣泛。hadoop具有以下優勢:高可靠性、高擴充性、高效性、高容錯性、低成本、生态系統完善。

一般來說,使用hadoop相關技術可以解決企業相關大資料應用,特别是結合諸如mahout、spark mllib等技術,不僅可以對企業相關大資料進行基礎分析,還能建構挖掘模型,挖掘企業大資料中有價值的資訊。

對于學習大資料相關技術的高校師生來說,本書不僅提供了大資料相關技術的基礎講解及原理、架構分析,還針對這些原理,配備有對應的動手實踐章節,幫助讀者加深對原理、架構的認識。同時,在每個子產品結束後,書中會有一個相對獨立的企業應用案例,幫助讀者鞏固學到的大資料技術相關知識。

對于企業使用者或大資料挖掘開發者來說,特别是對想要了解如何将大資料技術應用到企業大資料項目中的企業使用者或者開發者來說,本書也是一份優秀的參考資料。

本書特色

本書提供了大資料相關技術的簡介、原理、實踐、企業應用等,針對大資料相關技術,如hadoop、hbase、hive、spark等,都有專業章節進行介紹,并且針對每一子產品都有相應的動手實踐,能有效加深讀者對大資料相關技術原理、技術實踐的了解。書中的挖掘實踐篇涉及企業在大資料應用中的所有環節,如資料采集、資料預處理、資料挖掘等,通過案例對整個系統的架構進行了詳細分析,對讀者有一定實踐指導作用。

本書适用對象

開設大資料、大資料挖掘相關課程的高校教師和學生

目前國内不少高校将大資料、大資料挖掘引入大學教學中,在計算機、數學、自動化、電子資訊、金融等專業開設了大資料技術相關的課程,但目前針對這一課程的相關教材沒有統一,或者使用的教材不利于課堂教學。本書提供了大資料相關技術的簡介、原理、實踐、企業應用等,能有效幫助高校教師教學;幫助學生學習大資料相關技術原理,進行技術實踐,為以後工作打下良好基礎。

大資料開發人員

書中針對大資料相關技術,如hadoop、hbase、hive、spark等,都有專業章節進行介紹,并且針對每一子產品有相應的動手實踐,對初級開發人員有較強指導作用。

大資料架構師

挖掘實踐篇涉及企業在大資料應用中的所有環節,包括資料采集、資料預處理、資料挖掘等方面,通過案例對整個系統的架構進行了詳細分析,對大資料架構師有一定的實踐指導作用。

關注大資料挖掘技術的人員

本書不僅包括大資料相關技術的簡介及原理分析,還包括大資料相關技術和大資料挖掘相結合的案例分析。對于大資料挖掘技術人員來說,如何應用大資料技術來對大資料進行挖掘是重點和難點,通過學習本書中案例的分析方法,可以将其融入自己的實際工作中。

如何閱讀本書

本書主要分為兩篇:基礎篇和挖掘實戰篇。基礎篇介紹了大資料相關技術:hadoop、hive、hbase、pig、spark、oozie等。針對每個技術都有相應子產品與之對應,首先對該技術的概念、内部原理等進行介紹,使讀者對該技術有一個由淺入深的了解;其次在對原理的介紹中會配合相應的動手實踐,加深對原理的了解。在每個子產品的最後,會有1~2個企業案例,主要講解使用目前子產品的技術來解決其中的1~2個問題,這樣讀者不僅對技術的原理、架構有了較深入的了解,同時,對于如何應用該技術也有了一定認識,進而為以後的工作、學習打下良好基礎。挖掘實戰篇通過對一個大型的企業應用案例的介紹,充分應用基礎篇講解的大資料技術來解決企業應用中遇到的各種問題。本書配套提供了程式代碼及資料,讀者可通過上機實驗,快速掌握書中所介紹的大資料相關技術,獲得使用大資料相關技術進行資料挖掘的基本能力。

第一篇是基礎篇(第1~7章)。第1章主要介紹了大資料相關概念,以及大資料相關技術。第2章對hadoop進行了介紹,包括概念、原理、架構等,通過動手實踐案例幫助讀者加深對原理的了解。第3章對hive進行了介紹,重點分析了hive的架構及如何與hadoop相結合,同時,引入一個企業案例來分析hive在企業應用中的地位。第4章對hbase進行了介紹,分析了hdfs與hbase的異同點、hbase架構原理、hbase如何做到支援随機讀寫等。第5章介紹了pig,詳細分析了pig的實作原理及應用場景,介紹了pig latin,并且通過一個pig latin的動手實踐案例,加深讀者對該腳本的了解。第6章介紹了spark的基本原理、rdd實作等,并且對scala進行了簡單介紹,使用scala建立wordcount程式,在子產品的最後使用spark mllib完成引入的企業案例中的模型建立環節。第7章介紹了hadoop工作流oozie,通過動手實際建立hadoop mr、spark、hive、pig的工作流,友善了解企業工作流應用。

第二篇是挖掘實戰篇(第8章),詳細介紹了一個企業級大資料應用項目—法律服務大資料智能推薦系統。通過分析應用背景、建構系統,使讀者了解針對系統的每一層應使用什麼大資料技術來解決問題。涉及的流程有資料采集、資料預處理、模型建構等,在每一個流程中會進行大資料相關技術實踐,運用實際資料來進行分析,使讀者切身感受到大資料技術解決大資料企業應用的魅力。

勘誤和支援

除封面署名外,參加本書編寫工作的還有周龍、焦正升、許國傑、楊坦、肖剛、劉曉勇等。由于作者的水準有限,書中難免會出現一些錯誤或者不準确的地方,懇請讀者批評指正。本書内容的更新将及時在“泰迪杯”全國資料挖掘挑戰賽網站(www.tipdm.com)上釋出。讀者可通過作者微信公衆号tipdm(微信号:tipdatamining)、tipdm官網(www.tipdm.com)回報有關問題。也可通過熱線電話(40068-40020)或企業qq(40068-40020)進行線上咨詢。

如果你有更多寶貴意見,歡迎發送郵件至郵箱[email protected],期待能夠得到你的真摯回報。

緻謝

本書編寫過程中得到了廣大企事業機關科研人員的大力支援,在此謹向中國電力科學研究院、廣東電力科學研究院、廣西電力科學研究院、華南師範大學、廣東工業大學、廣東技術師範學院、南京中醫藥大學、華南理工大學、湖南師範大學、韓山師範學院、中山大學、廣州泰迪智能科技有限公司等機關給予支援的專家及師生緻以深深的謝意。

在本書的編輯和出版過程中還得到了參與“泰迪杯”全國資料挖掘模組化競賽的衆多師生及機械工業出版社楊福川老師、李藝編輯的大力幫助與支援,在此一并表示感謝。

第一篇 基礎篇

<a href="https://yq.aliyun.com/articles/110108">第2章</a>

第3章 大資料查詢—hive

3.1 hive概述

3.1.1 hive體系架構

3.1.2 hive資料類型

3.1.3 hive安裝

3.1.4 動手實踐:hive安裝配置

3.1.5 動手實踐:hiveql基礎—sql

3.2 hiveql語句

3.2.1 資料庫操作

3.2.2 hive表定義

3.2.3 資料導入

3.2.4 資料導出

3.2.5 hiveql查詢

3.3 動手實踐:基于hive的學生資訊查詢

3.4 基于hive的航空公司客戶價值資料預處理及分析

3.4.1 背景與挖掘目标

3.4.2 分析方法與過程

3.5 本章小結

第4章 大資料快速讀寫—hbase

4.1 hbase概述

4.2 配置hbase叢集

4.2.1 zookeeper簡介及配置

4.2.2 配置hbase

4.2.3 動手實踐:hbase安裝及運作

4.2.4 動手實踐:zookeeper擷取hbase狀态

4.3 hbase原理與架構元件

4.3.1 hbase架構與元件

4.3.2 hbase資料模型

4.3.3 讀取/寫入hbase資料

4.3.4 rowkey設計原則

4.3.5 動手實踐:hbase資料模型驗證

4.4 hbase shell操作

4.4.1 hbase常用shell指令

4.4.2 動手實踐:hbase shell操作

4.5 java api &amp;mapreduce與hbase互動

4.5.1 搭建hbase開發環境

4.5.2 使用java api操作hbase表

4.5.3 動手實踐:hbase java api使用

4.5.4 mapreduce與hbase互動

4.5.5 動手實踐:hbase表導入導出

4.6 基于hbase的冠字号查詢系統

4.6.1 案例背景

4.6.2 功能名額

4.6.3 系統設計

4.6.4 動手實踐:建構基于hbase的冠字号查詢系統

4.7 本章小結

第5章 大資料處理—pig

5.1 pig概述

5.1.1 pig latin簡介

5.1.2 pig資料類型

5.1.3 pig與hive比較

5.2 配置運作pig

5.2.1 pig配置

5.2.2 pig運作模式

5.3 常用pig latin操作

5.3.1 資料加載

5.3.2 資料存儲

5.3.3 pig參數替換

5.3.4 資料轉換

5.4 綜合實踐

5.4.1 動手實踐:通路統計資訊資料處理

5.4.2 動手實踐:股票交易資料處理

5.5 本章小結

第6章 大資料快速運算與挖掘—spark

6.1 spark概述

6.2 spark安裝叢集

6.2.1 3種運作模式

6.2.2 動手實踐:配置spark獨立叢集

6.2.3 3種運作模式執行個體

6.2.4 動手實踐:spark streaming實時日志統計

6.2.5 動手實踐:spark開發環境—intellij idea配置

6.3 spark架構與核心原理

6.3.1 spark架構

6.3.2 rdd原理

6.3.3 深入了解spark核心原理

6.4 spark程式設計技巧

6.4.1 scala基礎

6.4.2 spark基礎程式設計

6.5 如何學習spark mllib

6.5.1 确定應用

6.5.2 als算法直覺描述

6.5.3 程式設計實作

6.5.4 問題解決及模型調優

6.6 動手實踐:基于spark als電影推薦系統

6.6.1 動手實踐:生成算法包

6.6.2 動手實踐:完善推薦系統

6.7 本章小結

第7章 大資料工作流—oozie

7.1 oozie簡介

7.2 編譯配置并運作oozie

7.2.1 動手實踐:編譯oozie

7.2.2 動手實踐:oozie server/client配置

7.3 oozie workflow實踐

7.3.1 定義及送出工作流

7.3.2 動手實踐:mapreduce work-flow定義及排程

7.3.3 動手實踐:pig workflow定義及排程

7.3.4 動手實踐:hive workflow定義及排程

7.3.5 動手實踐:spark workflow定義及排程

7.3.6 動手實踐:spark on yarn定義及排程

7.4 oozie coordinator實踐

7.4.1 動手實踐:基于時間排程

7.4.2 動手實踐:基于資料有效性排程

7.5 本章小結

第二篇 挖掘實戰篇

第8章 法律服務大資料智能推薦

8.1 背景

8.2 目标

8.3 系統架構及流程

8.4 分析過程及實作

8.4.1 資料傳輸

8.4.2 資料傳輸:動手實踐

8.4.3 資料探索分析

8.4.4 資料預處理

8.4.5 模型建構

8.5 建構法律服務大資料智能推薦系統

8.5.1 動手實踐:建構推薦系統javaee

8.5.2 動手實踐:oozie工作流任務

8.6 本章小結