Hadoop + Spark 大數據巨量分析與機器學習整合開發實戰

林大貴

  • 出版商: 博碩
  • 出版日期: 2015-11-02
  • 定價: $620
  • 售價: 7.8$484
  • 語言: 繁體中文
  • 頁數: 528
  • ISBN: 9864340549
  • ISBN-13: 9789864340545

已過版

買這商品的人也買了...

商品描述

<內容簡介>

    ◆技術為金融財務、行銷分析、商業趨勢預測帶來全新的變革
    ◆詳實的安裝設定與程式編寫說明降低學習入門門檻
    ◆可單機執行或以實機/虛擬機器建立多台演算陣列
    ◆具備大量實務案例分析與程式碼範例實作

    大數據分析與機器學習人工智慧帶來資訊科技革命的第五波新浪潮
    創新產業      大量商機      人才需求


    一般人可能會認為大數據需要很多台機器的環境才能學習,但是本書透過虛擬機器的方法,
    就能在自家電腦演練建立Hadoop叢集,並且建立Spark開發環境。
    以實機操作介紹Hadoop MapReduce與HDFS基本概念,以及Spark RDD與MapReduce基本觀念。
    以大數據分析實務案例:MoiveLens(電影喜好推薦引擎)、StumbleUpon(網頁二元分類)、
    CovType(林相土地演算)、Bike Sharing(Ubike類租賃預測分析)。
    配合範例程式碼來介紹各種機器學習演算法,示範如何擷取資料、訓練資料、建立模型、預測結果,
    由淺而深介紹Spark機器學習。

    大數據對每個領域都造成影響。在商業、經濟及其他領域中,將大量資料進行分析後,就可得出許多資料關聯性。可用於預測商業趨勢、行銷研究、金融財務、疾病研究、打擊犯罪等。大數據對每一個公司的決策方式將發生變革-決策方式將基於資料和分析的結果,而不是依靠經驗和直覺。
    資訊科技浪潮第一波是大型電腦,第二波是個人電腦,第三波是網路,第四波是社群媒體,第五波科技則是「大數據」。每一波的的資訊科技浪潮,總是帶來工作與生活方式的改變,創造大量商機、新的產業、大量的工作機會。像是在網路時代,創造了Google、Amazon 等大公司,以及無數.com 公司。
    每一波浪潮開始時,需求的相關人才最多,但是此時也是相關人才供應最少。因此對個人而言,如果能在浪潮興起時就投入,往往成果最豐碩,並且有機會占有重要職位。像是網路剛興起時,每個公司都需要建立網站,但是相對這方面的人才不夠。那時候能撰寫網頁相關程式語言的工程師就能夠獲得高薪。但是後來投入的人越來越多,這方面的工程師就沒有那麼吃香了。
    之前的科技浪潮,也許你沒有機會躬逢其盛,或是沒有機會在浪潮初期進入。但是大數據的浪潮方興未艾,正是進入的好時機。根據IBM 調查預估,大數據目前的商機是71 億美元,並將以每年增長20%速度持續成長,預計2015 年達到180 億美元。機會是給有準備的人,學會了大數據分析的相關技能,讓你有機會獲得更好的薪資與發展前景。根據美國調查機構Robert Half Technology 2016 年趨勢報告,在美國大數據工程師,薪水年成長8.9%,年薪大約13 萬至18 萬美金(約新台幣429 萬元~594 萬元)。因為人才短缺,企業不惜重金挖角。(你可以在google 搜尋Robert Half Technology 2016 就可以下載此調查報告)
    本書的主題是Haddop+Spark大數據分析與機器學習。Hadoop 大家已經知道是運用最多的大數據平台,然而Spark 異軍突起,與Hadoop 相容而且執行速度更快,各大公司也開始加入Spark 開發。例如IBM 加入Apache Spark 社群打算培育百萬名資料科學家。Google 與微軟也分別應用了Spark 的功能來建置服務、發展大數據分析雲端與機器學習平臺。這些大公司的加入,也意味著未來更多公司會採用Hadoop+Spark 進行大數據資料分析。
    然而目前市面上雖然很多大數據的書,但是多半偏向理論或應用層面的介紹,網路上的資訊雖然很多,但是也很雜亂。本書介紹希望能夠用淺顯易懂原理說明,再加上實機操作、範例程式,能夠降低大數據技術的學習門檻,帶領讀者進入大數據與機器學習的領域。當然整個大數據的生態系非常龐大,需要學習的東西太多。希望讀者能透過本書有了基本概念後,比較容易踏入這門領域,能繼續深入研究其他大數據的相關技術。

 

