Ubuntu 14.04下安装Hadoop 2.4.0(单机模式)详细指南

在大数据技术生态中,Hadoop作为分布式系统基础架构的核心组件,至今仍是企业数据处理的重要选择。本文详细讲解在Ubuntu 14.04系统上安装Hadoop 2.4.0单机模式的完整流程,包括系统配置、环境准备、Hadoop安装配置及验证测试。单机模式是初学者了解Hadoop运行机制的最佳起点,无需集群环境即可运行MapReduce作业。

目录#

  1. 系统准备与要求
  2. 创建专用Hadoop用户
  3. 安装Java开发环境
  4. 配置SSH免密登录
  5. 下载安装Hadoop
  6. 配置环境变量
  7. Hadoop单机模式配置
  8. 运行验证测试
  9. 最佳实践与常见问题
  10. 总结

1. 系统准备与要求#

系统要求:

  • Ubuntu 14.04 LTS (Trusty Tahr)
  • 至少4GB磁盘空间
  • 2GB RAM (推荐)
  • 稳定的网络连接(用于下载)

更新系统:

sudo apt-get update
sudo apt-get upgrade -y
sudo reboot

安装基础工具:

sudo apt-get install -y ssh openssh-server vim

最佳实践: 始终在新系统上执行完整的updateupgrade确保所有安全补丁已应用


2. 创建专用Hadoop用户#

为Hadoop创建独立用户可增强系统安全性:

sudo adduser hadoopuser
# 设置密码并完成用户创建
 
# 授予sudo权限
sudo usermod -aG sudo hadoopuser
 
# 切换到新用户
su - hadoopuser

常见实践: 避免使用root账户运行Hadoop服务,最小权限原则可减少安全风险


3. 安装Java开发环境#

Hadoop 2.x需要Java 7+环境:

sudo apt-get install -y openjdk-7-jdk
 
# 验证安装
java -version
# 应输出类似: java version "1.7.0_95"

配置JAVA_HOME:

# 查找Java安装路径
sudo update-alternatives --config java
# 示例输出: /usr/lib/jvm/java-7-openjdk-amd64/jre/bin/java
 
# 编辑环境变量
vim ~/.bashrc
 
# 在文件末尾添加:
export JAVA_HOME=/usr/lib/jvm/java-7-openjdk-amd64
export PATH=$PATH:$JAVA_HOME/bin
 
# 应用配置
source ~/.bashrc
 
# 验证配置
echo $JAVA_HOME

注意: Hadoop 2.4.0与Java 8存在兼容性问题,推荐使用Java 7


4. 配置SSH免密登录#

即使单机模式,Hadoop脚本仍需SSH访问权限:

# 生成密钥对
ssh-keygen -t rsa -P '' -f ~/.ssh/id_rsa
 
# 将公钥加入授权列表
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
 
# 修改权限
chmod 600 ~/.ssh/authorized_keys
 
# 测试SSH连接
ssh localhost
# 首次连接需输入yes,之后应无需密码

退出SSH会话:

exit

最佳实践: 定期轮换SSH密钥(每3-6个月),使用ssh -v localhost调试连接问题


5. 下载安装Hadoop#

# 下载Hadoop 2.4.0
wget https://archive.apache.org/dist/hadoop/core/hadoop-2.4.0/hadoop-2.4.0.tar.gz
 
# 校验文件完整性
echo "f58a533bfe1415c1721d1f3c7b78b6c9 hadoop-2.4.0.tar.gz" | md5sum -c -
 
# 解压到/usr/local
sudo tar -xzvf hadoop-2.4.0.tar.gz -C /usr/local
 
# 修改目录属主
sudo chown -R hadoopuser:hadoopuser /usr/local/hadoop-2.4.0
 
# 创建符号链接
sudo ln -s /usr/local/hadoop-2.4.0 /usr/local/hadoop

安全提示: 建议从Apache官方镜像下载,避免恶意篡改版本


6. 配置环境变量#

编辑用户环境配置:

vim ~/.bashrc
 
# 添加以下内容:
export HADOOP_HOME=/usr/local/hadoop
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
 
# 应用配置
source ~/.bashrc
 
# 验证Hadoop命令
hadoop version
# 应输出: Hadoop 2.4.0

7. Hadoop单机模式配置#

单机模式无需修改集群配置文件,但需确保基础配置正确:

配置hadoop-env.sh#

cd $HADOOP_CONF_DIR
vim hadoop-env.sh
 
# 确保JAVA_HOME设置正确
export JAVA_HOME=/usr/lib/jvm/java-7-openjdk-amd64

配置核心参数#

vim core-site.xml
<configuration>
    <property>
        <name>fs.defaultFS</name>
        <value>file:///</value>
    </property>
    <property>
        <name>hadoop.tmp.dir</name>
        <value>/home/hadoopuser/tmp</value>
    </property>
</configuration>

配置HDFS参数#

vim hdfs-site.xml
<configuration>
    <property>
        <name>dfs.replication</name>
        <value>1</value>
    </property>
</configuration>

配置MapReduce参数#

cp mapred-site.xml.template mapred-site.xml
vim mapred-site.xml
<configuration>
    <property>
        <name>mapreduce.framework.name</name>
        <value>local</value>
    </property>
</configuration>

配置说明: 单机模式下所有服务均在单一JVM内运行,无需启动HDFS/YARN守护进程


8. 运行验证测试#

创建测试数据#

mkdir ~/input
echo "Hello World" > ~/input/file1.txt
echo "Hello Hadoop" > ~/input/file2.txt

运行WordCount示例#

hadoop jar $HADOOP_HOME/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.4.0.jar \
wordcount ~/input ~/output

查看结果#

cat ~/output/*
# 应输出:
# Hadoop  1
# Hello   2
# World   1

性能调优: 单机模式下可调整mapreduce.map.memory.mbmapreduce.reduce.memory.mb控制内存分配


9. 最佳实践与常见问题#

最佳实践#

  1. 日志管理: 使用$HADOOP_HOME/logs目录监控任务日志
  2. 配置分离: 生产环境推荐将配置文件放在独立目录
  3. 资源限制: 在单机环境设置合理的JVM内存限制
    # 在mapred-site.xml中增加
    <property>
        <name>mapreduce.map.java.opts</name>
        <value>-Xmx512m</value>
    </property>

常见问题解决#

  1. Java版本不兼容:

    Unsupported major.minor version 52.0

    解决方案:确保使用Java 7而非更高版本

  2. 权限错误:

    Permission denied (publickey)

    解决方案:检查~/.ssh/authorized_keys权限是否为600

  3. ClassNotFound异常: 解决方案:完整配置HADOOP_CLASSPATH

    export HADOOP_CLASSPATH=$(hadoop classpath)

10. 总结#

通过本指南,我们完成了Ubuntu 14.04系统上Hadoop 2.4.0单机模式的完整安装和验证流程。单机模式提供了学习MapReduce编程模型的理想环境,无需复杂集群部署。虽然此模式不适合处理大规模数据,但作为开发测试环境具有显著优势:

  • 验证代码逻辑正确性
  • 快速调试配置问题
  • 低资源占用学习环境

后续可在此基础上升级到伪分布式或完全分布式集群模式,只需修改部分核心配置文件即可实现平滑过渡。

参考#

  1. Apache Hadoop 官方文档
  2. Ubuntu 14.04 LTS 官方文档
  3. Hadoop单机模式配置指南