在Ubuntu上配置HDFS的详细步骤
首先更新系统软件包并安装基础工具,确保系统处于最新状态:
sudo apt update && sudo apt upgrade -y
sudo apt install -y build-essential openssh-server
Hadoop依赖Java运行环境,推荐安装OpenJDK 8(Hadoop 3.x兼容版本):
sudo apt install -y openjdk-8-jdk
# 验证Java安装
java -version
若未自动配置环境变量,可手动编辑~/.bashrc文件,添加以下内容并使生效:
echo 'export JAVA_HOME=$(readlink -f /usr/bin/javac | sed "s:/bin/javac::")' >> ~/.bashrc
echo 'export PATH=$JAVA_HOME/bin:$PATH' >> ~/.bashrc
source ~/.bashrc
从Apache Hadoop官网下载稳定版本(如3.3.4),解压至/usr/local/目录:
wget https://downloads.apache.org/hadoop/common/hadoop-3.3.4/hadoop-3.3.4.tar.gz
tar -xzvf hadoop-3.3.4.tar.gz -C /usr/local/
sudo mv /usr/local/hadoop-3.3.4 /usr/local/hadoop # 可选:重命名目录
编辑~/.bashrc文件,添加Hadoop相关环境变量:
echo 'export HADOOP_HOME=/usr/local/hadoop' >> ~/.bashrc
echo 'export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin' >> ~/.bashrc
source ~/.bashrc
验证环境变量是否生效:
echo $HADOOP_HOME # 应输出Hadoop安装路径
进入Hadoop配置目录,编辑以下关键文件:
配置HDFS的默认文件系统地址(指向本地NameNode):
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://localhost:9000</value>
</property>
</configuration>
配置NameNode和DataNode的数据目录、副本数(单机环境设为1):
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value> <!-- 单机环境设为1,集群环境需调整为节点数 -->
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>/usr/local/hadoop/data/namenode</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>/usr/local/hadoop/data/datanode</value>
</property>
</configuration>
手动创建NameNode和DataNode的数据存储目录,并设置所有权:
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
格式化后会生成VERSION文件和edits日志,注意:格式化会清除已有数据,仅首次启动需执行。
使用以下命令启动HDFS集群(包含NameNode、DataNode等进程):
start-dfs.sh
启动后,可通过jps命令验证进程是否运行:
jps
# 正常输出应包含:NameNode、DataNode、SecondaryNameNode
http://localhost:9870(Hadoop 3.x默认端口),查看HDFS文件系统状态。hdfs dfs -mkdir -p /user/$USER # 创建用户目录
hdfs dfs -put ~/test.txt /user/$USER/ # 上传本地文件到HDFS
hdfs dfs -ls /user/$USER # 列出HDFS目录内容
若系统启用了UFW防火墙,需允许Hadoop相关端口通信:
sudo ufw allow 9000 # NameNode RPC端口
sudo ufw allow 9870 # NameNode Web UI端口
sudo ufw allow 50070 # 旧版本Web UI端口(可选)
sudo chown -R $USER:$USER /usr/local/hadoop/data)。core-site.xml中的fs.defaultFS端口(如9001)及hdfs-site.xml中的对应端口。jps未显示预期进程,可尝试重新启动服务(stop-dfs.sh后再次start-dfs.sh)。通过以上步骤,即可在Ubuntu系统上完成HDFS的基础配置并验证其运行状态。如需扩展为集群环境,还需配置slaves文件、SSH无密码登录及多节点环境变量。