本文档详细介绍了如何在单机环境下配置和运行Hadoop伪分布式模式,包括环境搭建、核心配置文件修改及常见问题解决方法。适合初学者参考学习。
本教程使用 Ubuntu 14.04 64位作为系统环境(Ubuntu 12.04、Ubuntu 16.04也适用,32位或64位均可),请自行安装系统。
如果用的是 CentOS 或 RedHat 系统,请查看相应的 CentOS 安装 Hadoop 教程_单机伪分布式配置。
本教程基于原生 Hadoop 2,在 Hadoop 2.6.0 (stable) 版本下验证通过,适用于任何 Hadoop 2.x.y 版本,如 Hadoop 2.7.1、2.6.3 和 2.4.1 等。
**更新apt**
在开始之前,请确保使用 `hadoop` 用户登录,并通过 apt 更新系统。打开终端窗口并输入以下命令来更新软件包列表:
```bash
sudo apt update
```
**安装必要的工具**
1. **安装vim**: 由于配置文件的编辑需要用到文本编辑器,我们将安装 vim。在终端中输入:
```bash
sudo apt install vim
```
2. **安装SSH**: Hadoop 的伪分布式环境需要 SSH 服务用于本地不同进程间的通信。Ubuntu 系统通常预装了 SSH 客户端,我们需要安装 SSH 服务器:
```bash
sudo apt install openssh-server
```
安装完成后,可以通过 `ssh localhost` 登录本地主机,并输入密码 `hadoop`。
**配置SSH无密码登录**
为了简化操作,我们将配置 SSH 实现无密码登录。首先退出当前的 SSH 会话:
```bash
exit
```
然后使用 `ssh-keygen` 生成密钥对并将其添加到 `.authorized_keys` 文件中:
```bash
cd ~/.ssh
ssh-keygen -t rsa
cat .id_rsa.pub >> authorized_keys
```
现在,再次尝试 `ssh localhost` ,你应该能够无密码登录。
**安装Java环境**
Hadoop 需要 Java 运行时环境(JRE)和 Java 开发工具包(JDK)。假设你已下载了 JDK 的 tar.gz 文件,并将其放在 `/home/hadoop/Downloads` 目录下。按照以下步骤进行安装:
```bash
cd /usr/lib
sudo mkdir jvm
cd ~
cd Downloads
sudo tar -zxvf jdk-8u162-linux-x64.tar.gz -C /usr/lib/jvm/
```
接着,设置环境变量让系统知道 JDK 的位置:
```bash
cd ~
vim ~/.bashrc
```
在 `.bashrc` 文件顶部添加以下行:
```bash
export JAVA_HOME=/usr/lib/jvm/jdk1.8.0_162
export JRE_HOME=${JAVA_HOME}/jre
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
export PATH=${JAVA_HOME}/bin:$PATH
```
保存并关闭 `.bashrc` 文件,然后使更改生效:
```bash
source ~/.bashrc
```
检查 Java 安装是否成功:
```bash
java -version
```
如果显示正确的 Java 版本信息,则说明 Java 已安装成功。
**安装Hadoop**
从 Apache 官方网站的镜像站点下载最新稳定版 Hadoop 二进制文件,如 `hadoop-2.7.1.tar.gz`。将 Hadoop 解压缩到 `/usr/local` 目录:
```bash
sudo tar -zxf ~/Downloads/hadoop-2.6.0.tar.gz -C /usr/local
```
接下来配置 Hadoop 以适应伪分布式环境,这包括编辑 `core-site.xml`, `hdfs-site.xml` 和 `mapred-site.xml` 等文件,并启动和停止 Hadoop 服务。这些设置涉及 HDFS 数据存储、文件系统设置以及 MapReduce 的执行环境。
**配置Hadoop**
1. **创建目录结构**: 创建必要的目录,例如 `/usr/local/hadoop/data`, 用于 HDFS 数据存储。
2. 编辑配置文件: 使用 vim 编辑 `hdfs-site.xml` 和其他相关配置文件,并根据实际情况调整各项参数。
3. 启动Hadoop服务: 启动 NameNode、DataNode 及 YARN 的 Resource Manager 和 Node Manager 服务。
4. 测试 Hadoop 功能:通过运行一些基本的 Hadoop 命令,如 `hadoop fs -ls` 和 `hadoop jar` ,确保一切正常工作。
5. 关闭Hadoop: 完成测试或使用后,请关闭所有启动的服务。
按照以上步骤,在 Ubuntu 系统上成功配置一个 Hadoop 的伪分布式环境。这可用于学习、开发和测试各种 Hadoop 应用