産品特色
編輯推薦
Hive圖書。
Hive在Hadoop係統中的應用趨勢比較可觀。
內容簡介
《Hive編程指南》是一本ApacheHive的編程指南,旨在介紹如何使用Hive的SQL方法——HiveQL來匯總、查詢和分析存儲在Hadoop分布式文件係統上的大數據集閤。《Hive編程指南》通過大量的實例,首先介紹如何在用戶環境下安裝和配置Hive,並對Hadoop和MapReduce進行詳盡闡述,演示Hive如何在Hadoop生態係統進行工作。
《Hive編程指南》適閤對大數據感興趣的愛好者以及正在使用Hadoop係統的數據庫管理員閱讀使用。
作者簡介
Edward Capriolo:Media6degrees公司係統管理員,他是Apache軟件基金會成員,還是Hadoop-Hive項目成員。
Dean Wampler:Think Big Analytics公司總顧問,對大數據問題以及Hadoop和機器學習有專門的研究。
Jason Rutherglen:Think Big Analytics公司軟件架構師,對大數據、Hadoop、搜索和安全有專門的研究。
內頁插圖
目錄
第1章 基礎知識
1.1 Hadoop和MapReduce綜述
1.2 Hadoop生態係統中的Hive
1.2.1 Pig
1.2.2 HBase
1.2.3 Cascading、Crunch及其他
1.3 Java和Hive:詞頻統計算法
1.4 後續事情
第2章 基礎操作
2.1 安裝預先配置好的虛擬機
2.2 安裝詳細步驟
2.2.1 裝Java
2.2.2 安裝Hadoop
2.2.3 本地模式、僞分布式模式和分布式模式
2.2.4 測試Hadoop
2.2.5 安裝Hive
2.3 Hive內部是什麼
2.4 啓動Hive
2.5 配置Hadoop環境
2.5.1 本地模式配置
2.5.2 分布式模式和僞分布式模式配置
2.5.3 使用JDBC連接元數據
2.6 Hive命令
2.7 命令行界麵
2.7.1 CLI 選項
2.7.2 變量和屬性
2.7.3 Hive中“一次使用”命令
2.7.4 從文件中執行Hive查詢
2.7.5 hiverc文件
2.7.6 使用Hive CLI的更多介紹
2.7.7 查看操作命令曆史
2.7.8 執行shell命令
2.7.9 在Hive內使用Hadoop的dfs命令
2.7.10 Hive腳本中如何進行注釋
2.7.11 顯示字段名稱
第3章 數據類型和文件格式
3.1 基本數據類型
3.2 集閤數據類型
3.3 文本文件數據編碼
3.4 讀時模式
第4章 HiveQL:數據定義
4.1 Hive中的數據庫
4.2 修改數據庫
4.3 創建錶
4.3.1 管理錶
4.3.2 外部錶
4.4 分區錶、管理錶
4.4.1 外部分區錶
4.4.2 自定義錶的存儲格式
4.5 刪除錶
4.6 修改錶
4.6.1 錶重命名
4.6.2 增加、修改和刪除錶分區
4.6.3 修改列信息
4.6.4 增加列
4.6.5 刪除或者替換列
4.6.6 修改錶屬性
4.6.7 修改存儲屬性
4.6.8 眾多的修改錶語句
第5章 HiveQL:數據操作
5.1 嚮管理錶中裝載數據
5.2 通過查詢語句嚮錶中插入數據
5.3 單個查詢語句中創建錶並加載數據
5.4 導齣數據
第6章 HiveQL:查詢
6.1 SELECT…FROM語句
6.1.1 使用正則錶達式來指定列
6.1.2 使用列值進行計算
6.1.3 算術運算符
6.1.4 使用函數
6.1.5 LIMIT語句
6.1.6 列彆名
6.1.7 嵌套SELECT語句
6.1.8 CASE…WHEN…THEN 句式
6.1.9 什麼情況下Hive可以避免進行MapReduce
6.2 WHERE語句
6.2.1 謂詞操作符
6.2.2 關於浮點數比較
6.2.3 LIKE和RLIKE
6.3 GROUP BY 語句
6.4 JOIN語句
6.4.1 INNER JOIN
6.4.2 JOIN優化
6.4.3 LEFT OUTER JOIN
6.4.4 OUTER JOIN
6.4.5 RIGHT OUTER JOIN
6.4.6 FULL OUTER JOIN
6.4.7 LEFT SEMI-JOIN
6.4.8 笛卡爾積JOIN
6.4.9 map-side JOIN
6.5 ORDER BY和SORT BY
6.6 含有SORT BY 的DISTRIBUTE BY
6.7 CLUSTER BY
6.8 類型轉換
6.9 抽樣查詢
6.9.1 數據塊抽樣
6.9.2 分桶錶的輸入裁剪
6.10 UNION ALL
第7章 HiveQL:視圖
7.1 使用視圖來降低查詢復雜度
7.2 使用視圖來限製基於條件過濾的數據
7.3 動態分區中的視圖和map類型
7.4 視圖零零碎碎相關的事情
第8章 HiveQL:索引
8.1 創建索引
8.2 重建索引
8.3 顯示索引
8.4 刪除索引
8.5 實現一個定製化的索引處理器
第9章 模式設計
9.1 按天劃分的錶
9.2 關於分區
9.3 唯一鍵和標準化
9.4 同一份數據多種處理
9.5 對於每個錶的分區
9.6 分桶錶數據存儲
9.7 為錶增加列
9.8 使用列存儲錶
9.8.1 重復數據
9.8.2 多列
9.9 (幾乎)總是使用壓縮
第10章 調優
10.1 使用EXPLAIN
10.2 EXPLAIN EXTENDED
10.3 限製調整
10.4 JOIN優化
10.5 本地模式
10.6 並行執行
10.7 嚴格模式
10.8 調整mapper和reducer個數
10.9 JVM重用
10.10 索引
10.11 動態分區調整
10.12 推測執行
10.13 單個MapReduce中多個GROUP BY
10.14 虛擬列
第11章 其他文件格式和壓縮方法
11.1 確定安裝編解碼器
11.2 選擇一種壓縮編/解碼器
11.3 開啓中間壓縮
11.4 最終輸齣結果壓縮
11.5 sequence file存儲格式
11.6 使用壓縮實踐
11.7 存檔分區
11.8 壓縮:包紮
第12章 開發
12.1 修改Log4J屬性
12.2 連接Java調試器到Hive
12.3 從源碼編譯Hive
12.3.1 執行Hive測試用例
12.3.2 執行hook
12.4 配置Hive和Eclipse
12.5 Maven工程中使用Hive
12.6 Hive中使用hive_test進行單元測試
12.7 新增的插件開發工具箱(PDK)
第13章 函數
13.1 發現和描述函數
13.2 調用函數
13.3 標準函數
13.4 聚閤函數
13.5 錶生成函數
13.6 一個通過日期計算其星座的UDF
13.7 UDF與GenericUDF
13.8 不變函數
13.9 用戶自定義聚閤函數
13.10 用戶自定義錶生成函數
13.10.1 可以産生多行數據的UDTF
13.10.2 可以産生具有多個字段的單行數據的UDTF
13.10.3 可以模擬復雜數據類型的UDTF
13.11 在 UDF中訪問分布式緩存
13.12 以函數的方式使用注解
13.12.1 定數性(deterministic)標注
13.12.2 狀態性(stateful)標注
13.12.3 唯一性
13.13 宏命令
第14章 Streaming
14.1 恒等變換
14.2 改變類型
14.3 投影變換
14.4 操作轉換
14.5 使用分布式內存
14.6 由一行産生多行
14.7 使用streaming進行聚閤計算
14.8 CLUSTER BY、DISTRIBUTE BY、SORT BY
14.9 GenericMR Tools for Streaming to Java
14.10 計算cogroup
第15章 自定義Hive文件和記錄格式
15.1 文件和記錄格式
15.2 闡明CREATE TABLE句式
15.3 文件格式
15.3.1 SequenceFile
15.3.2 RCfile
15.3.3 示例自定義輸入格式:DualInputFormat
15.4 記錄格式:SerDe
15.5 CSV和TSV SerDe
15.6 ObjectInspector
15.7 Thing Big Hive Reflection ObjectInspector
15.8 XML UDF
15.9 XPath相關的函數
15.10 JSON SerDe
15.11 Avro Hive SerDe
15.11.1 使用錶屬性信息定義Avro Schema
15.11.2 從指定URL中定義Schema
15.11.3 進化的模式
15.12 二進製輸齣
第16章 Hive的Thrift服務
16.1 啓動Thrift Server
16.2 配置Groovy使用HiveServer
16.3 連接到HiveServer
16.4 獲取集群狀態信息
16.5 結果集模式
16.6 獲取結果
16.7 獲取執行計劃
16.8 元數據存儲方法
16.9 管理HiveServer
16.9.1 生産環境使用HiveServer
16.9.2 清理
16.10 Hive ThriftMetastore
16.10.1 ThriftMetastore 配置
16.10.2 客戶端配置
第17章 存儲處理程序和NoSQL
17.1 Storage Handler Background
17.2 HiveStorageHandler
17.3 HBase
17.4 Cassandra
17.4.1 靜態列映射(Static Column Mapping)
17.4.2 為動態列轉置列映射
17.4.3 Cassandra SerDe Properties
17.5 DynamoDB
第18章 安全
18.1 和Hadoop安全功能相結閤
18.2 使用Hive進行驗證
18.3 Hive中的權限管理
18.3.1 用戶、組和角色
18.3.2 Grant 和 Revoke權限
18.4 分區級彆的權限
18.5 自動授權
第19章 鎖
19.1 Hive結閤Zookeeper支持鎖功能
19.2 顯式鎖和獨占鎖
第20章 Hive和Oozie整閤
20.1 Oozie提供的多種動作(Action)
20.2 一個隻包含兩個查詢過程的工作流示例
20.3 Oozie 網頁控製颱
20.4 工作流中的變量
20.5 獲取輸齣
20.6 獲取輸齣到變量
第21章 Hive和亞馬遜網絡服務係統(AWS)
21.1 為什麼要彈性MapReduce
21.2 實例
21.3 開始前的注意事項
21.4 管理自有EMR Hive集群
21.5 EMR Hive上的Thrift Server服務
21.6 EMR上的實例組
21.7 配置EMR集群
21.7.1 部署hive-site.xml文件
21.7.2 部署.hiverc腳本
21.7.3 建立一個內存密集型配置
21.8 EMR上的持久層和元數據存儲
21.9 EMR集群上的HDFS和S
21.10 在S3上部署資源、配置和輔助程序腳本
21.11 S3上的日誌
21.12 現買現賣
21.13 安全組
21.14 EMR和EC2以及Apache Hive的比較
21.15 包裝
第22章 HCatalog
22.1 介紹
22.2 MapReduce
22.2.1 讀數據
22.2.2 寫數據
22.3 命令行
22.4 安全模型
22.5 架構
第23章 案例研究
23.1 m6d.com(Media6Degrees)
23.1.1 M 6D的數據科學,使用Hive和R
23.1.2 M6D UDF僞隨機
23.1.3 M6D如何管理多MapReduce集群間的Hive數據訪問
23.2 Outbrain
23.2.1 站內綫上身份識彆
23.2.2 計算復雜度
23.2.3 會話化
23.3 NASA噴氣推進實驗室
23.3.1 區域氣候模型評價係統
23.3.2 我們的經驗:為什麼使用Hive
23.3.3 解決這些問題我們所麵臨的挑戰
23.4 Photobucket
23.4.1 Photobucket 公司的大數據應用情況
23.4.2 Hive所使用的硬件資源信息
23.4.3 Hive提供瞭什麼
23.4.4 Hive支持的用戶有哪些
23.5 SimpleReach
23.6 Experiences and Needs from the Customer Trenches
23.6.1 介紹
23.6.2 Customer Trenches的用例
術語詞匯錶
精彩書摘
第1章 基礎知識
從早期的互聯網主流大爆發開始,主要的搜索引擎公司和電子商務公司就一直在和不斷增長的數據進行較量。最近,社交網站也遇到瞭同樣的問題。如今,許多組織已經意識到他們所收集的數據是讓他們瞭解他們的用戶,提高業務在市場上的錶現以及提高基礎架構效率的一個寶貴的資源。
Hadoop生態係統就是為處理如此大數據集而産生的一個閤乎成本效益的解決方案。Hadoop實現瞭一個特彆的計算模型,也就是MapReduce,其可以將計算任務分割成多個處理單元然後分散到一群傢用的或服務器級彆的硬件機器上,從而降低成本並提供水平可伸縮性。這個計算模型的下麵是一個被稱為Hadoop分布式文件係統(HDFS)的分布式文件係統。這個文件係統是“可插拔的”,而且現在已經齣現瞭幾個商用的和開源的替代方案。
不過,仍然存在一個挑戰,那就是用戶如何從一個現有的數據基礎架構轉移到I~adoop上,而這個基礎架構是基於傳統關係型數據庫和結構化查詢語句(SQL)的。對於大量的SQL用戶(包括專業數據庫設計師和管理員,也包括那些使用SQL從數據倉庫中抽取信息的臨時用戶)來說,這個問題又將如何解決呢?
這就是Hive齣現的原因。Hive提供瞭一個被稱為Hive查詢語言(簡稱HiveQL或HQL)的SQL方言,來查詢存儲在Hadoop集群中的數據。
SQL知識分布廣泛的一個原因是:它是一個可以有效地、閤理地且直觀地組織和使用數據的模型。即使對於經驗豐富的Java開發工程師來說,將這些常見的數據運算對應到底層的MapReduceJavaAPI也是令人畏縮的。Hive可以幫助用戶來做這些苦活,這樣用戶就可以集中精力關注於查詢本身瞭。Hlve可以將大多數的查詢轉換為
MapReduce任務(job),進而在介紹一個令人熟悉的SOL抽象的同時,拓寬Hadoop的可擴展性。如果用戶對此存在疑惑,請參考稍後部分的第1.3節“Java和Hive:詞頻統計算法”中的相關介紹。
……
前言/序言
本書是一本Hive的編程指南。Hive是Htadoop生態係統中必不可少的一個工具,它提供瞭一種SQL(結構化查詢語言)方言,可以查詢存儲在Htadoop分布式文件係統(HDFS)中的數據或其他和IIadoop集成的文件係統,如MapR—FS、Anlazon的s3和像HBase(Htadoop數據庫)和cassandra這樣的數據庫中的數據。
大多數數據倉庫應用程序都是使用關係數據庫進行實現的,並使用SQL作為查詢語言。Hive降低瞭將這些應用程序轉移到Htadoop係統上的難度。凡是會使用SOL語言的開發人員都可以很輕鬆地學習並使用Hive。如果沒有Hive,那麼這些用戶就必須學習新的語言和工具,然後纔能應用到生産環境中。另外,相比其他工具,Hive更便於開發人員將基於SQL的應用程序轉移到}tadoop中。如果沒有Hive,那麼開發者將麵臨一個艱巨的挑戰,如何將他們的SOL應用程序移植到Hadoop上。
不過,Hive和其他基於SOL的環境還是有一些差異的。如今,可供Hive用戶和}tadoop開發者使用的文檔並不多,所以我們決定撰寫這本書來填補這個缺口。我們將對Hive進行全麵詳實的介紹,主要適用於SQL專傢,如數據庫設計人員和業務分析師。我們也談到瞭深入的技術細節,可以幫助Htadoop開發人員對Hive進行調優和定製。
Hive編程指南 [Programming Hive] 下載 mobi epub pdf txt 電子書