Hadoop依赖Java运行环境,需先安装OpenJDK(推荐11及以上版本)。以Ubuntu 22.04/24.04为例,执行以下命令:
sudo apt update
sudo apt install openjdk-11-jdk # 或 openjdk-8-jdk(兼容旧版本Hadoop)
验证Java安装是否成功:
java -version
# 应输出类似:openjdk version "11.0.xx",确认Java版本符合Hadoop要求
从Apache官网下载稳定版本的Hadoop(如3.3.5),解压到指定目录(如/opt,避免权限问题):
wget https://dlcdn.apache.org/hadoop/common/hadoop-3.3.5/hadoop-3.3.5.tar.gz
sudo tar -zxvf hadoop-3.3.5.tar.gz -C /opt/
sudo mv /opt/hadoop-3.3.5 /opt/hadoop # 重命名为简洁目录名
环境变量配置分为系统级(影响所有用户)和用户级(仅影响当前用户),推荐优先配置用户级变量(灵活性更高)。
编辑当前用户的~/.bashrc文件(bash shell的配置文件):
nano ~/.bashrc
在文件末尾添加以下内容(根据实际路径调整):
# Java环境变量
export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64 # 替换为你的Java安装路径(通过`update-alternatives --config java`查看)
export PATH=$JAVA_HOME/bin:$PATH
# Hadoop环境变量
export HADOOP_HOME=/opt/hadoop # Hadoop安装目录
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop # Hadoop配置文件目录
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin # 添加Hadoop命令到PATH
保存并退出(Ctrl+O→Enter→Ctrl+X),使配置立即生效:
source ~/.bashrc
若需所有用户共享Hadoop环境,可编辑/etc/profile文件:
sudo nano /etc/profile
在文件末尾添加与~/.bashrc相同的Hadoop环境变量,保存后执行:
source /etc/profile
执行以下命令检查环境变量是否生效:
echo $HADOOP_HOME # 应输出Hadoop安装目录(如/opt/hadoop)
hadoop version # 应输出Hadoop版本信息(如Hadoop 3.3.5)
Hadoop的环境变量需配合配置文件使用,主要修改$HADOOP_HOME/etc/hadoop目录下的以下文件:
hadoop-env.sh该文件是Hadoop的专属环境变量配置文件,需设置JAVA_HOME(部分版本需取消注释):
sudo nano $HADOOP_HOME/etc/hadoop/hadoop-env.sh
找到# export JAVA_HOME=行,修改为:
export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64 # 与~/.bashrc中的路径一致
core-site.xml配置Hadoop的默认文件系统和IPC通信地址:
nano $HADOOP_HOME/etc/hadoop/core-site.xml
添加以下内容(伪分布式模式):
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://localhost:9000</value> <!-- HDFS的默认NameNode地址 -->
</property>
</configuration>
hdfs-site.xml配置HDFS的数据存储路径和副本数(伪分布式模式下副本数为1):
nano $HADOOP_HOME/etc/hadoop/hdfs-site.xml
添加以下内容:
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value> <!-- 数据副本数(伪分布式设为1) -->
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>/opt/hadoop/data/namenode</value> <!-- NameNode元数据存储路径 -->
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>/opt/hadoop/data/datanode</value> <!-- DataNode数据存储路径 -->
</property>
</configuration>
mapred-site.xml配置MapReduce框架(需先复制模板文件):
cp $HADOOP_HOME/etc/hadoop/mapred-site.xml.template $HADOOP_HOME/etc/hadoop/mapred-site.xml
nano $HADOOP_HOME/etc/hadoop/mapred-site.xml
添加以下内容:
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value> <!-- 使用YARN作为MapReduce运行框架 -->
</property>
</configuration>
yarn-site.xml配置YARN资源管理器:
nano $HADOOP_HOME/etc/hadoop/yarn-site.xml
添加以下内容:
<configuration>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value> <!-- Shuffle服务名称 -->
</property>
<property>
<name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
<value>org.apache.hadoop.mapred.ShuffleHandler</value> <!-- Shuffle处理器类 -->
</property>
<property>
<name>yarn.resourcemanager.hostname</name>
<value>localhost</value> <!-- ResourceManager地址(伪分布式设为localhost) -->
</property>
</configuration>
首次使用HDFS前需格式化NameNode(会清空所有数据,生产环境慎用):
hdfs namenode -format
启动HDFS和YARN服务:
start-dfs.sh # 启动HDFS(NameNode、DataNode)
start-yarn.sh # 启动YARN(ResourceManager、NodeManager)
验证服务是否启动:
jps # 应显示NameNode、DataNode、ResourceManager、NodeManager等进程
访问Hadoop Web界面:
http://localhost:9870http://localhost:8088通过以上步骤,即可完成Ubuntu环境下Hadoop环境变量的定制与基础配置。后续可根据需求调整配置文件(如集群模式、资源分配等)。