Alluxio:大數據統一存儲原理與實踐

Alluxio:大數據統一存儲原理與實踐

本書主要內容包括 Alluxio 系統快速入門、 Alluxio 系統架構及讀寫工作機制、Alluxio 與底層存儲系統的集成、Alluxio 與上層計算框架的集成、 Alluxio 基本功能和高級功能的介紹與使用。此外,本書還詳細介紹了Alluxio 的套用案例與生產實踐, 並詳細解讀了 Alluxio 的核心框架和技術套用,旨在為大數據從業人員和大數據存儲技術愛好者提供一 個深入學習的平台,也可用作開源社區開發者指南。

基本介紹

  • 書名:Alluxio:大數據統一存儲原理與實踐
  • 作者:范斌  顧榮 著
  • ISBN:978-7-121-36782-3
  • 頁數:220頁
  • 定價:79.00元 
  • 出版社:電子工業出版社
  • 出版時間:2019年8月出版
  • 開本:16開
內容提要,目錄,作者簡介,

內容提要

Alluxio 這一以記憶體為中心的分散式虛擬檔案系統,最初誕生於加州大學伯克利分校的 AMPLab,其開源社區在目前大數據生態系統中發展很快。《Alluxio:大數據統一存儲原理與實踐》以廣泛使用的Alluxio 1.8.1 版本為基礎進行編寫, 是一本全面介紹 Alluxio 相關技術原理與實踐案例的書籍。

目錄

