日本免费精品视频,男人的天堂在线免费视频,成人久久久精品乱码一区二区三区,高清成人爽a毛片免费网站

在線客服
HBase企業(yè)應用開發(fā)實戰(zhàn)圖書
人氣:24

HBase企業(yè)應用開發(fā)實戰(zhàn)

國內博學Hadoop技術專家實踐經驗結晶,從企業(yè)實際生產環(huán)境和需求出發(fā),旨在幫助企業(yè)真正解決大數(shù)據(jù)的落地問題.

內容簡介

本書強調HBase在企業(yè)的實際應用,立足于企業(yè)的實際生產環(huán)境,旨在幫助企業(yè)切實解決大數(shù)據(jù)技術如何落地的問題。三位作者都是奮戰(zhàn)在中國大數(shù)據(jù)技術一線的實踐派專家,本書是他們實踐經驗的結晶。

本書內容在三個維度上具有重要特色:功能維度,從HBase的安裝配置、參數(shù)設置,到數(shù)據(jù)模型、表結構設計、客戶端使用、高級特性,本書做了系統(tǒng)且詳盡的介紹;實戰(zhàn)維度,不僅通過3個典型的應用案例詳細講解了如何使用HBase設計大型的數(shù)據(jù)應用系統(tǒng),而且還結合實際生產系統(tǒng)講解了HBase的集群運維、監(jiān)控和性能調優(yōu);理論維度,則深入分析了HBase、框架設計、模式設計和基本原理。可謂是理論與實踐結合,深度與廣度兼?zhèn)洌?/p>

編輯推薦

國內博學Hadoop技術專家實踐經驗結晶,從企業(yè)實際生產環(huán)境和需求出發(fā),旨在幫助企業(yè)真正解決大數(shù)據(jù)的落地問題

系統(tǒng)介紹HBase的功能使用、框架設計、基本原理和高級特性;詳細講解使用HBase設計大型數(shù)據(jù)應用系統(tǒng)的實踐方法和技巧;深刻總結系統(tǒng)運維、監(jiān)控和性能調優(yōu)的實踐

作者簡介

馬延輝 博學Hadoop技術專家,對Hadoop生態(tài)系統(tǒng)相關技術有深刻的理解。曾就職于、Answers.com、暴風影音等知名互聯(lián)網公司,從事Hadoop相關的技術工作,在企業(yè)級的大數(shù)據(jù)系統(tǒng)的研發(fā)、運維和管理方面積累了豐富的實戰(zhàn)經驗。開源HBase監(jiān)控工具Ella作者。在國內Hadoop社區(qū)內非常活躍,經常在各種會議和沙龍上做技術分享,深受歡迎。現(xiàn)在專注于大數(shù)據(jù)技術在傳統(tǒng)行業(yè)的落地,致力于大數(shù)據(jù)技術的普及和推廣。

孟鑫 博學Hadoop技術專家,在軟件行業(yè)從業(yè)近10年,對海量數(shù)據(jù)處理技術有著深刻的認識,曾負責Hadoop平臺建設工作,在Hadoop開發(fā)和運維方面積累了大量的實戰(zhàn)經驗。于2013年獲取了Cloudera的Hadoop Developer認證,多次到企業(yè)和社區(qū)去分享Hadoop、HBase等方面的技術知識和經驗。對技術擁有極大的興趣,熱衷于研究各種新技術,總結和分享經驗及教訓,目前從事管理工作,但依然熱衷于產品設計和實現(xiàn)。

李立松 博學Hadoop技術專家,Easyhadoop技術社區(qū)創(chuàng)始人之一,對HDFS、MapReduce、HBase、Hive等Hadoop生態(tài)系統(tǒng)中的技術有比較深入的研究,在Hadoop開發(fā)方面積累了豐富的經驗。曾就職于暴風,負責暴風大數(shù)據(jù)平臺開發(fā)與應用,暴風大數(shù)據(jù)項目負責人。現(xiàn)在就職于締元信,擔任Hadoop高級工程師,負責締元信DMP平臺的研發(fā)工作。

目錄

前 言

及時部分 基礎篇

第1章 認識HBase

