sudo apt update && sudo apt upgrade -y确保系统软件包最新。sudo apt install -y build-essential openssh-server。Hadoop依赖Java运行,推荐安装OpenJDK 8或11(兼容性更好)。
sudo apt install -y openjdk-8-jdk。java -version,输出应包含Java版本信息(如openjdk version "1.8.0_221")。wget https://downloads.apache.org/hadoop/core/hadoop-3.3.4/hadoop-3.3.4.tar.gz。/usr/local):sudo tar -xzvf hadoop-3.3.4.tar.gz -C /usr/local/。sudo mv /usr/local/hadoop-3.3.4 /usr/local/hadoop。~/.bashrc文件(用户级配置)或/etc/profile(系统级配置),添加以下内容:export HADOOP_HOME=/usr/local/hadoop
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
source ~/.bashrc(或source /etc/profile)。进入Hadoop配置目录($HADOOP_HOME/etc/hadoop),修改以下文件:
core-site.xml(定义HDFS默认文件系统):
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://localhost:9000</value> <!-- 单机模式为localhost,集群模式替换为NameNode IP -->
</property>
</configuration>
hdfs-site.xml(定义HDFS存储路径和副本数):
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value> <!-- 单机模式设为1,集群模式根据节点数量调整(如3) -->
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>/usr/local/hadoop/data/namenode</value> <!-- NameNode元数据存储路径 -->
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>/usr/local/hadoop/data/datanode</value> <!-- DataNode数据存储路径 -->
</property>
</configuration>
(可选)yarn-site.xml(若启用YARN资源管理):
<configuration>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
<property>
<name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>
<value>org.apache.hadoop.mapred.ShuffleHandler</value>
</property>
</configuration>
(可选)workers文件(集群模式下指定DataNode节点):
编辑$HADOOP_HOME/etc/hadoop/workers,添加DataNode主机名(如slave1、slave2),每行一个。
sudo mkdir -p /usr/local/hadoop/data/namenode
sudo mkdir -p /usr/local/hadoop/data/datanode
sudo chown -R $USER:$USER /usr/local/hadoop/data
首次启动HDFS前,必须格式化NameNode(初始化元数据):
hdfs namenode -format
注意:格式化会清除所有HDFS数据,仅首次启动时执行一次。
start-dfs.sh
jps,输出应包含NameNode、DataNode(单机模式)或SecondaryNameNode(可选)。hdfs dfs -ls /。hdfs dfs -mkdir -p /user/$USER。hdfs dfs -put ~/test.txt /user/$USER/。hdfs dfs -get /user/$USER/test.txt ~/test_downloaded.txt。http://localhost:9870(HDFS NameNode Web界面),查看集群状态和文件系统。若部署HDFS集群,需配置主节点(NameNode)到从节点(DataNode)的SSH免密登录:
ssh-keygen -t rsa -P ''(直接回车,默认保存到~/.ssh/id_rsa)。ssh-copy-id slave1(替换为从节点主机名)。ssh slave1,无需输入密码即可登录。dfs.namenode.name.dir路径是否存在且权限正确,或尝试删除/usr/local/hadoop/data/namenode/current目录(重新格式化)。dfs.datanode.data.dir路径是否正确,或查看DataNode日志($HADOOP_HOME/logs/hadoop-*-datanode-*.log)。core-site.xml中的fs.defaultFS端口(如9001),确保未被其他服务占用。通过以上步骤,可在Ubuntu系统上完成HDFS的基础部署。如需扩展为集群模式,需重复“环境准备”至“启动HDFS服务”步骤在从节点执行,并同步配置文件(通过scp命令分发$HADOOP_HOME/etc/hadoop目录到所有从节点)。