编辑推荐
适读人群:《Kudu:构建高性能实时数据分析存储系统》适合大数据系统的架构师、开发者和咨询师阅读。
目前,限制实时处理技术落地的一个主要因素是其对数据存储系统的挑战性需求。尽管使用Hadoop生态中的一些存储层可以实现这些需求,但是系统会变得相当复杂且难以维护。Kudu的出现为大数据架构师和开发者们带来了新的选择。
Kudu将低延迟随机访问、逐行插入、更新和快速分析扫描融合到一个存储层中,简化了系统设计与维护。
Kudu的目标是把扫描的性能做到HDFS上的Parquet的两倍以内,而随机读的性能则要接近HBase和Cassandra,成为一种各方面条件都适中的选择。
内容简介
要在Hadoop生态系统中实现快速的数据输入、服务和分析,一直以来只有几个可用但是不够完美的解决方案,要么以缓慢的数据输入为代价实现快速分析,要么以缓慢的分析为代价实现快速的数据输入。这个问题现在有了解决办法,使用ApacheKudu基于列的数据存储,你可以很容易地对快速输入的数据进行快速的分析。这就是《Kudu:构建高性能实时数据分析存储系统》的内容。在这《Kudu:构建高性能实时数据分析存储系统》中,你将学习Kudu设计中的关键概念,以及如何用它构建快速、可扩展和可靠的应用程序。通过实际的示例,你将了解Kudu如何与其他Hadoop生态系统组件(如ApacheSpark、SparkSQL和Impala)集成。
作者简介
Jean-MarcSpaggiari,Kudu的早期用户,是Cloudera的主任解决方案架构师,为Hadoop、Kudu、HBase和其他工具提供技术支持和咨询服务。Jean-Marc对HBase和HDFS有深入的了解,这也使他能够更好地理解Kudu及其应用。
常冰琳,现任小米云平台软件工程师,曾在百度和VMWare工作,多年从事分布式系统、大数据和深度学习相关工作。KuduPPMC及Committer。
精彩书评
“O’ReillyRadar博客有口皆碑。”
——Wired
“O’Reilly凭借一系列(真希望当初我也想到了)非凡想法建立了数百万美元的业务。”
——Business2.0
“O’ReillyConference是聚集关键思想领袖的绝对典范。”
——CRN
“一本O’Reilly的书就代表一个有用、有前途、需要学习的主题。”
——IrishTimes
“Tim是位特立独行的商人,他不光放眼于*长远、*广阔的视野并且切实地按照YogiBerra的建议去做了:‘如果你在路上遇到岔路口,走小路(岔路)。’回顾过去,Tim似乎每一次都选择了小路,而且有几次都是转瞬即逝的机会,尽管大路也不错。”
——LinuxJournal
目录
前言...............................................................................XIII
第1章 为什么会有Kudu..................................................1
Kudu为什么重要..................................................................1
易用性驱动接纳度..................................................................................2
新的应用场景.........................................................................................5
物联网...........................................................................................................5
现有的实时分析方案.....................................................................................7
实时处理.....................................................................................................13
硬件环境...............................................................................................15
Kudu在大数据生态中的独特位置........................................................17
与其他生态系统的组件对比.......................................................................19
与大数据组件对比――HDFS、HBase和Cassandra..................................24
小结......................................................................................................26
第2章 Kudu简介..........................................................27
Kudu的高层设计..................................................................................29
Kudu中的角色............................................................................................29
master服务器..............................................................................................31
tablet服务器................................................................................................32
Kudu中的概念与机制..........................................................................42
热点.............................................................................................................42
分区.............................................................................................................44
第3章 安装与运行.........................................................49
安装......................................................................................................49
使用KuduQuickstartVM...........................................................................49
使用ClouderaManager...............................................................................51
从源代码构建..............................................................................................52
软件包.........................................................................................................53
ClouderaQuickstartVM..............................................................................53
快速安装:3分钟或者更短..................................................................54
小结......................................................................................................58
第4章 Kudu的管理.......................................................59
为Kudu做规划.....................................................................................59
master服务器和tablet服务器.....................................................................60
预写日志.....................................................................................................65
数据服务器和存储......................................................................................68
复制策略(replicationstrategy)..................................................................69
部署时的注意事项:是采用新集群还是现有集群................................70
全新的仅有Kudu的集群............................................................................70
全新的包含Kudu的Hadoop集群..............................................................71
在现有的Hadoop集群中添加Kudu...........................................................77
tablet服务器和master服务器的WebUI..............................................81
master服务器UI和tablet服务器UI..........................................................82
master服务器UI.........................................................................................83
tablet服务器UI...........................................................................................83
Kudu命令行接口..................................................................................84
集群.............................................................................................................84
文件系统.....................................................................................................86
tablet副本...................................................................................................92
与Raft一致性相关的元数据.....................................................................106
添加和删除tablet服务器....................................................................107
添加tablet服务器.....................................................................................107
删除tablet服务器.....................................................................................108
安全....................................................................................................109
一个简单的类比........................................................................................110
Kudu的安全功能......................................................................................112
基本的性能调优..................................................................................117
Kudu的内存限制......................................................................................117
维护管理器的线程....................................................................................118
监控性能...................................................................................................119
未雨绸缪,远离麻烦..........................................................................119
避免耗尽磁盘空间....................................................................................119
容忍磁盘故障............................................................................................120
备份...........................................................................................................120
小结....................................................................................................121
第5章 Kudu常用的开发接口.......................................123
客户端API..........................................................................................124
KuduClient(客户端)...............................................................................124
KuduTable................................................................................................125
KuduDDL.................................................................................................125
Kudu扫描器(Scanner)读取模式...........................................................126
C++API..............................................................................................127
PythonAPI..........................................................................................130
准备Python开发环境...............................................................................131
使用Python开发Kudu应用.....................................................................131
Java.....................................................................................................135
Java应用...................................................................................................137
Spark...................................................................................................140
在Impala中使用Kudu.......................................................................145
第6章 表和模式设计...................................................149
模式设计基础.....................................................................................150
在线事务处理/在线分析处理混合的模式设计..................................151
Lambda架构.............................................................................................151
OLTP/OLAP拆分......................................................................................152
主键和列的设计..................................................................................153
列模式的其他注意事项.............................................................................154
分区的基础知识..................................................................................160
范围分区...................................................................................................161
哈希分区...................................................................................................161
模式的更改.........................................................................................162
最佳实践和提示..................................................................................163
分区...........................................................................................................163
大对象.......................................................................................................164
decimal(十进制数)..................................................................................164
不重复的字符串........................................................................................165
压缩...........................................................................................................165
对象的命名................................................................................................165
列的数量...................................................................................................165
二进制类型................................................................................................166
网络包示例.........................................................................................166
小结....................................................................................................168
第7章 Kudu用例........................................................169
实时物联网分析..................................................................................169
预测建模.............................................................................................173
多平台混合方案..................................................................................176
关于作者........................................................................180
封面图片........................................................................182前言/序言
选择存储引擎是实施所有大数据项目时要做的最重要的决定之一,而且更换存储引擎的成本也是最高的。ApacheKudu是Hadoop生态系统中的一个全新存储系统。它的灵活性使我们能够更快地搭建和维护应用程序。在Hadoop开发者的大数据工具箱中,Kudu是一个关键工具。它解决了一些使用目前的Hadoop存储技术很难实现或不可能实现的常见问题。在这《Kudu:构建高性能实时数据分析存储系统》中,你将学习Kudu设计中的关键概念,以及如何用它构建快速、可扩展和可靠的Kudu应用程序。通过实际的示例,你将了解Kudu如何与其他Hadoop生态系统组件(如Spark、SparkSQL和Impala)集成。
《Kudu:构建高性能实时数据分析存储系统》假设读者对Hadoop生态系统组件(如HDFS、Hive、Spark或Impala)有一些使用经验,有Java或Scala编程经验,还有SQL和传统关系型数据库管理系统“使用”经验,熟悉Linuxshell。