1.1 理解大數(shù)據(jù)背景

1.1.1 什么是大數(shù)據(jù)

1.1.2 為何大數(shù)據(jù)至關重要

1.1.3 NoSQL在大數(shù)據(jù)中扮演的角色

1.2 HBase是什么

1.2.1 HBase的發(fā)展歷史

1.2.2 HBase的發(fā)行版本

1.2.3 HBase的特性

1.3 HBase與Hadoop的關系

1.4 HBase的核心功能模塊

1.4.1 客戶端Client

1.4.2 協(xié)調服務組件ZooKeeper

1.4.3 主節(jié)點HMaster

1.4.4 Region節(jié)點HRegionServer

1.5 HBase的使用場景和經典案例

1.5.1 搜索引擎應用

1.5.2 增量數(shù)據(jù)存儲

1.5.3 用戶內容服務

1.5.4 實時消息系統(tǒng)構建

1.6 本章小結

第2章 HBase安裝與配置

2.1 先決條件

2.2 HBase運行模式

2.2.1 單機模式

2.2.2 分布式模式

2.3 HBase的Web UI

2.4 HBase Shell工具使用

2.5 停止HBase集群

2.6 本章小結

第3章 數(shù)據(jù)模型

3.1 兩類數(shù)據(jù)模型

3.1.1 邏輯模型

3.1.2 物理模型

3.2 數(shù)據(jù)模型的重要概念

3.2.1 表

3.2.2 行鍵

3.2.3 列族

3.2.4 單元格

3.3 數(shù)據(jù)模型的操作

3.3.1 讀Get

3.3.2 寫Put

3.3.3 掃描Scan

3.3.4 刪除Delete

3.4 數(shù)據(jù)模型的特殊屬性

3.4.1 版本

3.4.2 排序

3.4.3 列的元數(shù)據(jù)

3.4.4 連接查詢

3.4.5 計數(shù)器

3.4.6 原子操作

3.4.7 事務特性ACID

3.4.8 行鎖

3.4.9 自動分區(qū)

3.5 CAP原理與最終一致性

3.6 本章小結

第4章 HBase表結構設計

4.1 模式創(chuàng)建

4.2 Rowkey設計

4.3 列族定義

4.3.1 可配置的數(shù)據(jù)塊大小

4.3.2 數(shù)據(jù)塊緩存

4.3.3 布隆過濾器

4.3.4 數(shù)據(jù)壓縮

4.3.5 單元時間版本

4.3.6 生存時間

4.4 模式設計實例

4.4.1 實例1:動物分類

4.4.2 實例2:店鋪與商品

4.4.3 實例3:網上商城用戶消費記錄

4.4.4 實例4:微博用戶與粉絲

4.5 本章小結

第5章 HBase客戶端

5.1 精通原生Java客戶端

5.1.1 客戶端配置

5.1.2 創(chuàng)建表

5.1.3 刪除表

5.1.4 插入數(shù)據(jù)

5.1.5 查詢數(shù)據(jù)

5.1.6 刪除數(shù)據(jù)

5.1.7 過濾查詢

5.2 使用HBase Shell工具操作HBase

5.2.1 命令分類

5.2.2 常規(guī)命令

5.2.3 DDL命令

5.2.4 DML命令

5.2.5 工具命令Tools

5.2.6 復制命令

5.2.7 安全命令

5.3 使用Thrift客戶端訪問HBase

5.3.1 Thrift與Thrift2區(qū)別

5.3.2 安裝與部署Thrift2

5.3.3 Python使用案例

5.4 通過REST客戶端訪問HBase

5.4.1 啟動服務

5.4.2 使用REST訪問example表

5.5 使用MapReduce批量操作HBase

5.5.1 三種訪問模式

5.5.2 實現(xiàn)MapReduce API

5.5.3 HBase作為輸入源示例

5.5.4 HBase作為輸出源示例

5.5.5 HBase作為共享源示例

5.6 通過Web UI工具查看HBase狀態(tài)

5.6.1 Master狀態(tài)界面

5.6.2 RegionServer狀態(tài)界面

5.6.3 ZooKeeper統(tǒng)計信息頁面

