在 Linux 环境下,从 HDFS(Hadoop Distributed File System) 下载数据,通常使用 Hadoop 自带的命令行工具 hdfs dfs 或 hadoop fs。下面按常见场景说明。
hdfs dfs -get /user/hadoop/data/file.txt /local/path/
或
hadoop fs -get /user/hadoop/data/file.txt ./local_dir/
说明:
/user/hadoop/data/file.txt是 HDFS 路径/local/path/是 Linux 本地路径
hdfs dfs -get /user/hadoop/data/ /local/path/
hdfs dfs -copyToLocal /user/hadoop/data/file.txt /local/path/
-get 和 -copyToLocal 本质相同,后者更明确。
hdfs dfs -ls /user/hadoop/data/
查看文件内容(小文件):
hdfs dfs -cat /user/hadoop/data/file.txt
如果 HDFS 上是分片文件(如 part-00000, part-00001):
hdfs dfs -getmerge /user/hadoop/data/output ./result.txt
这会合并所有文件为一个本地文件 result.txt。
如果只有 HTTP 访问权限:
curl "http://namenode:50070/webhdfs/v1/user/hadoop/data/file.txt?op=OPEN" -o file.txt
Permission denied
解决:
kinit user 或 sudo -u hdfscommand not found: hdfs
解决:
export HADOOP_HOME=/path/to/hadoop
export PATH=$HADOOP_HOME/bin:$PATH
# 登录 Linux 服务器
# 查看 HDFS 文件
hdfs dfs -ls /data/logs/
# 下载文件
hdfs dfs -get /data/logs/access.log ./logs/
# 查看本地
ls -lh ./logs/
如果你能告诉我:
我可以给你更精确的命令。