本地 Hadoop 开发环境搭建详解

本地 Hadoop 开发环境搭建详解

Hadoop 是处理大规模数据的核心工具之一,在大数据分析、机器学习和数据仓库等场景中应用广泛。为了方便开发和调试,搭建一个本地 Hadoop 环境是一个很好的选择。本文将详细介绍如何在本地搭建一个单节点的 Hadoop 环境,适用于学习和开发。


前提条件

  1. **操作系统**:建议使用 Linux 系统(例如 Ubuntu 或 CentOS),Windows 用户可以使用 WSL 或虚拟机来搭建。

  2. **Java 环境**:Hadoop 依赖 Java 运行环境,推荐使用 JDK 8 版本。

  3. **SSH**:Hadoop 在集群中使用 SSH 进行节点间通信,因此需要配置 SSH 免密登录。

  4. **Hadoop 安装包**:从 Hadoop 官方网站下载二进制文件。


步骤详解

1. 安装 Java

Hadoop 依赖于 Java 运行环境,请确保安装了合适的 JDK 版本。

```bash

安装 OpenJDK 8(Ubuntu)

sudo apt update

sudo apt install -y openjdk-8-jdk

检查安装

java -version

```

编辑 `~/.bashrc` 文件,添加 `JAVA_HOME` 路径:

```bash

export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64

export PATH=PATH:JAVA_HOME/bin

```

应用环境变量配置:

```bash

source ~/.bashrc

```

2. 下载并安装 Hadoop

从 [Hadoop 官网](https://hadoop.apache.org/releases.html) 下载 Hadoop 二进制文件并解压到指定目录。

```bash

假设下载的文件为 hadoop-3.3.1.tar.gz

tar -xvzf hadoop-3.3.1.tar.gz

sudo mv hadoop-3.3.1 /usr/local/hadoop

```

3. 设置 Hadoop 环境变量

编辑 `~/.bashrc`,添加以下 Hadoop 环境变量:

```bash

export HADOOP_HOME=/usr/local/hadoop

export PATH=PATH:HADOOP_HOME/bin:$HADOOP_HOME/sbin

```

更新环境变量:

```bash

source ~/.bashrc

```

4. 配置 Hadoop

配置文件位于 `$HADOOP_HOME/etc/hadoop/` 目录中,主要需要编辑以下四个文件:

  1. **core-site.xml**

配置 HDFS 的默认文件系统地址:

```xml

<configuration>

<property>

<name>fs.defaultFS</name>

<value>hdfs://localhost:9000</value>

</property>

</configuration>

```

  1. **hdfs-site.xml**

设置副本数量为 1,以便在单节点模式下运行:

```xml

<configuration>

<property>

<name>dfs.replication</name>

<value>1</value>

</property>

</configuration>

```

  1. **mapred-site.xml**

将 `mapred-site.xml.template` 文件复制并重命名为 `mapred-site.xml`,然后编辑该文件以启用 YARN:

```xml

<configuration>

<property>

<name>mapreduce.framework.name</name>

<value>yarn</value>

</property>

</configuration>

```

  1. **yarn-site.xml**

配置 YARN 的 Shuffle 服务:

```xml

<configuration>

<property>

<name>yarn.nodemanager.aux-services</name>

<value>mapreduce_shuffle</value>

</property>

</configuration>

```

5. 配置 SSH 免密登录

为了在 Hadoop 中顺利执行命令,您需要配置 SSH 免密登录。执行以下命令生成 SSH 密钥并配置:

```bash

生成 SSH 密钥

ssh-keygen -t rsa -P ""

将公钥添加到授权密钥列表

cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys

测试 SSH 连接

ssh localhost

```

6. 格式化 Namenode

在首次启动 HDFS 前,需要格式化 Namenode。这只需要进行一次,执行命令如下:

```bash

hdfs namenode -format

```

7. 启动 Hadoop 服务

  1. 启动 HDFS 服务:

```bash

start-dfs.sh

```

  1. 启动 YARN 服务:

```bash

start-yarn.sh

```

可以通过以下命令查看正在运行的 Hadoop 进程:

```bash

jps

```

应该看到以下进程:`NameNode`、`DataNode`、`ResourceManager` 和 `NodeManager`。

8. 验证 Hadoop 配置

Hadoop 启动后,可以通过以下 URL 查看 Hadoop 状态:

9. 测试 HDFS

测试 HDFS 的基本功能,创建文件夹并上传文件:

```bash

创建 HDFS 目录

hdfs dfs -mkdir /user

hdfs dfs -mkdir /user/your_username

上传文件

hdfs dfs -put $HADOOP_HOME/etc/hadoop/*.xml /user/your_username

```

查看文件是否成功上传:

```bash

hdfs dfs -ls /user/your_username

```


小结

通过以上步骤,您已在本地成功搭建一个 Hadoop 单节点开发环境。此环境可以用于学习 Hadoop 的基础概念、开发 MapReduce 程序和进行小规模数据测试。

相关推荐
QT 小鲜肉4 小时前
【Linux命令大全】001.文件管理之mattrib命令(实操篇)
linux·运维·服务器·chrome·笔记
John_ToDebug5 小时前
从 window.external 到 Mojo深度解析 Chromium 中 JS 与 C++ 的 7 种通信机制
javascript·chrome·mojo
QT 小鲜肉10 小时前
【Linux命令大全】001.文件管理之mdu命令(实操篇)
linux·运维·服务器·chrome·笔记·microsoft
武帝为此13 小时前
【Shell脚本函数介绍】
前端·chrome
Andy1213816 小时前
网页笔记插件(chrome)开发记录
chrome·笔记·mfc
齐鲁大虾1 天前
UOS(统信操作系统)如何更新CUPS(通用Unix打印系统)
linux·服务器·chrome·unix
愈努力俞幸运1 天前
chrome 扩展(插件)开发入门教程
前端·chrome
SCBAiotAigc1 天前
Chrome的cookie编辑插件EditThisCookie
人工智能·chrome·python·ubuntu
搬砖的kk1 天前
实现 Lycium 智能产物检查机制【鸿蒙pc实践系列】
chrome·华为·harmonyos
凯歌的博客2 天前
springboot项目jar包启动, 配置文件外置
chrome·spring boot