5.7 其他客戶端

5.8 本章小結

第二部分 實戰(zhàn)篇

第6章 整合SQL引擎層

6.1 NoSQL背景知識

6.1.1 什么是NoSQL

6.1.2 將SQL整合到HBase的原因

6.1.3 基于HBase的SQL引擎實現(xiàn)

6.2 Hive整合HBase的實現(xiàn)

6.2.1 認識Hive

6.2.2 Hive整合HBase的環(huán)境準備

6.2.3 Linux環(huán)境下重新編譯Hive

6.2.4 Hive參數(shù)配置

6.2.5 啟動Hive

6.2.6 Hive與HBase整合后的框架如何使用

6.2.7 HBase到Hive的字段映射

6.2.8 多列與Hive Map類型

6.3 查詢引擎Phoenix

6.3.1 認識Phoenix

6.3.2 Phoenix安裝環(huán)境準備

6.3.3 Phoenix安裝部署

6.3.4 Phoenix源碼編譯

6.3.5 Phoenix中SQLLine的快速使用

6.3.6 使用JDBC訪問Phoenix

6.4 對象映射框架Kundera

6.4.1 認識Kundera

6.4.2 Kundera的客戶端API快速使用

6.4.3 Kundera模塊介紹

6.4.4 Kundera的REST訪問方式

6.5 分布式SQL引擎Lealone

6.5.1 認識Lealone

6.5.2 Lealone的安裝部署

6.5.3 通過JDBC訪問Lealone

6.5.4 通過Python訪問Lealone

6.5.5 Lealone特有的建表語法

6.6 本章小結

第7章 構建音樂站用戶屬性庫

7.1 案例背景

7.1.1 音樂站

7.1.2 需求概述

7.1.3 需求范圍和系統(tǒng)邊界

7.1.4 需求詳述

7.1.5 名詞解釋

7.2 概要設計

7.2.1 設計目標

7.2.2 數(shù)據(jù)規(guī)模假設

7.2.3 功能指標

7.2.4 系統(tǒng)流程

7.3 表結構設計

7.3.1 功能抽象

7.3.2 邏輯結構

7.3.3 Rowkey設計

7.3.4 列族設計

7.3.5 版本定義

7.3.6 優(yōu)化屬性定義

7.4 數(shù)據(jù)加載

7.4.1 加載流程

7.4.2 Mapper類

7.4.3 Main類

7.4.4 運行

7.5 數(shù)據(jù)檢索

7.5.1 HBaseTable

7.5.2 HBaseAdmin

7.5.3 幾種檢索類型

7.6 后臺查詢

7.6.1 二級索引實現(xiàn)

7.6.2 后臺查詢系統(tǒng)

7.7 本章小結

第8章 構建廣告實時計算系統(tǒng)

8.1 理解廣告數(shù)據(jù)和流處理框架

8.1.1 網絡廣告的幾大特性

8.1.2 網絡廣告的數(shù)據(jù)類型

8.1.3 流處理框架

8.1.4 背景與需求描述

8.2 概要設計

8.2.1 設計目標

8.2.2 主要功能

8.2.3 系統(tǒng)架構

8.3 詳細設計

8.3.1 表結構設計

8.3.2 功能模塊設計

8.4 核心功能實現(xiàn)

8.4.1 規(guī)劃集群環(huán)境部署

8.4.2 安裝ZooKeeper集群

8.4.3 安裝Kafka分布式集群

8.4.4 實現(xiàn)Kafka生產者

8.4.5 安裝Storm分布式集群

8.4.6 查看集群節(jié)點部署情況

8.4.7 基于Storm-kafka中間件實現(xiàn)計算邏輯

8.4.8 如何使用HBase中統(tǒng)計數(shù)據(jù)

8.5 本章小結

第三部分 高級篇

第9章 核心概念

9.1 核心結構

9.1.1 B+樹

9.1.2 LSM樹

9.1.3 兩種結構本質區(qū)別

9.2 底層持久化

9.2.1 存儲基本架構

9.2.2 HDFS文件

9.2.3 Region切分

9.2.4 合并

9.2.5 HFile格式

