在Ubuntu中配置HDFS的详细步骤
首先更新系统软件包列表,安装构建工具和SSH服务(用于节点间通信):
sudo apt update && sudo apt upgrade -y
sudo apt install -y build-essential openssh-server
Hadoop依赖Java环境,推荐使用OpenJDK 8:
sudo apt install -y openjdk-8-jdk
# 验证Java安装
java -version # 应输出Java 1.8.x版本信息
生成SSH密钥对并将公钥复制到本地主机,实现免密登录:
ssh-keygen -t rsa -P '' # 按回车键生成默认路径的密钥
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys # 将公钥追加到授权文件
chmod 600 ~/.ssh/authorized_keys # 设置文件权限
# 测试SSH连接
ssh localhost # 输入密码后应无需再次输入
从Apache Hadoop官网下载稳定版本(如3.3.4),解压到/usr/local/目录:
wget https://downloads.apache.org/hadoop/common/hadoop-3.3.4/hadoop-3.3.4.tar.gz
sudo tar -xzvf hadoop-3.3.4.tar.gz -C /usr/local/
# 重命名目录(可选)
sudo mv /usr/local/hadoop-3.3.4 /usr/local/hadoop
编辑~/.bashrc文件,添加Hadoop相关环境变量:
nano ~/.bashrc
在文件末尾添加以下内容(替换/usr/local/hadoop为你的实际安装路径):
export HADOOP_HOME=/usr/local/hadoop
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
使配置生效:
source ~/.bashrc
进入Hadoop配置目录,修改以下文件:
core-site.xml设置HDFS的默认文件系统地址(指向本地NameNode):
nano $HADOOP_HOME/etc/hadoop/core-site.xml
添加以下内容:
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://localhost:9000</value>
</property>
</configuration>
hdfs-site.xml设置NameNode和DataNode的目录及副本数(单机模式副本数为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>/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>
手动创建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
格式化后会提示“Successfully formatted”,表示成功。
使用以下命令启动HDFS服务(包含NameNode和DataNode):
start-dfs.sh
通过jps命令查看HDFS相关进程:
jps
应看到以下进程(若未显示,需检查配置文件语法):
NameNode:HDFS的主节点,负责元数据管理。DataNode:HDFS的数据节点,负责存储实际数据。打开浏览器,访问http://localhost:9870(Hadoop 3.x版本默认端口),若看到HDFS的文件系统状态页面,说明启动成功。
配置完成后,可使用以下命令操作HDFS:
hdfs dfs -mkdir -p /user/testhdfs dfs -put ~/localfile.txt /user/test/remotefile.txthdfs dfs -ls /user/testhdfs dfs -get /user/test/remotefile.txt ~/localfile.txthdfs dfs -rm /user/test/remotefile.txt9000或9870被占用,可在配置文件中修改为其他端口(如9001)。sudo ufw allow 9000/tcp # NameNode RPC端口
sudo ufw allow 9870/tcp # HDFS Web UI端口
core-site.xml中修改fs.defaultFS为集群NameNode地址,并在slaves文件中添加DataNode主机名。通过以上步骤,即可在Ubuntu系统上完成HDFS的基本配置并运行。