HDFS命令

1.创建目录

hadoop fs -mkdir /park01


2.查看目录

hadoop fs -ls /
hadoop fs -lsR / 递归查看

[img]http://dl2.iteye.com/upload/attachment/0124/8843/abfd12cf-fcaf-36c0-a08c-e8a403756c67.png[/img]

3.上传文件
文件路径 hdfs目录路径,即将文件上传的hdfs上的哪个目录中
hadoop fs -put ./file /park01


[img]http://dl2.iteye.com/upload/attachment/0124/8845/e4389b3a-e045-30d0-8205-0c20f93564f5.png[/img]

4.下载文件
hdfs文件路径,下载位置路径,即将hdfs上的文件下载到哪个地址
hadoop fs -get /park01/1.txt ./


[img]http://dl2.iteye.com/upload/attachment/0124/8847/f540e98d-710d-3c01-b2d7-827b45c91ca3.png[/img]

5.删除文件

hadoop fs -rm /park01/1.txt


[img]http://dl2.iteye.com/upload/attachment/0124/8849/358d83b6-6295-3168-bcda-6f7fb7524c2b.png[/img]

6.删除目录

hadoop fs -rmdir /park02

[img]http://dl2.iteye.com/upload/attachment/0124/8851/059e95f3-4f4d-3caf-8cc8-f08861099d73.png[/img]

删除非空目录

hadoop fs -rm -r /park01


[img]http://dl2.iteye.com/upload/attachment/0124/8853/f6fbd1b7-4d60-39e7-a5f1-50abb5051be7.png[/img]


7.查看文件内容

hadoop fs -cat /park01/1.txt


[img]http://dl2.iteye.com/upload/attachment/0124/8855/b2ae6cab-e2b5-3935-ae48-89c8bb34fcc6.png[/img]

hadoop fs -tail /park01/1.txt

8.目录重命名

hadoop fs -mv /park02 /park03


[img]http://dl2.iteye.com/upload/attachment/0124/8857/41622839-a4aa-33ea-8738-e514e59868dc.png[/img]

9.移动文件

hadoop fs -mv /1.txt /park03


[img]http://dl2.iteye.com/upload/attachment/0124/8859/9d2dee7d-cd17-3c5c-a695-d5aad90642ee.png[/img]


10.合并目录下文件内容
将 /park01 目录下的文件合并至3.txt文件内
hadoop fs -getmerge /park01 ./3.txt


[img]http://dl2.iteye.com/upload/attachment/0124/8861/cb6e06be-1998-3c4f-be6c-fd8d19481577.png[/img]

11.创建空白文件

hadoop fs -touch /park03/3.txt


[img]http://dl2.iteye.com/upload/attachment/0124/8863/b98cedc6-02ee-31aa-aa0e-d8dc6d3ea6e0.png[/img]

12.分区查看

hadoop fsck /park01/1.txt -files -blocks -locations -racks


[img]http://dl2.iteye.com/upload/attachment/0124/8995/296d9672-ea48-3f86-bef3-741b5e2265d9.png[/img]

13.进入安全模式

hadoop dfsadmin -safemode enter


[img]http://dl2.iteye.com/upload/attachment/0124/8997/286faec1-bc93-30c7-8fc8-cf2fbc9c146a.png[/img]

安全模式下不允许进行修改


[img]http://dl2.iteye.com/upload/attachment/0124/8999/1d264069-0f5b-3764-8eb0-16ed6b333f7c.png[/img]

14.退出安全模式

hadoop dfsadmin -safemode leave