9.2.6 KeyValue格式

9.3 預寫日志

9.3.1 概要流程

9.3.2 相關Java類

9.3.3 日志回放

9.3.4 日志一致性

9.4 寫入流程

9.4.1 客戶端

9.4.2 服務器端

9.5 查詢流程

9.5.1 兩種查詢操作

9.5.2 客戶端

9.5.3 服務器端

9.6 數(shù)據(jù)備份

9.6.1 備份機制架構

9.6.2 故障恢復

9.7 數(shù)據(jù)壓縮

9.7.1 支持的壓縮算法

9.7.2 使用配置

9.8 本章小結

第10章 HBase高級特性

10.1 過濾器

10.1.1 過濾器的兩類參數(shù)

10.1.2 比較器

10.1.3 列值過濾器

10.1.4 鍵值元數(shù)據(jù)過濾器

10.1.5 行鍵過濾器

10.1.6 功能過濾器

10.1.7 Thrift使用過濾器

10.1.8 過濾器總結

10.2 計數(shù)器

10.2.1 使用Shell操作計數(shù)器

10.2.2 基于單列的計數(shù)器

10.2.3 多列計數(shù)器

10.3 協(xié)處理器

10.3.1 認識協(xié)處理器

10.3.2 觀察者Observer

10.3.3 終端EndPoint

10.3.4 協(xié)處理器部署

10.4 Schema設計要點

10.4.1 行鍵設計

10.4.2 列族設計

10.5 二級索引

10.5.1 Client-managed方式

10.5.2 ITHBase實現(xiàn)

10.5.3 IHBase實現(xiàn)

10.5.4 Coprocessor方式

10.5.5 MapReduce兩種方式

10.6 布隆過濾器

10.6.1 基本概念

10.6.2 配置布隆過濾器

10.6.3 使用布隆過濾器

10.7 負載均衡

10.7.1 全局計劃

10.7.2 隨機分配計劃

10.7.3 批量啟動分配計劃

10.7.4 通過Shell控制負載均衡

10.8 批量加載

10.8.1 準備數(shù)據(jù):importtsv

10.8.2 加載數(shù)據(jù):completebulkload

10.9 本章小結

第11章 集群運維管理

11.1 HBase常用工具

11.1.1 文件檢測修復工具hbck

11.1.2 文件查看工具hfile

11.1.3 WAL日志查看工具hlog

11.1.4 壓縮測試工具CompressionTest

11.1.5 數(shù)據(jù)遷移工具CopyTable

11.1.6 導出工具export

11.1.7 導入工具Import

11.1.8 日志回放工具WALPlayer

11.1.9 行數(shù)統(tǒng)計工具RowCounter

11.2 Region和RegionServer管理

11.2.1 大合并工具major_compact

11.2.2 Region合并工具Merge

11.2.3 下線節(jié)點

11.2.4 滾動重啟

11.3 性能指標Metrics

11.3.1 Master Metrics

11.3.2 RegionServer Metrics

11.3.3 RPC Metrics

11.3.4 JVM Metrics

11.3.5 集群屬性Metrics

11.4 監(jiān)控系統(tǒng)Ganglia

11.4.1 HBase監(jiān)控指標

11.4.2 安裝、部署和使用Ganglia

11.5 HBase管理擴展JMX

11.5.1 如何使用JMX

11.5.2 基于JMX的監(jiān)控工具Ella

11.6 報警工具Nagios

11.7 故障處理

11.7.1 問題咨詢渠道

11.7.2 常用日志信息

11.7.3 常用故障調試工具

11.7.4 客戶端故障排查

11.7.5 MapReduce故障排查

11.7.6 網絡故障排查

11.7.7 RegionServer相關問題解決

11.7.8 Master相關問題解決

11.7.9 ZooKeeper相關問題解決

11.8 集群備份

11.8.1 冷備份

11.8.2 熱備份之Replication

11.8.3 熱備份之CopyTable

11.8.4 熱備份之Export

11.9 本章小結

第12章 性能調優(yōu)

12.1 硬件和操作系統(tǒng)調優(yōu)

12.1.1 配置內存

12.1.2 配置CPU

