阅读量:45
在Ubuntu上访问HDFS文件的步骤
1. 前提准备:安装并配置Hadoop
在Ubuntu上访问HDFS前,需先安装并启动Hadoop分布式文件系统。以下是关键步骤:
- 安装Java环境:Hadoop依赖Java,通过
sudo apt install openjdk-8-jdk安装OpenJDK 8,并通过java -version验证安装。 - 下载并解压Hadoop:从Apache官网下载Hadoop(如3.3.4版本),解压至
/usr/local/目录:wget http://archive.apache.org/dist/hadoop/core/hadoop-3.3.4/hadoop-3.3.4.tar.gz && tar -xzvf hadoop-3.3.4.tar.gz -C /usr/local/。 - 配置环境变量:编辑
~/.bashrc,添加export HADOOP_HOME=/usr/local/hadoop和export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin,运行source ~/.bashrc使配置生效。 - 配置HDFS核心文件:
core-site.xml:设置fs.defaultFS为hdfs://localhost:9000(NameNode地址)。hdfs-site.xml:设置dfs.replication为1(单机模式副本数),dfs.namenode.name.dir为NameNode数据目录(如/usr/local/hadoop/hdfs/namenode),dfs.datanode.data.dir为DataNode数据目录(如/usr/local/hadoop/hdfs/datanode)。
- 格式化NameNode:首次启动前需格式化,命令:
hdfs namenode -format。 - 启动HDFS服务:运行
start-dfs.sh启动HDFS,通过jps命令查看NameNode、DataNode进程是否运行。 - 验证HDFS状态:浏览器访问
http://localhost:9870(Hadoop 3.x版本),若出现HDFS管理界面则说明启动成功。
2. 使用HDFS Shell命令访问
Hadoop提供hdfs dfs命令(兼容hadoop fs)用于操作HDFS文件,常用命令如下:
- 查看HDFS根目录:
hdfs dfs -ls /(显示HDFS根目录下的文件/目录)。 - 创建HDFS目录:
hdfs dfs -mkdir -p /user/ubuntu(创建/user/ubuntu目录,-p表示递归创建)。 - 上传本地文件到HDFS:
hdfs dfs -put /home/ubuntu/localfile.txt /user/ubuntu/(将本地localfile.txt上传至HDFS的/user/ubuntu/目录)。 - 下载HDFS文件到本地:
hdfs dfs -get /user/ubuntu/remote_file.txt /home/ubuntu/(将HDFS中的remote_file.txt下载至本地/home/ubuntu/目录)。 - 查看HDFS文件内容:
hdfs dfs -cat /user/ubuntu/remote_file.txt(显示HDFS文件的内容)。 - 删除HDFS文件/目录:
hdfs dfs -rm /user/ubuntu/remote_file.txt(删除文件),hdfs dfs -rm -r /user/ubuntu/(递归删除目录)。
3. 挂载HDFS到Ubuntu本地文件系统(可选)
若需像访问本地磁盘一样访问HDFS,可通过**FUSE(用户态文件系统)**挂载HDFS。步骤如下:
- 安装hadoop-hdfs-fuse:运行
sudo apt-get install hadoop-hdfs-fuse安装FUSE工具。 - 创建挂载点:
mkdir -p /mnt/hdfs(本地挂载目录)。 - 挂载HDFS:运行
hadoop-fuse-dfs dfs://localhost:9000 /mnt/hdfs(将HDFS挂载至/mnt/hdfs,dfs://localhost:9000为NameNode地址)。 - 验证挂载:
ls /mnt/hdfs(查看HDFS根目录内容),此时可使用cd、cp等命令操作HDFS文件。 - 设置开机自动挂载:编辑
/etc/fstab,添加hadoop-fuse-dfs#dfs://localhost:9000 /mnt/hdfs fuse allow_other,usetrash,rw 2 0(替换为实际的NameNode地址),重启后自动挂载。
注意事项
- 权限问题:HDFS文件权限与Linux类似,确保当前用户对目标目录有读写权限(如
hdfs dfs -chmod修改权限)。 - NameNode地址:若HDFS部署在远程节点,需将
localhost替换为NameNode的实际IP或主机名。 - 挂载稳定性:FUSE挂载可能受网络影响,生产环境建议使用HDFS Shell或API操作。