Hadoop 学习笔记
Hadoop 用于提供可信赖的弹性分布式计算,hadoop 使得我们可以把计算逻辑分布到海量的机器上面去以提升计算性能并且实现高可用。
Hadoop 分为以下四个模块
| 模块 | 功能 |
|---|---|
| 通用模块 | 用于支撑 Hadoop 的工具模块 |
| Hadoop Distributed File System (HDFS) | 分布式的文件系统 |
| YARN | 用于任务调度和集群资源管理的框架 |
| MapReduce | 基于 YARN 的海量数据并行处理系统 |
HDFS 模块
HDFS 模块用于存储数据,它的核心思想是 Google 的 GFS,即把数据分成块 (block) 存储在多个机器上,同时每个块可能还会有多个备份以保证数据的高可用。
HDFS 运行在多个节点之上,不同的节点可能有不同的身份。
| 节点类型 | 节点介绍 |
|---|---|
| 命名节点 (NameNode) | 命名节点用于管理其它存储节点,是“管理员”节点并且只有一个,它存储了文件路径和具体的文件块之间的映射关系。 |
| 副命名节点 (Secondary NameNode) | 命名节点的备份,可以有多个 |
| 数据节点 (DataNode) | 存储数据块的节点,具有存储和读写数据的功能 |
MapReduce 模块
通过分治法把任务拆解分到多个节点上进行计算,之后再把计算结果汇总,即 Map 和 Reduce。
配置 hadoop 环境
首先我们需要安装 Java 并且正确配置JAVA_HOME,然后从 网页上 下载 Hadoop 压缩包,这里我选择的是hadoop-3.3.2.tar.gz版本的压缩包。
创建 hadoop 用户
useradd -m hadoop
进入 hadoop 用户
su - hadoop
下载压缩包
wget https://dlcdn.apache.org/hadoop/common/hadoop-3.3.2/hadoop-3.3.2.tar.gz --no-check-certificate
解压压缩包
tar -zxvf hadoop-3.3.2.tar.gz
进入文件夹
cd hadoop-3.3.2
执行 Hadoop
Hadoop 的执行分为三种模式
本地模式
本地模式就是 Local (Standalone) Mode,是一个在本地执行用于 debug 的模式。下面这个例子是把 hadoop 的配置文件复制到input文件夹中,然后通过正则表达式查找input文件夹里面的文件内容,并且把结果输出到output文件夹
mkdir input
cp etc/hadoop/*.xml input
bin/hadoop jar share/hadoop/mapreduce/hadoop-mapreduce-examples-3.3.2.jar grep input output 'dfs[a-z.]+'
cat output/*
输出结果为
1 dfsadmin
伪分布式模式
这种模式是只在一个节点上面运行多个 Java 进程,包含了一些很机械的代码,不记录了,直接参考 Hadoop 官方文档 Setting up a Single Node Cluster 就可以了。
完全的分布式操作模式
HDFS 的搭建
因为这部分内容稍微有些复杂,所以放到 单独的一篇文章 中进行介绍。
MapReduce 的搭建
这部分的内容同样也放到了一篇 单独的文章 中进行了介绍。
参考
Hadoop: Setting up a Single Node Cluster
Hadoop Cluster Setup
本文链接: https://www.nosuchfield.com/2021/04/11/Hadoop-Study-Notes/
版权声明: 本博客所有文章均采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处!