Ubuntu环境下HDFS配置环境搭建指南
sudo apt update && sudo apt upgrade -y,确保系统软件包为最新版本。sudo apt install -y build-essential openssh-server,安装编译工具和SSH服务(用于集群节点间通信)。Hadoop依赖Java运行,需安装OpenJDK 8(Hadoop 3.x兼容版本):
sudo apt install -y openjdk-8-jdk安装JDK。java -version,输出应包含openjdk version "1.8.0_xxx"。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/。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,修改以下文件:
配置HDFS的默认文件系统地址(本地模式):
<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> <!-- 集群模式下需调整为数据节点数量 -->
</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>
配置MapReduce框架为YARN:
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
配置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>
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日志,注意:格式化会清除已有数据,生产环境需谨慎操作。
start-dfs.sh
jps,应看到NameNode、DataNode进程(若为伪分布式模式,无SecondaryNameNode)。http://localhost:9870(Hadoop 3.x版本,默认端口为9870,旧版本为50070),查看文件系统状态。# 创建HDFS目录
hdfs dfs -mkdir -p /user/$USER/input
# 上传本地文件到HDFS
hdfs dfs -put ~/test.txt /user/$USER/input
# 列出HDFS目录内容
hdfs dfs -ls /user/$USER/input
# 下载HDFS文件到本地
hdfs dfs -get /user/$USER/input/test.txt ~/download_test.txt
# 删除HDFS文件
hdfs dfs -rm /user/$USER/input/test.txt
允许Hadoop服务端口通过防火墙,避免网络访问被拦截:
sudo ufw allow 9000 # NameNode RPC端口
sudo ufw allow 9870 # HDFS Web UI端口
sudo ufw allow 50070 # 旧版本HDFS Web UI端口
fs.defaultFS为集群NameNode地址,并将dfs.replication设置为数据节点数量。netstat -tulnp | grep 端口号查找占用进程并终止,或修改Hadoop配置文件中的端口号。$HADOOP_HOME/logs目录下的日志文件(如NameNode.log、DataNode.log),定位问题原因。