主要的开发工具是 IntelliJ IDEA,运行环境主要是 Linux(CentOS 7)虚拟机。使用的软件版本都比较新,包括 Hadoop、Elasticsearch 等。
Hadoop Common Hadoop Common 是 Hadoop 的基础库,提供了对其他 Hadoop 模块的支持,包括文件系统和网络操作、数据类型的处理,以及对象的序列化和反序列化等功能。
Hadoop Distributed File System (HDFS) HDFS 是 Hadoop 的分布式文件系统,用于存储大量数据。它将数据分割成块并存储在不同的 DataNode 上,对外部文件的操作可以通过 Java API 来实现。
Hadoop YARN YARN 是一个任务调度和资源管理框架,负责管理和分配集群资源。
Hadoop MapReduce MapReduce 是一种计算模型,可以将一个大型计算任务分解成多个小任务并在集群上并行处理,最终汇总结果。它的处理过程主要包括 Map 阶段和 Reduce 阶段。
子工程名为 hdfs-example
,HDFS 的主要目的是存储大量文件。HDFS 将文件分割成块并存储在不同的 DataNode 上,开发者无需关心数据块的具体位置。Java API 提供了对 HDFS 的各种操作,如创建、删除和读取文件等。
子工程名为 hbase-example
,HBase 是一种列式数据库,适用于数据量达到亿级别的场景。本章将介绍如何使用 Java API 实现对 HBase 的远程操作,包括创建表、添加数据和查询数据等。
子工程名为 es-hbase-secondary-indexing
,HBase 作为基础存储,Elasticsearch 作为数据索引。通过建立索引,可以实现对大量数据的实时搜索。
子工程名为 mapreduce-wordcount
,MapReduce 的核心思想是“分而治之”。本章介绍了如何使用 MapReduce 实现单词词频统计,包括编写 Map 和 Reduce 逻辑、编写 main 方法以及编译和运行代码等步骤。
子工程名为 mapreduce-example-yarn
,YARN 是 Hadoop 集群的资源管理调度框架。本章将继续使用 WordCount 示例,展示如何在 YARN/MapReduce 2.0 上运行 MapReduce 任务,此外还包括文件合并和去重、文件排序等操作。
项目实例源代码已上传到 GitHub,可供购买本技术专栏的读者下载。
感谢大家的支持!