[img]http://dl2.iteye.com/upload/attachment/0124/9001/3513c28f-4f2d-376c-aedb-71ee3cb2f551.png[/img]
在 Apache Flink 中,如果你使用 `FsStateBackend` 并配置了 HDFS 路径(例如 `hdfs://namenode:9000/flink/checkpoints`),Flink 会通过 Hadoop 的 Java API 与 HDFS 交互,进行 Checkpoint 和 Savepoint 的写入和读取操作。 --- ## ✅ 答案: ### ✅ Flink 本身**不直接调用 HDFS 命令行(如 `hdfs dfs -put`)**,而是使用 Hadoop 的 Java API 来操作 HDFS 上的 Checkpoint 数据。 --- ## ✅ Flink 是如何与 HDFS 交互的? Flink 使用 `org.apache.hadoop.fs.FileSystem` 类(Hadoop API)来操作 HDFS 文件系统。这些操作包括: - 创建目录 - 写入 Checkpoint 文件 - 读取 Savepoint 文件 - 删除过期的 Checkpoint 这些操作是通过 Hadoop 客户端完成的,不需要调用命令行 `hdfs`。 --- ## ✅ 示例:Flink 使用 HDFS 作为 Checkpoint 存储路径 ```java StreamExecutionEnvironment env = StreamExecutionEnvironment.getExecutionEnvironment(); // 设置 FsStateBackend,使用 HDFS 作为 Checkpoint 存储路径 env.setStateBackend(new FsStateBackend("hdfs://namenode:9000/flink/checkpoints")); // 启用 Checkpoint env.enableCheckpointing(5000); // 每 5 秒做一次 Checkpoint env.addSource(new FlinkKafkaConsumer<>("input-topic", new SimpleStringSchema(), props)) .keyBy(keySelector) .process(new MyKeyedProcessFunction()) .addSink(new MySink()); env.execute("Job with HDFS Checkpoint"); ``` --- ## ✅ Flink 如何配置 Hadoop 环境? 为了使 Flink 能访问 HDFS,你需要: ### 1. 配置 `HADOOP_CLASSPATH`(可选) 确保 Flink 能找到 Hadoop 的类路径: ```bash export HADOOP_CLASSPATH=`hadoop classpath` ``` ### 2. 将 Hadoop 配置文件放到 Flink `conf` 目录下: - `core-site.xml` - `hdfs-site.xml` Flink 会自动加载这些配置文件来连接 HDFS。 ### 3. 使用 Hadoop 配置对象(可选) 你也可以在代码中手动设置 Hadoop 配置: ```java Configuration config = new Configuration(); config.set("fs.defaultFS", "hdfs://namenode:9000"); config.set("hadoop.job.ugi", "hadoop,password"); UserGroupInformation.setConfiguration(config); ``` --- ## ✅ Flink Checkpoint 在 HDFS 中的目录结构 Flink 的 Checkpoint 数据会以如下方式存储在 HDFS 中: ``` hdfs://namenode:9000/flink/checkpoints/ └── <job-id>/ ├── chk-123/ │ ├── a1-0 │ ├── a2-0 │ └── metadata └── latest ``` - `chk-123`:Checkpoint ID,123 表示第 123 次 Checkpoint - `metadata`:元数据文件,记录 Checkpoint 的元信息 - `latest`:符号链接,指向最新的 Checkpoint 目录 --- ## ✅ 你可以手动使用 HDFS 命令查看这些文件 虽然 Flink 不使用命令行操作 HDFS,但你可以使用 `hdfs dfs` 命令查看和管理这些文件: ```bash # 查看 Checkpoint 文件 hdfs dfs -ls /flink/checkpoints/<job-id>/chk-123 # 查看元数据文件内容 hdfs dfs -cat /flink/checkpoints/<job-id>/chk-123/metadata # 删除过期 Checkpoint hdfs dfs -rm -r /flink/checkpoints/<job-id>/chk-100 ``` --- ## ✅ 总结 | 操作 | 是否使用命令行 | |------|----------------| | Flink 写入 Checkpoint 到 HDFS | ❌ 不使用 `hdfs dfs` 命令行,使用 Hadoop Java API | | 查看或管理 Checkpoint 文件 | ✅ 可以使用 `hdfs dfs` 命令行 | | 配置 Flink 与 HDFS 的连接 | ✅ 通过 `flink-conf.yaml` 或 `core-site.xml` 配置 | --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值