描述
开 本: 16开纸 张: 胶版纸包 装: 平装-胶订是否套装: 否国际标准书号ISBN: 9787111615538
产品特色
编辑推荐
“数据湖”已经成为大数据行业的一个重要术语,它是数据科学家们获得有意义的洞察力的平台,这些洞察力可以被企业用来重新定义或改变它们的运营方式。Lambda架构作为大数据领域的杰出模式之一也应运而生。
本书旨在帮助你选择正确的大数据技术并使用Lambda架构模式来为企业构建自己的数据湖。全书主要分为三部分,*部分介绍数据湖的概念、数据湖在企业中的重要性以及Lambda架构。第二部分深入研究使用Lambda架构构建数据湖所需的主要技术组件,介绍流行的大数据技术,如Apache Hadoop、Sqoop、Flume、Flink和Elasticsearch等。第三部分展示一些非常实用的数据湖落地建议,包括企业应如何建立一个真实的数据湖,以及提高数据湖运营效率所需的其他技术组件。第三部分*后还详细介绍了几个实际的用例,以及在企业内实现这些用例时应考虑的重要方面。
内容简介
本书分为三个主要部分。*部分介绍了数据湖的概念、企业中数据湖泊的重要性,以及Lambda架构的*新进展。第二部分将深入研究使用Lambda架构构建数据湖的主要组件,介绍了一些流行的大数据技术,如Apache Hadoop、Spark、Sqoop、Flume和弹性搜索。第三部分以实际操作的方式展示如何实现一个企业数据湖,并介绍了几个实际的用例,而且展示了如何将其他外围组件添加到湖中以提高效率。在本书的*后,读者将能够选择正确的大数据技术,使用lambda架构模式来构建企业数据湖。
通过阅读本书,你将:
·使用大数据技术构建企业级数据湖。
·掌握Lambda架构的精髓,以及如何在企业内使用它。
·学习与Apache Sqoop及其功能相关的技术细节。
·Kafka与Hadoop组件集成,用于获取企业数据。
·使用Flume进行流式数据处理。
·理解Flink与流式数据处理的关系。
·Hadoop生态圈组件的协同使用,以及它们能带来的好处。
·使用Elastic Stack构建快速、流式、高吞吐应用。
·确保数据摄取处理在不同数据格式配置时的一致性。
·使用大数据技术构建企业级数据湖。
·掌握Lambda架构的精髓,以及如何在企业内使用它。
·学习与Apache Sqoop及其功能相关的技术细节。
·Kafka与Hadoop组件集成,用于获取企业数据。
·使用Flume进行流式数据处理。
·理解Flink与流式数据处理的关系。
·Hadoop生态圈组件的协同使用,以及它们能带来的好处。
·使用Elastic Stack构建快速、流式、高吞吐应用。
·确保数据摄取处理在不同数据格式配置时的一致性。
目 录
译者序
推荐序
关于作者
关于技术审核人员
前言
第一部分 概述
第1章 数据导论 2
1.1 探索数据 3
1.2 什么是企业数据 4
1.3 企业数据管理 5
1.4 大数据相关概念 6
1.5 数据与企业的相关性 8
1.6 数据质量 9
1.7 企业中数据如何存放 10
1.7.1 内联网(企业内部) 10
1.7.2 互联网(企业外部) 10
1.7.3 数据持久化存储(RDBMS或者NoSQL) 12
1.7.4 传统的数据仓库 13
1.7.5 文件存储 13
1.8 企业现状 14
1.9 企业数字化转型 15
1.10 数据湖用例启示 16
1.11 总结 17
第2章 数据湖概念概览 18
2.1 什么是数据湖 18
2.2 数据湖如何帮助企业 19
2.3 数据湖是如何工作的 20
2.4 数据湖与数据仓库的区别 21
2.5 数据湖的构建方法 22
2.6 Lambda架构驱动的数据湖 22
2.6.1 数据摄取层——摄取数据用于处理和存储 23
2.6.2 批处理层——批量处理已提取数据 23
2.6.3 快速处理层——近实时数据处理 24
2.6.4 数据存储层——存储所有数据 24
2.6.5 服务层——数据交付与导出 25
2.6.6 数据获取层——从源系统获取数据 25
2.6.7 消息层——数据传输的保障 26
2.6.8 探索数据摄取层 27
2.6.9 探索Lambda层 28
2.7 总结 35
第3章 Lambda架构:一种数据湖
实现模式 36
3.1 什么是Lambda架构 36
3.2 Lambda 架构简史 37
3.3 Lambda架构的原则 37
3.3.1 容错原则 38
3.3.2 不可变数据原则 38
3.3.3 重新计算原则 38
3.4 Lambda架构的组件 38
3.4.1 批处理层 39
3.4.2 快速处理层 41
3.4.3 服务层 43
3.5 Lambda架构的完整工作原理 44
3.6 Lambda架构的优势 45
3.7 Lambda架构的劣势 46
3.8 Lambda架构技术概览 46
3.9 应用Lambda 47
3.9.1 企业级日志分析 47
3.9.2 获取和分析传感器数据 47
3.9.3 电子邮件平台实时统计 48
3.9.4 实时赛事分析 48
3.9.5 推荐引擎 48
3.9.6 安全威胁分析 48
3.9.7 多渠道用户行为分析 48
3.10 Lambda架构运行范例 48
3.11 Kappa架构 49
3.12 总结 50
第4章 数据湖中的Lambda应用 51
4.1 Hadoop发行版本介绍 51
4.2 影响企业大数据技术栈选择的因素 53
4.2.1 技术能力 53
4.2.2 是否易于部署和维护 53
4.2.3 集成准备 53
4.3 批处理层与数据处理 53
4.3.1 NameNode服务器 54
4.3.2 Secondary NameNode服务器 55
4.3.3 YARN 55
4.3.4 数据存储节点 55
4.3.5 快速处理层 56
4.3.6 Flume用于数据获取 57
4.3.7 Spark Streaming 58
4.4 服务层 62
4.4.1 数据存储层 62
4.4.2 数据访问层 63
4.5 总结 64
第二部分 数据湖的技术组件
第5章 基于Apache Sqoop的批量数据获取 68
5.1 数据湖背景中的数据获取 68
5.1.1 数据获取层 68
5.1.2 批量数据获取——技术路线图 69
5.2 为什么使用Apache Sqoop 70
5.2.1 Sqoop简史 71
5.2.2 Sqoop的优势 71
5.2.3 Sqoop的劣势 72
5.3 Sqoop的功能 72
5.3.1 Sqoop 2的架构 74
5.3.2 Sqoop 1与Sqoop 2 75
5.3.3 Sqoop的功能 77
5.3.4 使用Sqoop导入数据 77
5.3.5 使用Sqoop导出数据 78
5.4 Sqoop connector 79
5.5 Sqoop对HDFS的支持 81
5.6 Sqoop运行范例 81
5.6.1 安装与配置 81
5.6.2 数据源配置 90
5.6.3 Sqoop配置(数据库驱动) 91
5.6.4 将HDFS配置为目的地 91
5.6.5 Sqoop数据导入 91
5.6.6 Sqoop数据导出 97
5.6.7 Sqoop job 98
5.6.8 Sqoop 2 99
5.6.9 SCV用例视角中的Sqoop 102
5.7 适合使用Sqoop的场景 103
5.8 不适合使用Sqoop的场景 104
5.9 实时Sqooping是否可行 104
5.10 其他选项 104
5.10.1 原生大数据connector 105
5.10.2 Talend 106
5.10.3 Pentaho Kettle(PDI——Pentaho数据集成) 106
5.11 总结 106
第6章 基于Apache Flume的流式数据获取 108
6.1 数据获取 108
6.1.1 什么是流式数据 109
6.1.2 批量数据和流式数据 110
6.1.3 流式数据获取——技术路线图 110
6.1.4 什么是Flume 111
6.1.5 Sqoop和Flume 112
6.2 为什么使用Flume 113
6.2.1 Flume简史 113
6.2.2 Flume的优势 113
6.2.3 Flume的劣势 114
6.3 Flume的架构原则 114
6.4 Flume架构 115
6.4.1 Flume 架构之一:分布式数据流水线 116
6.4.2 Flume 架构之二:扇出 117
6.4.3 Flume 架构之三:扇入 117
6.4.4 Flume架构中的3层设计 118
6.4.5 高级Flume架构 118
6.4.6 Flume的可靠性级别 120
6.5 Flume事件——流式数据 120
6.6 Flume Agent 120
6.7 Flume Source 122
6.8 Flume Channel 123
6.9 Flume Sink 125
6.10 Flume配置 126
6.11 Flume事务管理 127
6.12 Flume的其他组件 128
6.12.1 Channel Processor 128
6.12.2 Interceptor 129
6.12.3 Channel Selector 129
6.12.4 Sink Group 130
6.12.5 事
推荐序
关于作者
关于技术审核人员
前言
第一部分 概述
第1章 数据导论 2
1.1 探索数据 3
1.2 什么是企业数据 4
1.3 企业数据管理 5
1.4 大数据相关概念 6
1.5 数据与企业的相关性 8
1.6 数据质量 9
1.7 企业中数据如何存放 10
1.7.1 内联网(企业内部) 10
1.7.2 互联网(企业外部) 10
1.7.3 数据持久化存储(RDBMS或者NoSQL) 12
1.7.4 传统的数据仓库 13
1.7.5 文件存储 13
1.8 企业现状 14
1.9 企业数字化转型 15
1.10 数据湖用例启示 16
1.11 总结 17
第2章 数据湖概念概览 18
2.1 什么是数据湖 18
2.2 数据湖如何帮助企业 19
2.3 数据湖是如何工作的 20
2.4 数据湖与数据仓库的区别 21
2.5 数据湖的构建方法 22
2.6 Lambda架构驱动的数据湖 22
2.6.1 数据摄取层——摄取数据用于处理和存储 23
2.6.2 批处理层——批量处理已提取数据 23
2.6.3 快速处理层——近实时数据处理 24
2.6.4 数据存储层——存储所有数据 24
2.6.5 服务层——数据交付与导出 25
2.6.6 数据获取层——从源系统获取数据 25
2.6.7 消息层——数据传输的保障 26
2.6.8 探索数据摄取层 27
2.6.9 探索Lambda层 28
2.7 总结 35
第3章 Lambda架构:一种数据湖
实现模式 36
3.1 什么是Lambda架构 36
3.2 Lambda 架构简史 37
3.3 Lambda架构的原则 37
3.3.1 容错原则 38
3.3.2 不可变数据原则 38
3.3.3 重新计算原则 38
3.4 Lambda架构的组件 38
3.4.1 批处理层 39
3.4.2 快速处理层 41
3.4.3 服务层 43
3.5 Lambda架构的完整工作原理 44
3.6 Lambda架构的优势 45
3.7 Lambda架构的劣势 46
3.8 Lambda架构技术概览 46
3.9 应用Lambda 47
3.9.1 企业级日志分析 47
3.9.2 获取和分析传感器数据 47
3.9.3 电子邮件平台实时统计 48
3.9.4 实时赛事分析 48
3.9.5 推荐引擎 48
3.9.6 安全威胁分析 48
3.9.7 多渠道用户行为分析 48
3.10 Lambda架构运行范例 48
3.11 Kappa架构 49
3.12 总结 50
第4章 数据湖中的Lambda应用 51
4.1 Hadoop发行版本介绍 51
4.2 影响企业大数据技术栈选择的因素 53
4.2.1 技术能力 53
4.2.2 是否易于部署和维护 53
4.2.3 集成准备 53
4.3 批处理层与数据处理 53
4.3.1 NameNode服务器 54
4.3.2 Secondary NameNode服务器 55
4.3.3 YARN 55
4.3.4 数据存储节点 55
4.3.5 快速处理层 56
4.3.6 Flume用于数据获取 57
4.3.7 Spark Streaming 58
4.4 服务层 62
4.4.1 数据存储层 62
4.4.2 数据访问层 63
4.5 总结 64
第二部分 数据湖的技术组件
第5章 基于Apache Sqoop的批量数据获取 68
5.1 数据湖背景中的数据获取 68
5.1.1 数据获取层 68
5.1.2 批量数据获取——技术路线图 69
5.2 为什么使用Apache Sqoop 70
5.2.1 Sqoop简史 71
5.2.2 Sqoop的优势 71
5.2.3 Sqoop的劣势 72
5.3 Sqoop的功能 72
5.3.1 Sqoop 2的架构 74
5.3.2 Sqoop 1与Sqoop 2 75
5.3.3 Sqoop的功能 77
5.3.4 使用Sqoop导入数据 77
5.3.5 使用Sqoop导出数据 78
5.4 Sqoop connector 79
5.5 Sqoop对HDFS的支持 81
5.6 Sqoop运行范例 81
5.6.1 安装与配置 81
5.6.2 数据源配置 90
5.6.3 Sqoop配置(数据库驱动) 91
5.6.4 将HDFS配置为目的地 91
5.6.5 Sqoop数据导入 91
5.6.6 Sqoop数据导出 97
5.6.7 Sqoop job 98
5.6.8 Sqoop 2 99
5.6.9 SCV用例视角中的Sqoop 102
5.7 适合使用Sqoop的场景 103
5.8 不适合使用Sqoop的场景 104
5.9 实时Sqooping是否可行 104
5.10 其他选项 104
5.10.1 原生大数据connector 105
5.10.2 Talend 106
5.10.3 Pentaho Kettle(PDI——Pentaho数据集成) 106
5.11 总结 106
第6章 基于Apache Flume的流式数据获取 108
6.1 数据获取 108
6.1.1 什么是流式数据 109
6.1.2 批量数据和流式数据 110
6.1.3 流式数据获取——技术路线图 110
6.1.4 什么是Flume 111
6.1.5 Sqoop和Flume 112
6.2 为什么使用Flume 113
6.2.1 Flume简史 113
6.2.2 Flume的优势 113
6.2.3 Flume的劣势 114
6.3 Flume的架构原则 114
6.4 Flume架构 115
6.4.1 Flume 架构之一:分布式数据流水线 116
6.4.2 Flume 架构之二:扇出 117
6.4.3 Flume 架构之三:扇入 117
6.4.4 Flume架构中的3层设计 118
6.4.5 高级Flume架构 118
6.4.6 Flume的可靠性级别 120
6.5 Flume事件——流式数据 120
6.6 Flume Agent 120
6.7 Flume Source 122
6.8 Flume Channel 123
6.9 Flume Sink 125
6.10 Flume配置 126
6.11 Flume事务管理 127
6.12 Flume的其他组件 128
6.12.1 Channel Processor 128
6.12.2 Interceptor 129
6.12.3 Channel Selector 129
6.12.4 Sink Group 130
6.12.5 事
前 言
对许多企业来说,数据变得越来越重要,数据的重要性在多个方面得到了凸显。事实上,企业正在用核心数据来改善自己的运营。本书将首先介绍什么是数据,它与企业的相关性,以及企业如何利用这些数据以数字化的方式改变自己。为了利用数据,企业需要能存储海量数据的“仓库”,在当今时代,这些仓库不再被称为“数据仓库”,相反,它们被称为“数据湖”。
正如今天所看到的,我们有很多利用了大数据技术的用例。数据湖的概念已经存在了很长时间,但直到最近它才在企业中得到真正的关注。本书将这两个方面结合在一起,使用最新的大数据技术,并遵循良好的架构模式,提供了可立即上手的、成熟的、能稳定运行的数据湖。
本书将把数据湖和Lambda架构结合在一起,帮助读者在他们的企业中实际操作这些内容。本书从较高的层次引入了大量的大数据技术,但是我们不打算将它定位为涉及很多技术框架的权威指南,因为书中涉及的每一种技术框架都值得用一本书来深入介绍它们。
本书用所选的技术框架涵盖了数据湖、Lambda架构模式的解释和实现。当然,这些具体的技术可以在将来或者根据组织设置的标准来替换。所以,本书内容中的精髓不仅在现在,而且在将来很长一段时间内都是有效的。因此,与同一领域的其他那些依赖具体技术框架的书籍相比,本书的“保鲜期”更长。
本书将带你踏上一段奇妙的旅程,在这个过程中,它遵循一种既直观又令人兴奋的结构。
本书涵盖的内容
本书分为3部分。每部分都包含若干章,当一个部分完成后,读者将会从整体上理解该部分内容。这些部分的设计和结构使得读者首先了解主要的功能和技术;然后在接下来的部分,或者更确切地说,在本书最后一部分中,一切都会被整合在一起。在本书的末尾,读者将实现一个可操作的数据湖。
第一部分,向读者介绍了与数据、数据湖及其重要组件相关的各种概念。此部分共分4章,如下所列,各章都有明确的目标。
第1章,以通用的方式向读者介绍什么是数据,以及数据与企业的相关性。该章解释了在当前社会数据为什么重要,以及应该如何使用它们。现实生活中的各种用例已经展示了数据的重要性以及数据是如何改变企业的。这些真实的案例将启发读者的创造性思维,并思考如何利用数据来改变自己的企业。
第2章,进一步深入了解数据湖概念的细节,并解释使用数据湖能解决企业面临的哪些问题。该章还提供了关于Lambda架构以及如何将其用于数据湖的内容。到该章结束,读者将了解数据湖的概念和组织构建数据湖所采用的各种方法。
第3章,详细介绍Lambda架构、它的各种组件以及数据湖与此架构模式之间的关联。在该章中,读者将详细了解Lambda架构,包括它产生的原因和能解决的具体问题。该章还将帮助读者理解Lambda架构的核心概念以及如何在企业中应用它的能力。读者还将理解各种设计模式和组件,在构建Lambda架构时它们可以帮助实现批处理和实时数据处理。现在,读者对数据、数据湖和Lambda架构应该有了足够的了解,可以跳到下一节,学习如何为所在企业实现数据湖。
第4章,向读者介绍可用于Lambda架构每一层(组件)的技术,还将帮助读者选择一个市场中领先且让我们感觉非常棒的技术。在该章中,读者将了解当前大数据技术领域中的各种Hadoop发行版本,以及如何利用它们在企业数据湖中构建Lambda架构。在这些技术背景下,读者将了解企业数据湖中批处理层、快速处理层和服务层背后的细节及设计动机。
第二部分,向读者介绍了许多技术,这些技术将是数据湖实现的一部分。此部分中的每一章都涉及一种技术框架,它们逐步被用于构建数据湖和用例,即单一客户视图(SCV)。几乎每一章中讨论的技术的所有重要技术细节都将以整体的方式被涵盖,因为过于深入的探讨超出了本书的范围。此部分由6章组成,每章都有一个明确的目标,如下所述。
第5章,对Apache Sqoop做了深入的介绍,给出了选择这种技术框架的理由,也向读者提供了其他技术选项相关的大量细节。该章还给出了数据湖和Lambda架构的详细实例。在该章中,读者将理解Sqoop框架以及其他用于将数据从企业数据源加载到数据湖的类似工具。读者也将了解Sqoop架构相关的各种技术细节,还可以通过示例了解Sqoop的实际操作以及使用Hadoop技术时涉及的各种步骤。
第6章,将深入学习Apache Flume,它是一个中间环节,与数据湖及Lambda架构中的其他技术框架衔接。读者将会理解Flume作为一个框架,数据湖通过哪些模式来使用它。读者还将了解Flume架构和技术实现细节,并使用该框架来获取和使用数据,其中还包括了使用特定的功能来处理事务控制、数据重放的示例。读者还将了解如何使用流式数据处理技术来进行基于流的处理。
第7章,将深入介绍Apache Kafka。该章最开始给出了选择一种特定技术的理由,同时列举了其他技术选项的细节。在这一章中,读者将会理解Kafka是一个面向消息的中间件,同时会了解它与其他消息中间件的差异。读者可以从客户端(发布者)、代理和消费者(订阅者)的角度来了解Kafka及其功能的细节,以及如何利用它来构建水平扩展能力。读者还将了解如何将Kafka与Hadoop组件集成以获取企业数据,以及这种集成给数据湖带来的功能。
第8章,读者将理解基于流式数据和流式处理的概念,特别是关于Apache Flink的概念。读者将深入研究数据湖和大数据技术背景下的Apache Flink,通过示例演示Flink的实时数据处理。读者还将认识到流式处理功能如何依赖于架构中的各种其他层,以及这些层如何影响流式处理能力。
第9章,将深入介绍Apache Hadoop。在这一章中,读者将更深入地了解Hadoop,对其有一个全面的认识,同时尝试使用各种Hadoop组件及一些特定功能,这些组件可以为企业数据湖提供服务。在数据湖背景下,将在实现级上对Hadoop进行解释,如Hadoop框架是如何实现文件存储、不同文件格式数据处理和MapReduce范式的。Hadoop可以构成数据湖的基础,Hadoop技术栈也能提供近实时处理能力。
第10章,会深入研究Elasticsearch。读者将理解Elasticsearch作为数据索引框架的作用以及如何利用该框架提供的各种分析器进行有效的搜索。读者还将理解数据湖如何有效利用Elasticsearch的分片和分发机制来提供高效的一致性数据服务,了解如何使用Elasticsearch来处理快速流式数据,及构建高性能应用。
第三部分,将汇集本书第一部分和第二部分的技术组件,为读者提供数据湖的整体视图。我们将以简短的方式引入额外的概念和技术,如果有需要,读者可根据企业需求更深入地探索这些内容。另外,深入研究该章所涵盖的技术超出了本书的范围。但是,我们仍希望读者了解这些附加技术,以及在需要时如何将它们引入数据湖实现。本部分由两章组成,每章都有一个明确的目标,下面会详细叙述。
第11章,将所有技术点整合在一起,在向读者介绍完数据湖、Lambda架构及其他各种技术之后,为读者展示了整体的图景。到了这个阶段,读者应该有成就感,这时可以将代码库组织起来,展示它是如何工作的。在这一章中,读者将会意识到如何集成数据湖的各个组件来实现一个功能完备的数据湖。读者还将通过运行范例来实现数据湖的完整性,将前几章学习的内容结合在一起,完成一个可运行的数据湖实现。
第12章,贯穿本书,读者通过单一客户视图的形式来理解用例;然而,在浏览本书的过程中,还有其他与组织相关的用例,读者可对它们进行深入的思考。在这一章中,这种思想得到了进一步的阐发。读者将理解并实现各种用例,这些用例可以从数据湖中获得巨大的回报,并帮助优化它们的持有、运营和活动成本,还能从这些数据使用中推导出商业智能。在该章中,读者还将认识到这些用例的多样性以及企业数据湖能为这些用例提供多大程度的帮助。
阅读本书的必备条件
本书面向开发人员、架构师和产品/项目负责人,用于实现基于Lambda架构的企业数据湖。书中包括可运行范例,用以帮助读者理解和观察围绕数据湖及其基本实现的各种概念。为了运行这些范例,需要使用各种开源软件、所需的基础设施和开发IDE。我们努力保持示例简洁并利用常见的框架和组件。用于运行这些示例的操作系统为CentOS 7,但是这些示例可以在Linux操作系统的任何版本上运行。
本书的目标读者
致力于实现企业数据湖的Java开发者和架构师。
致力于实践Lambda架构和大数据技术的Java开发者。
致力于探索大数据技术并渴望利用大数据技术提供解决方案的Java开发者。
排版约定
在本书中,不同的文本样式用来区分不同的信息。下面是一些例子,以及每种样式的解释。
代码块样式如下所示:
正如今天所看到的,我们有很多利用了大数据技术的用例。数据湖的概念已经存在了很长时间,但直到最近它才在企业中得到真正的关注。本书将这两个方面结合在一起,使用最新的大数据技术,并遵循良好的架构模式,提供了可立即上手的、成熟的、能稳定运行的数据湖。
本书将把数据湖和Lambda架构结合在一起,帮助读者在他们的企业中实际操作这些内容。本书从较高的层次引入了大量的大数据技术,但是我们不打算将它定位为涉及很多技术框架的权威指南,因为书中涉及的每一种技术框架都值得用一本书来深入介绍它们。
本书用所选的技术框架涵盖了数据湖、Lambda架构模式的解释和实现。当然,这些具体的技术可以在将来或者根据组织设置的标准来替换。所以,本书内容中的精髓不仅在现在,而且在将来很长一段时间内都是有效的。因此,与同一领域的其他那些依赖具体技术框架的书籍相比,本书的“保鲜期”更长。
本书将带你踏上一段奇妙的旅程,在这个过程中,它遵循一种既直观又令人兴奋的结构。
本书涵盖的内容
本书分为3部分。每部分都包含若干章,当一个部分完成后,读者将会从整体上理解该部分内容。这些部分的设计和结构使得读者首先了解主要的功能和技术;然后在接下来的部分,或者更确切地说,在本书最后一部分中,一切都会被整合在一起。在本书的末尾,读者将实现一个可操作的数据湖。
第一部分,向读者介绍了与数据、数据湖及其重要组件相关的各种概念。此部分共分4章,如下所列,各章都有明确的目标。
第1章,以通用的方式向读者介绍什么是数据,以及数据与企业的相关性。该章解释了在当前社会数据为什么重要,以及应该如何使用它们。现实生活中的各种用例已经展示了数据的重要性以及数据是如何改变企业的。这些真实的案例将启发读者的创造性思维,并思考如何利用数据来改变自己的企业。
第2章,进一步深入了解数据湖概念的细节,并解释使用数据湖能解决企业面临的哪些问题。该章还提供了关于Lambda架构以及如何将其用于数据湖的内容。到该章结束,读者将了解数据湖的概念和组织构建数据湖所采用的各种方法。
第3章,详细介绍Lambda架构、它的各种组件以及数据湖与此架构模式之间的关联。在该章中,读者将详细了解Lambda架构,包括它产生的原因和能解决的具体问题。该章还将帮助读者理解Lambda架构的核心概念以及如何在企业中应用它的能力。读者还将理解各种设计模式和组件,在构建Lambda架构时它们可以帮助实现批处理和实时数据处理。现在,读者对数据、数据湖和Lambda架构应该有了足够的了解,可以跳到下一节,学习如何为所在企业实现数据湖。
第4章,向读者介绍可用于Lambda架构每一层(组件)的技术,还将帮助读者选择一个市场中领先且让我们感觉非常棒的技术。在该章中,读者将了解当前大数据技术领域中的各种Hadoop发行版本,以及如何利用它们在企业数据湖中构建Lambda架构。在这些技术背景下,读者将了解企业数据湖中批处理层、快速处理层和服务层背后的细节及设计动机。
第二部分,向读者介绍了许多技术,这些技术将是数据湖实现的一部分。此部分中的每一章都涉及一种技术框架,它们逐步被用于构建数据湖和用例,即单一客户视图(SCV)。几乎每一章中讨论的技术的所有重要技术细节都将以整体的方式被涵盖,因为过于深入的探讨超出了本书的范围。此部分由6章组成,每章都有一个明确的目标,如下所述。
第5章,对Apache Sqoop做了深入的介绍,给出了选择这种技术框架的理由,也向读者提供了其他技术选项相关的大量细节。该章还给出了数据湖和Lambda架构的详细实例。在该章中,读者将理解Sqoop框架以及其他用于将数据从企业数据源加载到数据湖的类似工具。读者也将了解Sqoop架构相关的各种技术细节,还可以通过示例了解Sqoop的实际操作以及使用Hadoop技术时涉及的各种步骤。
第6章,将深入学习Apache Flume,它是一个中间环节,与数据湖及Lambda架构中的其他技术框架衔接。读者将会理解Flume作为一个框架,数据湖通过哪些模式来使用它。读者还将了解Flume架构和技术实现细节,并使用该框架来获取和使用数据,其中还包括了使用特定的功能来处理事务控制、数据重放的示例。读者还将了解如何使用流式数据处理技术来进行基于流的处理。
第7章,将深入介绍Apache Kafka。该章最开始给出了选择一种特定技术的理由,同时列举了其他技术选项的细节。在这一章中,读者将会理解Kafka是一个面向消息的中间件,同时会了解它与其他消息中间件的差异。读者可以从客户端(发布者)、代理和消费者(订阅者)的角度来了解Kafka及其功能的细节,以及如何利用它来构建水平扩展能力。读者还将了解如何将Kafka与Hadoop组件集成以获取企业数据,以及这种集成给数据湖带来的功能。
第8章,读者将理解基于流式数据和流式处理的概念,特别是关于Apache Flink的概念。读者将深入研究数据湖和大数据技术背景下的Apache Flink,通过示例演示Flink的实时数据处理。读者还将认识到流式处理功能如何依赖于架构中的各种其他层,以及这些层如何影响流式处理能力。
第9章,将深入介绍Apache Hadoop。在这一章中,读者将更深入地了解Hadoop,对其有一个全面的认识,同时尝试使用各种Hadoop组件及一些特定功能,这些组件可以为企业数据湖提供服务。在数据湖背景下,将在实现级上对Hadoop进行解释,如Hadoop框架是如何实现文件存储、不同文件格式数据处理和MapReduce范式的。Hadoop可以构成数据湖的基础,Hadoop技术栈也能提供近实时处理能力。
第10章,会深入研究Elasticsearch。读者将理解Elasticsearch作为数据索引框架的作用以及如何利用该框架提供的各种分析器进行有效的搜索。读者还将理解数据湖如何有效利用Elasticsearch的分片和分发机制来提供高效的一致性数据服务,了解如何使用Elasticsearch来处理快速流式数据,及构建高性能应用。
第三部分,将汇集本书第一部分和第二部分的技术组件,为读者提供数据湖的整体视图。我们将以简短的方式引入额外的概念和技术,如果有需要,读者可根据企业需求更深入地探索这些内容。另外,深入研究该章所涵盖的技术超出了本书的范围。但是,我们仍希望读者了解这些附加技术,以及在需要时如何将它们引入数据湖实现。本部分由两章组成,每章都有一个明确的目标,下面会详细叙述。
第11章,将所有技术点整合在一起,在向读者介绍完数据湖、Lambda架构及其他各种技术之后,为读者展示了整体的图景。到了这个阶段,读者应该有成就感,这时可以将代码库组织起来,展示它是如何工作的。在这一章中,读者将会意识到如何集成数据湖的各个组件来实现一个功能完备的数据湖。读者还将通过运行范例来实现数据湖的完整性,将前几章学习的内容结合在一起,完成一个可运行的数据湖实现。
第12章,贯穿本书,读者通过单一客户视图的形式来理解用例;然而,在浏览本书的过程中,还有其他与组织相关的用例,读者可对它们进行深入的思考。在这一章中,这种思想得到了进一步的阐发。读者将理解并实现各种用例,这些用例可以从数据湖中获得巨大的回报,并帮助优化它们的持有、运营和活动成本,还能从这些数据使用中推导出商业智能。在该章中,读者还将认识到这些用例的多样性以及企业数据湖能为这些用例提供多大程度的帮助。
阅读本书的必备条件
本书面向开发人员、架构师和产品/项目负责人,用于实现基于Lambda架构的企业数据湖。书中包括可运行范例,用以帮助读者理解和观察围绕数据湖及其基本实现的各种概念。为了运行这些范例,需要使用各种开源软件、所需的基础设施和开发IDE。我们努力保持示例简洁并利用常见的框架和组件。用于运行这些示例的操作系统为CentOS 7,但是这些示例可以在Linux操作系统的任何版本上运行。
本书的目标读者
致力于实现企业数据湖的Java开发者和架构师。
致力于实践Lambda架构和大数据技术的Java开发者。
致力于探索大数据技术并渴望利用大数据技术提供解决方案的Java开发者。
排版约定
在本书中,不同的文本样式用来区分不同的信息。下面是一些例子,以及每种样式的解释。
代码块样式如下所示:
命令行输入或输出样式如下所示:
警告或重要的注意事项。
提示或技巧。
范例下载
本书的范例代码可以从http://www.packtpub.com通过个人账号下载,也可以访问华章图书官网http://www.hzbook.com,通过注册并登录个人账户下载。
本书涉及的代码也托管在GitHub上,请参考https://github.com/PacktPublishing/Data-Lake-for-Enterprises。
评论
还没有评论。