在Ubuntu中配置HDFS的详细步骤
sudo apt update && sudo apt upgrade -y
,确保系统软件包为最新版本。sudo apt install -y build-essential openssh-server
,安装编译工具和SSH服务(用于集群节点间通信)。sudo apt install -y openjdk-8-jdk
java -version # 验证安装(需显示Java版本信息)
wget
命令获取安装包:wget https://downloads.apache.org/hadoop/common/hadoop-3.3.4/hadoop-3.3.4.tar.gz
/usr/local/
):sudo tar -xzvf hadoop-3.3.4.tar.gz -C /usr/local/
~/.bashrc
文件(用户级环境变量)或/etc/profile
(系统级),添加以下内容:export HADOOP_HOME=/usr/local/hadoop-3.3.4
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
source ~/.bashrc # 或 source /etc/profile
进入Hadoop配置目录$HADOOP_HOME/etc/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-3.3.4/data/namenode</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>/usr/local/hadoop-3.3.4/data/datanode</value>
</property>
</configuration>
手动创建NameNode和DataNode的存储目录,并设置所有权:
sudo mkdir -p /usr/local/hadoop-3.3.4/data/namenode
sudo mkdir -p /usr/local/hadoop-3.3.4/data/datanode
sudo chown -R $USER:$USER /usr/local/hadoop-3.3.4/data # 将目录所有者设为当前用户
首次启动HDFS前,必须格式化NameNode以初始化文件系统元数据:
hdfs namenode -format
格式化后会生成VERSION
文件和edits
日志,注意:格式化会清除已有数据,仅首次启动需执行。
使用以下命令启动HDFS(包含NameNode、DataNode等进程):
start-dfs.sh
jps
,应看到以下进程:NameNode
DataNode
SecondaryNameNode
http://localhost:50070
(Hadoop 3.x版本可能为http://localhost:9870
),查看HDFS状态页面。若系统启用了ufw
防火墙,需允许Hadoop相关端口通过:
sudo ufw allow 9000 # NameNode RPC端口
sudo ufw allow 50070 # HDFS Web界面端口
hdfs dfs -mkdir -p /user/$USER/input
hdfs dfs -put ~/test.txt /user/$USER/input
hdfs dfs -ls /user/$USER/input
hdfs dfs -get /user/$USER/input/test.txt ~/download.txt
hdfs dfs -rm /user/$USER/input/test.txt
dfs.replication
设为1即可,集群环境需根据节点数量调整(通常为3)。9870
,需根据实际版本调整。通过以上步骤,即可在Ubuntu系统上完成HDFS的基本配置并启动服务。如需扩展为集群环境,还需配置slaves
文件、SSH无密码登录及多节点环境变量。