Ubuntu系统管理HDFS文件系统的完整流程
在Ubuntu上管理HDFS前,需完成以下基础环境配置:
sudo apt update && sudo apt upgrade -y更新系统软件包;安装编译工具和SSH服务(用于集群通信):sudo apt install -y build-essential openssh-server。sudo apt install openjdk-8-jdk
echo "export JAVA_HOME=$(readlink -f /usr/bin/javac | sed 's:/bin/javac::')" >> ~/.bashrc
echo "export PATH=\$PATH:\$JAVA_HOME/bin" >> ~/.bashrc
source ~/.bashrc
验证安装:java -version(需显示Java 1.8.x版本)。下载并解压Hadoop
从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路径:
echo "export HADOOP_HOME=/usr/local/hadoop" >> ~/.bashrc
echo "export PATH=\$PATH:\$HADOOP_HOME/bin:\$HADOOP_HOME/sbin" >> ~/.bashrc
source ~/.bashrc
配置HDFS核心参数
进入Hadoop配置目录$HADOOP_HOME/etc/hadoop,修改以下文件:
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://localhost:9000</value> <!-- 单机模式地址 -->
</property>
</configuration>
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value> <!-- 单机模式设为1,集群需调整为3+ -->
</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>
创建HDFS数据目录
手动创建上述配置的存储路径,并赋予权限:
sudo mkdir -p /usr/local/hadoop/data/namenode /usr/local/hadoop/data/datanode
sudo chown -R $USER:$USER /usr/local/hadoop/data # 当前用户拥有目录权限
格式化NameNode
首次启动HDFS前,必须格式化NameNode(初始化元数据):
hdfs namenode -format
启动HDFS集群
执行以下命令启动HDFS及相关服务(NameNode、DataNode):
start-dfs.sh
验证服务是否启动:jps(应显示NameNode、DataNode进程)。
验证HDFS状态
hdfs dfsadmin -report
http://localhost:50070(可查看HDFS文件系统结构、存储使用情况)。停止HDFS集群
使用以下命令停止服务:
stop-dfs.sh
HDFS提供类似Linux的命令行工具hdfs dfs,用于管理文件和目录:
hdfs dfs -mkdir -p /user/hadoop/input(-p表示递归创建父目录)。hdfs dfs -put ~/localfile.txt /user/hadoop/input/(将本地文件复制到HDFS)。hdfs dfs -get /user/hadoop/input/localfile.txt ~/downloaded/(将HDFS文件复制到本地)。hdfs dfs -ls /user/hadoop/input(查看HDFS目录下的文件/子目录)。hdfs dfs -rm /user/hadoop/input/localfile.txt(删除文件);hdfs dfs -rmdir /user/hadoop/input/empty_dir(删除空目录);hdfs dfs -rm -r /user/hadoop/input/non_empty_dir(强制删除非空目录)。hdfs dfs -cat /user/hadoop/input/localfile.txt(显示文件内容)。dfs.blocksize(默认128MB),大文件可设为256MB或更大,小文件可设为64MB(减少寻址开销)。dfs.replication(生产环境通常设为3,单机测试设为1),平衡数据可靠性与存储成本。hadoop archive工具合并小文件。mapreduce.map.output.compress和mapreduce.output.fileoutputformat.compress参数。slaves文件并启动新节点),提高数据处理能力和容错性。通过以上步骤,可在Ubuntu系统上完成HDFS的安装、配置与日常管理,满足分布式文件存储需求。