猜你喜欢
Kudu:构建高性能实时数据分析存储系统

Kudu:构建高性能实时数据分析存储系统

书籍作者:Jean-Marc Spaggiari ISBN:9787121295416
书籍语言:简体中文 连载状态:全集
电子书格式:pdf,txt,epub,mobi,azw3 下载次数:9391
创建日期:2021-02-14 发布日期:2021-02-14
运行环境:PC/Windows/Linux/Mac/IOS/iPhone/iPad/Kindle/Android/安卓/平板
内容简介

要在Hadoop生态系统中实现快速的数据输入、服务和分析,一直以来只有几个可用但是不够完美的解决方案,要么以缓慢的数据输入为代价实现快速分析,要么以缓慢的分析为代价实现快速的数据输入。这个问题现在有了解决办法,使用Apache Kudu基于列的数据存储,你可以很容易地对快速输入的数据进行快速的分析。这就是本书的内容。在这本书中,你将学习Kudu设计中的关键概念,以及如何用它构建快速、可扩展和可靠的应用程序。通过实际的示例,你将了解Kudu如何与其他Hadoop生态系统组件(如Apache Spark、SparkSQL和Impala)集成。

作者简介

Jean-Marc Spaggiari,Kudu的早期用户,是Cloudera的主任解决方案架构师,为Hadoop、Kudu、HBase和其他工具提供技术支持和咨询服务。Jean-Marc对HBase和HDFS有深入的了解,这也使他能够更好地理解Kudu及其应用。

常冰琳,现任小米云平台软件工程师,曾在百度和VMWare工作,多年从事分布式系统、大数据和深度学习相关工作。Kudu PPMC及Committer。

编辑推荐
适读人群 :本书适合大数据系统的架构师、开发者和咨询师阅读。

目前,限制实时处理技术落地的一个主要因素是其对数据存储系统的挑战性需求。尽管使用Hadoop生态中的一些存储层可以实现这些需求,但是系统会变得相当复杂且难以维护。Kudu的出现为大数据架构师和开发者们带来了新的选择。

Kudu 将低延迟随机访问、逐行插入、更新和快速分析扫描融合到一个存储层中,简化了系统设计与维护。

Kudu的目标是把扫描的性能做到HDFS 上的Parquet 的两倍以内,而随机读的性能则要接近HBase 和Cassandra,成为一种各方面条件都适中的选择。

前言

选择存储引擎是实施所有大数据项目时要做的最重要的决定之一,而且更换存储引擎的成本也是最高的。Apache Kudu 是 Hadoop 生态系统中的一个全新存储系统。它的灵活性使我们能够更快地搭建和维护应用程序。在Hadoop 开发者的大数据工具箱中,Kudu 是一个关键工具。它解决了一些使用目前的 Hadoop 存储技术很难实现或不可能实现的常见问题。在这本书中,你将学习 Kudu 设计中的关键概念,以及如何用它构建快速、可扩展和可靠的 Kudu 应用程序。通过实际的示例,你将了解 Kudu 如何与其他 Hadoop 生态系统组件(如 Spark、Spark SQL 和 Impala)集成。

本书假设读者对 Hadoop 生态系统组件(如 HDFS、Hive、Spark 或 Impala)有一些使用经验,有 Java 或 Scala 编程经验,还有 SQL 和传统关系型数据库管理系统“使用”经验,熟悉 Linux shell。

目录
前言 ............................................................................... 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
使用 Kudu Quickstart VM ...........................................................................49
使用 Cloudera Manager ...............................................................................51
从源代码构建 ..............................................................................................52
软件包 .........................................................................................................53
Cloudera Quickstart VM ..............................................................................53
快速安装 :3 分钟或者更短 .................................................................. 54
小结 ...................................................................................................... 58
第 4 章 Kudu 的管理 .......................................................59
为 Kudu 做规划 ..................................................................................... 59
master 服务器和 tablet 服务器 .....................................................................60
预写日志 .....................................................................................................65
数据服务器和存储 ......................................................................................68
复制策略(replication strategy) ..................................................................69
部署时的注意事项 :是采用新集群还是现有集群 ................................ 70
全新的仅有 Kudu 的集群 ............................................................................70
全新的包含 Kudu 的 Hadoop 集群 ..............................................................71
在现有的 Hadoop 集群中添加 Kudu ...........................................................77
tablet 服务器和 master 服务器的 Web UI .............................................. 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
Kudu Client(客户端)...............................................................................124
Kudu Table ................................................................................................125
Kudu DDL .................................................................................................125
Kudu 扫描器(Scanner)读取模式 ...........................................................126
C++ API .............................................................................................. 127
Python API .......................................................................................... 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