12.1.3 操作系統(tǒng)

12.2 網絡通信調優(yōu)

12.2.1 配置交換機

12.2.2 添加機架感知

12.3 JVM優(yōu)化

12.3.1 Java垃圾回收算法

12.3.2 Java垃圾收集器

12.3.3 垃圾回收器的選擇

12.3.4 JVM參數(shù)設置

12.4 HBase查詢優(yōu)化

12.4.1 設置Scan緩存

12.4.2 顯式地指定列

12.4.3 關閉ResultScanner

12.4.4 禁用塊緩存

12.4.5 優(yōu)化行鍵查詢

12.4.6 通過HTableTool訪問

12.4.7 使用批量讀

12.4.8 使用Filter降低客戶端壓力

12.4.9 使用Coprocessor統(tǒng)計行數(shù)

12.4.10 緩存查詢結果

12.5 HBase寫入優(yōu)化

12.5.1 關閉寫WAL日志

12.5.2 設置AutoFlush

12.5.3 預創(chuàng)建Region

12.5.4 延遲日志flush

12.5.5 通過HTableTool訪問

12.5.6 使用批量寫

12.6 HBase基本核心服務優(yōu)化

12.6.1 優(yōu)化分裂操作

12.6.2 優(yōu)化合并操作

12.7 HBase配置參數(shù)優(yōu)化

12.7.1 設置RegionServer Handler數(shù)量

12.7.2 調整BlockCache大小

12.7.3 設置MemStore的上下限

12.7.4 調整影響合并的文件數(shù)

12.7.5 調整MemStore的flush因子

12.7.6 調整單個文件大小

12.7.7 調整ZooKeeper Session的有效時長

12.8 分布式協(xié)調系統(tǒng)ZooKeeper優(yōu)化

12.8.1 配置ZooKeeper節(jié)點數(shù)

12.8.2 獨立ZooKeeper集群

12.9 表設計優(yōu)化

12.9.1 開啟布隆過濾器

12.9.2 調整列族塊大小

12.9.3 設置In Memory屬性

12.9.4 調整列族較大版本數(shù)

12.9

在線預覽

及時部分 Part 1

基 礎 篇

第1章 認識HBase

第2章 HBase安裝與配置

第3章 數(shù)據(jù)模型

第4章 HBase表結構設計

第5章 HBase客戶端

Chapter 1 第1章

認識HBase

本章將介紹大數(shù)據(jù)背景和HBase的基本概念,從大數(shù)據(jù)引申到NoSQL,并闡述HBase出現(xiàn)的契機。隨后,將介紹HBase的概念、發(fā)展歷史、發(fā)行版本和基本特性。其中,HBase的核心功能模塊將作為一個小節(jié)單獨重點介紹,通過介紹HBase的使用場景和經典案例,讓讀者朋友能夠清晰地了解HBase可以做什么。

作為NoSQL家庭的一員,HBase的出現(xiàn)彌補了Hadoop只能離線批處理的不足,同時能夠存儲小文件,提供海量數(shù)據(jù)的隨機檢索,并保障一定的性能。而這些特性也完善了整個Hadoop生態(tài)系統(tǒng),泛化其大數(shù)據(jù)的處理能力,結合其高性能、穩(wěn)定、擴展性好的特行,給使用大數(shù)據(jù)的企業(yè)帶來了福音。

因為本章是全書的開篇,唯有簡明扼要地介紹才能幫助正在學習和想要學習HBase的讀者,所以本章將提綱掣領地介紹HBase的相關知識,重點介紹HBase是什么以及HBase能做什么兩部分。

1.1 理解大數(shù)據(jù)背景

經美國機構IDC調查發(fā)現(xiàn),現(xiàn)如今的公司正在以前所未有的速度和豐富的類型產生數(shù)據(jù),并且也有能力存儲這些數(shù)據(jù),但是,如何關聯(lián)這兩方面以便產生較大的商業(yè)價值,是所有公司共同面臨的挑戰(zhàn)。這個問題非常復雜:雖然業(yè)務人員在技能提升和專業(yè)工具的幫助下,越來越了解數(shù)據(jù),但由于數(shù)據(jù)的增長速度越來越快,積累量級越來越大,公司可以利用的數(shù)據(jù)比例正在迅速下降。

