本地 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 程序和进行小规模数据测试。

相关推荐
冬天vs不冷2 小时前
Linux用户与权限管理详解
linux·运维·chrome
SimonLiu00920 小时前
[AI]30分钟用cursor开发一个chrome插件
chrome·ai·ai编程
守城小轩1 天前
Chromium GN目标指南 - 查看GN目标(三)
chrome·chrome devtools·指纹浏览器·浏览器开发
守城小轩1 天前
Chromium CDP 开发(八):测试自定义的CDP指令
chrome·chrome devtools·指纹浏览器·浏览器开发
白云千载尽2 天前
ubuntu初始化与软件安装(持续更新)
linux·chrome·ubuntu
守城小轩2 天前
CEF127 编译指南 MacOS 篇 - 拉取 CEF 源码(五)
chrome·chrome devtools·指纹浏览器·浏览器开发
测试19982 天前
Chrome+Postman做接口测试
自动化测试·软件测试·chrome·测试工具·职场和发展·测试用例·postman
守城小轩2 天前
CEF127 编译指南 MacOS 篇 - 安装 depot_tools(四)
chrome·chrome devtools·指纹浏览器·浏览器开发
守城小轩3 天前
CEF127 编译指南 MacOS 篇 - 编译 CEF(六)
chrome·chrome devtools·指纹浏览器·浏览器开发
不会画画的画师3 天前
Google Chrome浏览器安装到其它盘的方法
chrome