第 1 章 Alluxio 系統快速入門 1
1.1 Alluxio 背景概述 1
1.1.1 Alluxio 系統功能簡介 ................................................................................. 4
1.1.2 Alluxio 項目發展歷史 ................................................................................. 5
1.2 獲取/編譯 Alluxio 軟體 ........................................................................................... 6
1.2.1 下載預編譯的 Alluxio 可執行包 ................................................................ 6
1.2.2 編譯 Alluxio 原始碼 .................................................................................... 6
1.3 Alluxio 的搭建部署及程式運行 ........................................................................... 10
1.3.1 單機模式 .................................................................................................... 10
1.3.2 集群模式 .................................................................................................... 13
1.3.3 高可用集群模式 ........................................................................................ 16
第 2 章 Alluxio 系統架構及讀寫工作機制 ....................................................................... 22
2.1 Alluxio 的構架簡介與基本特徵 ........................................................................... 22
2.1.1 提升遠程存儲讀寫性能 ............................................................................ 23
2.1.2 統一持久化數據訪問接口 ........................................................................ 24
2.1.3 數據的快速復用和共享 ............................................................................ 26
2.2 Alluxio 的系統功能組件 ....................................................................................... 27
2.2.1 Alluxio Master 組件 ................................................................................... 27
2.2.2 Alluxio Worker 組件 .................................................................................. 29
2.2.3 Alluxio Client 組件 .................................................................................... 30
2.3 Alluxio 讀寫場景的行為分析 ............................................................................... 31
2.3.1 Alluxio 的讀場景數據流 ........................................................................... 31
2.3.2 Alluxio 的寫場景數據流 ........................................................................... 37
第 3 章 Alluxio 與底層存儲系統的集成 ........................................................................... 40
3.1 配置 HDFS 作為 Alluxio 底層存儲 ...................................................................... 40
3.1.1 準備步驟與基本配置流程 ........................................................................ 41
3.1.2 高級參數配置 ............................................................................................ 43
3.1.3 使用 HDFS 在本地運行 Alluxio ............................................................... 44
3.2 配置 Secure HDFS 作為 Alluxio 底層存儲 .......................................................... 44
3.2.1 準備步驟與基本配置流程 ........................................................................ 45
3.2.2 使用安全認證模式 HDFS 在本地運行 Alluxio ....................................... 46
3.3 配置 AWS S3 作為 Alluxio 底層存儲 .................................................................. 47
3.3.1 準備步驟與基本配置流程 ........................................................................ 47
3.3.2 高級參數配置 ............................................................................................ 49
3.3.3 使用 S3 在本地運行 Alluxio ..................................................................... 51
3.4 配置 Google GCS 作為 Alluxio 底層存儲 ........................................................... 52
3.4.1 準備步驟與基本配置流程 ........................................................................ 52
3.4.2 高級參數配置 ............................................................................................ 53
3.4.3 使用 GCS 本地運行 Alluxio ..................................................................... 54
3.5 配置 Azure BLOB Store 作為 Alluxio 底層存儲系統 ........................................ 55
3.5.1 準備步驟與基本配置流程 ........................................................................ 55
3.5.2 使用 Azure BLOB Store 本地運行 Alluxio .............................................. 57
第 4 章 Alluxio 與上層計算框架的集成 ........................................................................... 58
4.1 Alluxio 的管理員操作命令 ................................................................................... 58
4.1.1 操作命令列表 ............................................................................................ 59
4.1.2 操作命令示例 ............................................................................................ 59
4.2 Alluxio 的用戶操作命令 ....................................................................................... 61
4.2.1 操作命令列表 ............................................................................................ 62
4.2.2 操作命令示例 ............................................................................................ 65
4.3 Alluxio 與 Hadoop 操作命令行的集成 ................................................................ 78
4.3.1 前期準備與配置 ........................................................................................ 78
4.3.2 具體使用示例 ............................................................................................ 79
4.4 Alluxio 與 Hadoop MapReduce 的集成 ................................................................ 79
4.4.1 前期準備與配置 ........................................................................................ 80
4.4.2 具體使用示例 ............................................................................................ 82
4.5 Alluxio 與 Spark 的集成 ....................................................................................... 83
4.5.1 前期準備與配置 ........................................................................................ 83
4.5.2 使用 Alluxio 作為輸入/輸出源 ................................................................. 85
4.5.3 Alluxio 與 Spark 集成常見問題分析與解決 ............................................ 86
4.6 Alluxio 與 Hive 的集成 ......................................................................................... 89
4.6.1 安裝並配置 Hive 環境 .............................................................................. 89
4.6.2 使用 Alluxio 存儲部分 Hive 表 ................................................................ 90
4.6.3 使用 Alluxio 作為默認檔案系統(存儲全部數據) .............................. 93
4.6.4 檢查 Hive 和 Alluxio 的集成情況(支持 Hive 2.x) ............................. 95
4.7 Alluxio 與 Presto 的集成 ....................................................................................... 96
4.7.1 前期準備 .................................................................................................... 96
4.7.2 部署分發 Alluxio 客戶端 jar 包 ................................................................ 98
4.7.3 Presto 操作命令示例 ................................................................................. 98
4.8 Alluxio 與 TensorFlow 的集成 ........................................................................... 100
4.8.1 深度學習面臨的數據挑戰 ...................................................................... 100
4.8.2 基於 Alluxio 解決深度學習存儲問題的分析 ........................................ 101
4.8.3 安裝並配置 Alluxio FUSE ..................................................................... 102
4.8.4 TensorFlow 使用 Alluxio FUSE 管理訪問數據 ..................................... 103
第 5 章 Alluxio 基本功能的介紹與使用 ......................................................................... 105
5.1 Alluxio 系統環境與屬性的配置 ......................................................................... 105
5.1.1 Alluxio 系統組件參數的配置 ................................................................. 106
5.1.2 Alluxio 客戶端組件參數的配置 ............................................................. 109
5.1.3 Alluxio 參數配置的相關工具 ................................................................. 112
5.2 Alluxio 底層檔案系統的配置與管理 ................................................................. 113
5.2.1 Alluxio 掛載底層存儲 ............................................................................. 113
5.2.2 Alluxio 與底層存儲的元數據一致性保證 ............................................. 116
5.3 Alluxio 快取資源的配置與管理 ......................................................................... 120
5.3.1 配置 Alluxio 快取存儲資源 .................................................................... 121
5.3.2 Alluxio 快取數據的載入、駐留及釋放 ................................................. 126
5.3.3 配置 Alluxio 快取數據的生存時間 ........................................................ 127
5.4 Alluxio 系統 Web 用戶界面的查看與使用 ...................................................... 128
5.4.1 Alluxio Master Web 界面介紹 ................................................................ 128
5.4.2 Alluxio Worker Web 界面介紹 ............................................................... 134
第 6 章 Alluxio 高級功能的介紹與使用 ......................................................................... 137
6.1 Alluxio 的安全認證與許可權控制 ......................................................................... 137
6.1.1 Alluxio 安全認證模式的介紹 ................................................................. 138
6.1.2 Alluxio 訪問許可權控制的介紹 ................................................................. 139
6.1.3 Alluxio 用戶模擬功能的介紹 ................................................................. 141
6.1.4 Alluxio 審計日誌功能的介紹 ................................................................. 142
6.2 Alluxio 的內置 Metrics 系統............................................................................... 143
6.3 Alluxio 檔案系統日誌的使用與維護 ................................................................. 145
6.4 Alluxio 系統的異常排查 ..................................................................................... 148
Alluxio: 大數據統一存儲原理與實踐
第 7 章 Alluxio 的套用案例與生產實踐 ......................................................................... 152
7.1 陌陌基於 Alluxio 加速 Spark SQL 查詢 ............................................................ 152
7.1.1 Alluxio 快取套用背景簡介 ..................................................................... 153
7.1.2 陌陌套用場景結合 Alluxio 的分析 ........................................................ 153
7.1.3 基於 Alluxio 的陌陌 Ad Hoc 查詢系統架構 .......................................... 155
7.1.4 基於 Alluxio 的查詢性能評估與分析 .................................................... 156
7.1.5 陌陌在 Alluxio 實戰方面的後續實踐 .................................................... 158
7.2 京東基於 Alluxio 和 Presto 構建互動式查詢引擎 ............................................ 158
7.2.1 京東大數據平台的業務問題背景 .......................................................... 159
7.2.2 JDPresto on Alluxio 架構與特性的介紹 ................................................. 160
7.2.3 JDPresto on Alluxio 的性能評估與分析 ................................................. 161
7.2.4 JDPresto on Alluxio 的套用總結 ............................................................. 164
7.3 Alluxio 在攜程實時計算平台中的套用與實踐 ................................................. 165
7.3.1 攜程實時計算的套用背景 ...................................................................... 165
7.3.2 基於 Alluxio 的跨集群數據共享方案與性能評估 ................................ 168
7.4 去哪兒網利用 Alluxio 提升異地存儲訪問性能 ................................................ 169
7.4.1 去哪兒網流式處理背景簡介 .................................................................. 170
7.4.2 原有系統架構及相關問題分析 .............................................................. 171
7.4.3 基於 Alluxio 改進後的系統架構介紹與性能評估 ................................ 172
7.5 百度基於 Alluxio 加速遠程數據讀取 ................................................................ 176
7.5.1 百度跨機房數據查詢問題的描述 .......................................................... 177
7.5.2 使用 Alluxio 快取遠端數據的方案與效果 ............................................ 177
7.5.3 使用 Alluxio 分層存儲的方案與效果 .................................................... 178
7.5.4 基於 Alluxio 提速遠程數據訪問的總結 ................................................ 180
第 8 章 Alluxio 的開源社區開發者指南 ............................................................... 181
8.1 Alluxio 的原始碼規範 ......................................................................................... 181
8.1.1 原始碼風格要求 ...................................................................................... 182
8.1.2 Alluxio 的單元測試 ................................................................................. 184
8.1.3 Alluxio 的日誌系統 ................................................................................. 184
8.1.4 Alluxio 的 RPC 定義 ............................................................................... 186
8.1.5 Alluxio 檔案系統日誌訊息 ..................................................................... 186
8.2 Alluxio 的單元測試流程介紹 ............................................................................. 187
8.2.1 運行 Alluxio 單元測試 ............................................................................ 187
8.2.2 創建 Alluxio 單元測試 ............................................................................ 188
8.2.3 單元測試需要避免的情況 ...................................................................... 190
8.2.4 Alluxio 單元測試的全局狀態管理 ......................................................... 191
8.3 貢獻原始碼至 Alluxio 開源社區 ............................................................... 193
8.3.1 開發者的系統要求和環境準備 .............................................................. 194
8.3.2 下載 Alluxio 原始碼並配置開發者信箱 ................................................ 194
8.3.3 編譯 Alluxio 原始碼 ................................................................................ 195
8.3.4 領取一個開發者新手任務 ...................................................................... 196
8.3.5 在本地副本中創建一個新的開發分支 .................................................. 196
8.3.6 提交本地的 commit ................................................................................. 197
8.3.7 提交一個社區 Pull Request ..................................................................... 198
8.3.8 審閱社區 Pull Request ............................................................................. 199