1.1.1 什么是大數(shù)據(jù)

Gartner認為與過去相關概念相比,大數(shù)據(jù)強調3V特征,即Volume(量級)、Varity(種類)和Velocity(速度),如圖1-1所示。

圖1-1 大數(shù)據(jù)三大特性

如今存儲的數(shù)據(jù)量正在急劇增長,2000年全球存儲了EB級別的數(shù)據(jù),預計到2020年,該值將變?yōu)閆B級別。僅Twitter每天就會生成超過10TB的數(shù)據(jù),F(xiàn)acebook的數(shù)據(jù)為幾十TB,一些特殊的企業(yè)在每小時就會產生TB級別的數(shù)據(jù)。

上面這些企業(yè)是一些典型的案例,其實我們生活的方方面面都會形成很多"軌跡"。例如,打開手機會生成一個事件;乘坐公共交通刷卡,這是一個事件;檢票登機、打卡上班、App Store上購買應用、更換電視頻道、使用高速路電子收費系統(tǒng)等。每一項操作都會生成數(shù)據(jù),并且該數(shù)據(jù)的量級與參與的人數(shù)相關,全球60億人口,如果僅僅1/10的人參與進來,那么這個數(shù)據(jù)量級就已經非常驚人。就在10年前IT界超過1TB的數(shù)據(jù)倉庫屈指可數(shù),而現(xiàn)在則是"舉不勝舉"。

隨著傳感器、智能設備以及社交協(xié)作技術的激增,企業(yè)中的數(shù)據(jù)也變得更加復雜,因為它不僅包含傳統(tǒng)的關系型數(shù)據(jù),還包含來自網頁、Web日志文件、社交媒體論壇、電子郵件、文檔、傳感器數(shù)據(jù)等原始、半結構化和非結構化數(shù)據(jù)。

傳統(tǒng)系統(tǒng)可能很難存儲、分析這些數(shù)據(jù)的內容,更不要說挖掘有價值的信息。因為傳統(tǒng)的數(shù)據(jù)庫、數(shù)據(jù)倉庫、聯(lián)機事務處理等技術并不適合處理這些數(shù)據(jù)。盡管一些公司正在朝大數(shù)據(jù)方向大力發(fā)展,但總體而言,大部分公司只是剛開始理解大數(shù)據(jù)。當回首整個數(shù)據(jù)庫發(fā)展的歷程會發(fā)現(xiàn),人們將大部分時間都花在僅20%的數(shù)據(jù)上:這些數(shù)據(jù)格式整齊且符合嚴格模式的關系類型。但事實是,全球80%的數(shù)據(jù)是非結構化的或者半結構化的。

視頻和圖片不能輕松或高效地存儲在關系型數(shù)據(jù)庫中,某些事件信息可能動態(tài)地更改(如氣象),它們不太適合嚴格的模式。要利用大數(shù)據(jù),企業(yè)必須能夠分析所有類型的數(shù)據(jù),包括關系和非關系數(shù)據(jù):文本、傳感器數(shù)據(jù)、音頻和視頻等。

有效處理大數(shù)據(jù)需要在數(shù)據(jù)變化的過程中對它的數(shù)量和種類進行分析,而不只是在"靜止"狀態(tài)進行分析。業(yè)界定義這種情況為從單純批量計算模式到實時動態(tài)計算模式的內涵式轉變。內涵式在這里也比較容易理解,即結構優(yōu)化、質量提高,是一種實現(xiàn)實質性的跨越式的進程。大數(shù)據(jù)平臺允許用戶將所有數(shù)據(jù)存儲為其原生的業(yè)務對象格式,通過可用組件上的大規(guī)模并行計算實現(xiàn)價值,不僅僅是批量處理和離線分析,同時支持實時查詢和處理等特征,甚至要求響應時間在毫秒級別,并且可承受大規(guī)模的并發(fā)訪問,這些都是"速度"特征的范疇。

網友評論(不代表本站觀點)

免責聲明

更多出版社