<章節目錄>

    Chapter01 大數據與機器學習 
    1-1 大數據定義 
    1-2 Hadoop 簡介 
    1-3 Hadoop HDFS 分散式檔案系統 
    1-4 Hadoop MapReduce 介紹 
    1-5 Spark 介紹 
    1-6 機器學習介紹 

    Chapter02 Virtual Box 虛擬機器軟體安裝 
    2-1 VirtualBox 下載安裝 
    2-2 設定Virtual Box 儲存資料夾 
    2-3 在VirtualBox 建立虛擬機器 

    Chapter03 Ubuntu Linux 作業系統安裝 
    3-1 下載Ubuntu 安裝光碟檔案 
    3-2 在Virtual Box 設定Ubuntu 虛擬光碟檔案 
    3-3 開始安裝Ubuntu 
    3-4 啟動Ubuntu 
    3-5 安裝Guest Additions 
    3-6 設定預設輸入法 
    3-7 設定終端機程式 
    3-8 設定終端機白底黑字 
    3-9 設定共用剪貼簿 

    Chapter04 Hadoop Single Node Cluster 安裝 
    4-1 安裝JDK 
    4-2 設定SSH 無密碼登入 
    4-3 下載安裝Hadoop 
    4-4 設定Hadoop 環境變數 
    4-5 修改Hadoop 組態設定檔 
    4-6 建立與格式化HDFS 目錄 
    4-7 啟動Hadoop 
    4-8 開啟Hadoop Resource Manager Web 介面
    4-9 NameNode HDFS Web 介面 

    Chapter05 Hadoop Multi Node Cluster 安裝 
    5-1 複製Single Node Cluster 到data1 
    5-2 設定data1 伺服器 
    5-3 複製data1 伺服器至data2、data3、master 
    5-4 設定data2、data3 伺服器 
    5-5 設定master 伺服器 
    5-6 master 連線至data1、data2、data3 建立HDFS 目錄 
    5-7 建立與格式化NameNode HDFS 目錄 
    5-8 啟動Hadoop Multi Node Cluster 
    5-9 開啟Hadoop ResourceManager Web 介面
    5-10 開啟NameNode HDFS Web 介面 

    Chapter06 Hadoop HDFS 命令介紹 
    6-1 啟動Hadoop Multi-Node Cluster 
    6-2 建立與查看HDFS 目錄 
    6-3 從本機複製檔案到HDFS 
    6-4 將HDFS 上的檔案複製到本機 
    6-5 複製與刪除HDFS 檔案 
    6-6 Hadoop HDFS Web UI 介面瀏覽HDFS 

    Chapter07 Hadoop MapReduce 介紹 
    7-1 wordCount.java 介紹 
    7-2 編輯wordCount.java 
    7-3 編譯wordCount.java 
    7-4 下載測試文字檔 
    7-5 上傳文字檔至HDFS 
    7-6 執行wordCount.java 
    7-7 查看執行結果 
    7-8 Hadoop MapReduce 的缺點 

    Chapter08 Spark 安裝介紹 
    8-1 SPARK 的cluster 模式架構圖 
    8-2 Scala 介紹與安裝 
    8-3 安裝SPARK 
    8-4 啟動spark-shell 互動介面 
    8-5 設定spark-shell 顯示訊息 
    8-6 啟動Hadoop 
    8-7 本機執行Spark-shell 程式 
    8-8 在Hadoop YARN 執行spark-shell 
    8-9 建置Spark standalone cluster 執行環境 
    8-10 在Spark standalone 執行spark-shell 

    Chapter09 Spark RDD 介紹 
    9-1 RDD 的特性 
    9-2 基本RDD「轉換」運算 
    9-3 多個RDD「轉換」運算 
    9-4 基本「動作」運算 
    9-5 RDD Key-Value 基本「轉換」運算 
    9-6 多個RDD Key-Value「轉換」運算 
    9-7 Key-Value「動作」運算 
    9-8 Broadcast 廣播變數 
    9-9 accumulator 累加器 
    9-10 RDD Persistence 持久化 
    9-11 使用Spark 建立WordCount 
    9-12 Spark WordCount 詳細解說 

    Chapter10 Spark 整合開發環境介紹 
    10-1 下載與安裝Scala IDE 
    10-2 下載專案所需要的Library 
    10-3 啟動eclipse 
    10-4 建立新Spark 專案 
    10-5 設定專案程式庫 
    10-6 新增scala 程式 
    10-7 下載WordCount 測試資料 
    10-8 建立WordCount.scala 
    10-9 編譯WordCount.scala 程式
    10-10 執行WordCount.scala 程式
    10-11 匯出jar 檔 
    10-12 spark-submit 詳細介紹 
    10-13 在本機local 模式執行WordCount 程式 
    10-14 在hadoop yarn-client 執行WordCount 程式 
    10-15 WordCount 程式在Spark Standalone Cluster 執行 
    10-16 本書範例程式安裝說明 

    Chapter11 建立推薦引擎 
    11-1 推薦演算法介紹 
    11-2 「推薦引擎」大數據分析使用情境 
    11-3 ALS 推薦演算法介紹 
    11-4 ml-100k 推薦資料下載與介紹 
    11-5 使用spark-shell 匯入ml-100k 資料 
    11-6 查看匯入的資料 
    11-7 使用ALS.train 進行訓練 
    11-8 使用模型進行推薦 
    11-9 顯示推薦的電影的名稱 
    11-10 建立Recommend 專案 
    11-11 Recommend.scala 程式碼 
    11-12 建立PrepareData() 資料準備 
    11-13 recommend() 推薦程式碼 
    11-14 執行Recommend.scala 
    11-15 建立AlsEv alution.scala 調校訓練參數 
    11-16 建立PrepareData() 資料準備 
    11-17 進行訓練評估 
    11-18 執行AlsEv aluation 
    11-19 修改Recommend.scala 為最佳參數組合 

    Chapter12 StumbleUpon 資料集介紹 
    12-1 StumbleUpon 資料集 
    12-2 下載StumbleUpon 資料 
    12-3 以LibreOffice Calc 試算表查看train.tsv 
    12-4 二元分類演算法 

    Chapter13 決策樹二元分類 
    13-1 決策樹介紹 
    13-2 建立Classi fication 專案 
    13-3 建立RunDecisionTreeBinary.scala 程式 
    13-4 資料準備階段 
    13-5 訓練評估階段 
    13-6 預測階段 
    13-7 執行RunDecisionTreeBinary.scala 
    13-8 修改RunDecisionTreeBinary 調校訓練參數 
    13-9 RunDecisionTreeBinary 執行參數調校程式 
    13-10 RunDecisionTreeBinary 不執行參數調校程式 

    Chapter14 邏輯迴歸二元分類 
    14-1 邏輯迴歸分析介紹 
    14-2 RunLogisticRegressionWithSGDBinary.scala 程式說明 
    14-3 執行RunDecisionTreeRegression.scala 進行參數調校 
    14-4 執行RunDecisionTreeRegression.scala 不進行參數調校 

    Chapter15 支援向量機器SVM 二元分類 
    15-1 支援向量機器SVM 演算法基本概念 
    15-2 RunSVMWithSGDBinary.scala 程式說明 
    15-3 執行SVMWithSGD.scala 進行參數調校 
    15-4 執行SVMWithSGD.scala 不進行參數調校 

    Chapter16 單純貝氏二元分類 
    16-1 單純貝氏分析原理介紹 
    16-2 RunNaiveBayesBinary.scala 程式說明 
    16-3 執行NaiveBayes.scala 進行參數調校 
    16-4 執行NaiveBayes.scala 不進行參數調校 

    Chapter17 決策樹多元分類 
    17-1 「森林覆蓋樹種」大數據問題分析情境 
    17-2 UCI Covertype 資料集介紹 
    17-3 下載與查看資料 
    17-4 建立RunDecisionTreeMulti.scala 
    17-5 修改RunDecisionTreeMulti.scala 程式 
    17-6 執行RunDecisionTreeMulti.scala 進行參數調校 
    17-7 執行RunDecisionTreeMulti.scala 不進行參數調校 

    Chapter18 決策樹迴歸分析 
    18-1 Bike Sharing 大數據問題分析 
    18-2 Bike Sharing 資料集 
    18-3 下載與查看資料 
    18-4 建立RunDecisionTreeRegression.scala 
    18-5 修改RunDecisionTreeRegression.scala 
    18-6 執行RunDecisionTreeRegression.scala 執行參數調校 
    18-7 執行RunDecisionTreeRegression.scala 不執行參數調校 

    Chapter19 使用Apache Zeppelin 資料視覺化 
    19-1 Apache Zeppelin 介紹 
    19-2 安裝Zeppelin 前的準備 
    19-3 Apache Zeppelin 安裝 
    19-4 啟動Apache Zeppelin 
    19-5 建立新的Notebook 
    19-6 使用Zeppelin 執行Shell 命令 
    19-7 建立暫存資料表「UserTable」 
    19-8 使用Zeppelin 執行年齡統計Spark SQL 
    19-9 使用Zeppelin 執行性別統計Spark SQL 
    19-10 依照職業統計 
    19-11 Spark SQL 加入文字方塊輸入參數 
    19-12 加入選項參數 
    19-13 Zeppelin 在firefox 瀏覽器使用的問題 
    19-14 同時顯示多個統計欄位 
    19-15 工具列設定 
    19-16 設定段落標題 
    19-17 設定Paragraph 段落寬度 
    19-18 設定顯示模式


<作者簡介>

    林大貴

    作者從事IT產業多年,涉獵系統設計、網站開發、數位行銷與商業智慧等多領域,具備豐富實務開發經驗。