作者簡介

范 斌
Alluxio開源項目管理委員會成員和源碼維護者,Alluxio公司創始成員,現任開源副總裁;加入Alluxio項目之前就職於谷歌山景城,從事下一代大規模分散式存儲系統的研究與開發,並榮獲谷歌基礎設施技術獎(Technical Infrastructure Award);2013年獲得卡內基梅隆大學(Carnegie Mellon University)計算機系博士學位,攻讀博士期間從事分散式系統算法和實現,是CuckooFilter、MemC3及高性能多執行緒KV庫libcuckoo的第一作者或聯合作者,在SIGCOMM、SOSP、NSDI、CoNEXT等學術會議及IEEE Transactions on Networking等學術期刊上發表了論文;擁有多項專利,部分學術研究成果已在Alluxio、谷歌、Facebook、英特爾、微軟等高科技公司落地使用。
顧 榮
南京大學計算機科學與技術系助理研究員,Alluxio項目管理委員會成員和源碼維護者;於2016年獲得南京大學計算機專業博士學位,主要研究領域為大數據處理技術與系統;在國際期刊、會議發表論文30餘篇,包括IEEE TPDS、IEEE ICDE、IEEE IPDPS、JPDC、Parallel Computing、ICPP等;擁有多項發明專利;部分研究成果已在英特爾、百度、華泰證券、蘇寧易購、華為、位元組跳動等公司落地使用,或被主流開源大數據系統Apache Spark和Alluxio官方版本集成發布;擔任多種學術期刊審稿人,以及江蘇省計算機學會大數據專委會秘書長、中國計算機學會系統軟體專委會委員。

相關詞條

熱門詞條

聯絡我們