在配置HDFS前,需完成以下基础环境准备:
sudo apt update && sudo apt upgrade -ysudo apt install -y openjdk-8-jdk
java -version # 验证安装(需显示Java版本信息)
sudo apt install -y openssh-server
ssh-keygen -t rsa # 生成密钥对
cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys # 配置本地免密登录
wget https://downloads.apache.org/hadoop/core/hadoop-3.3.4/hadoop-3.3.4.tar.gz
tar -xzvf hadoop-3.3.4.tar.gz -C /usr/local/
sudo chown -R $USER:$USER /usr/local/hadoop-3.3.4
编辑~/.bashrc文件,添加以下内容:
export HADOOP_HOME=/usr/local/hadoop-3.3.4
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
使配置生效:
source ~/.bashrc
HDFS的资源池配置主要通过hdfs-site.xml文件实现,需调整以下关键参数:
编辑$HADOOP_HOME/etc/hadoop/hdfs-site.xml,添加存储路径(支持多磁盘扩展):
<configuration>
<!-- NameNode元数据存储目录 -->
<property>
<name>dfs.namenode.name.dir</name>
<value>/data/hdfs/namenode</value> <!-- 可配置多个路径,用逗号分隔 -->
</property>
<!-- DataNode数据存储目录 -->
<property>
<name>dfs.datanode.data.dir</name>
<value>/data/hdfs/datanode,/mnt/disk2/hdfs/datanode</value> <!-- 多磁盘路径提升容量 -->
</property>
</configuration>
dfs.datanode.max.xcievers调整并发处理能力):<property>
<name>dfs.datanode.max.xcievers</name>
<value>4096</value> <!-- 提升数据传输并发数 -->
</property>
<property>
<name>dfs.replication</name>
<value>3</value> <!-- 生产环境建议3副本,测试环境可设为1 -->
</property>
<property>
<name>dfs.blocksize</name>
<value>256M</value> <!-- 根据文件大小调整,提升MapReduce并行效率 -->
</property>
通过hdfs-site.xml启用配额管理,限制目录/用户的存储空间和文件数量:
<property>
<name>dfs.quota.enabled</name>
<value>true</value> <!-- 开启配额功能 -->
</property>
首次启动HDFS前,需格式化NameNode以初始化元数据:
hdfs namenode -format
启动HDFS服务并验证状态:
start-dfs.sh # 启动NameNode和DataNode
jps # 查看进程(需显示NameNode、DataNode)
hdfs dfsadmin -report # 查看DataNode存储路径及使用情况
hdfs dfs -mkdir -p /user/test # 创建测试目录
hdfs dfsadmin -setSpaceQuota 10G /user/test # 设置目录空间配额为10GB
hdfs dfsadmin -setQuota 1000 /user/test # 设置目录文件数量配额为1000
hdfs-site.xml,在dfs.datanode.data.dir中添加新路径,重启DataNode:stop-dfs.sh && start-dfs.sh
core-site.xml和hdfs-site.xml,启动DataNode后,NameNode会自动识别新节点。/data/hdfs)的权限正确(chown -R hdfs:hdfs /data/hdfs)。core-site.xml和hdfs-site.xml配置需保持一致。sudo ufw allow 9000/tcp
sudo ufw allow 50010/tcp
通过以上步骤,可在Ubuntu上完成HDFS资源池的配置,实现存储资源的灵活管理与扩展。