Ubuntu上Hadoop数据存储管理指南
Hadoop分布式文件系统(HDFS)是Ubuntu环境下Hadoop的核心数据存储组件,采用主从架构:
dfs.namenode.name.dir配置项指定(如file:///usr/local/hadoop/data/namenode)。dfs.blocksize调整),其数据存储路径由dfs.datanode.data.dir配置项指定(如file:///usr/local/hadoop/data/datanode)。dfs.replication参数控制数据块的副本数量(默认为3),确保数据的高容错性。sudo apt install openjdk-11-jdk)并配置Java环境变量(export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64)。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 # 修改目录所有者为当前用户
$HADOOP_HOME/etc/hadoop/hdfs-site.xml),添加以下内容:<configuration>
<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>
这些配置将确保HDFS元数据和实际数据分别存储在指定目录中。hdfs namenode -format
start-dfs.sh
启动后,可通过jps命令检查进程状态(应看到NameNode和DataNode进程)。HDFS提供了丰富的命令行工具,用于管理数据存储:
hdfs dfsadmin -report # 查看集群健康状态、DataNode列表、存储容量等信息
hdfs dfs -mkdir -p /user/hadoop/input # 在HDFS根目录下创建多级目录
hdfs dfs -put /local/path/file.txt /user/hadoop/input # 将本地文件上传至HDFS
hdfs dfs -get /user/hadoop/input/file.txt /local/path/ # 将HDFS文件下载至本地
hdfs dfs -rm /user/hadoop/input/file.txt # 删除HDFS中的文件
hdfs dfs -rmdir /user/hadoop/input # 删除空目录(非空目录需添加`-r`参数递归删除)
hdfs dfs -cat /user/hadoop/input/file.txt # 查看HDFS文件的内容
这些命令是日常管理HDFS数据的基础,需熟练掌握。
dfs.replication参数(如3节点集群设置为3,2节点集群设置为2),平衡数据可靠性和存储成本。dfs.blocksize参数(如顺序读取大文件时设置为256MB或512MB,随机读取小文件时保持128MB),提高数据读取效率。hadoop archive工具)减少NameNode压力。hdfs dfs -put -z /local/file.txt /hdfs/dest/),减少存储空间占用和网络传输时间。df -h命令),确保磁盘空间充足(建议预留20%以上空间),避免因磁盘满导致数据写入失败。dfs.namenode.name.dir目录(如使用rsync工具同步至远程服务器),防止元数据丢失导致集群无法恢复。hdfs dfs -chmod和hdfs dfs -chown命令设置文件/目录的访问权限(如hdfs dfs -chmod 700 /user/hadoop/private),避免未授权访问。core-site.xml和hdfs-site.xml),确保只有合法用户能访问HDFS数据。