HDFS命令

对于文件的操作,命令与linux的类似,但是要在前面加上hadoop fs

其基本的格式为 hadoop fs <agrs>

  1. 查看文件 hadoop fs -ls


  2. 建立路径 hadoop fs -mkdir


  3. 删除文件夹 hadoop fs -rm -r

    -r参数代表将此文件夹连同此文件夹下的所有文件删除


  4. 将本地文件放到HDFS上 hadoop fs -put [dir1][dir2]

    参数dir1代表本地路径,dir2代表HDFS路径


  5. 将HDFS上的文件下载到本地 hadoop fs -get [dir1][dir2]

    参数dir1代表HDFS路径,dir2代表本地路径


  6. 查看文件 hadoop fs -cat


  7. 合并HDFS中的文件并下载到本地 hadoop fs -getmerge [dir] [file]

    参数dir代表HDFS存储要合并的文件所在的路径,file代表将合并结果存储的本地文件名

    text1和wordcount合并后的内容


  8. 使用HUE,service hue start

    端口为8888,用户名密码都是hdfs


  9. 打开FileBrowser 界面 上面基本的对文件夹的操作都有按钮选项,如新建文件,文件夹,删除文件

    进入刚刚操作的目录 /data/test下


在 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、付费专栏及课程。

余额充值