hdfs有多级目录 合并文件下载到本地(递归下载)

该代码示例展示了如何使用Hadoop的FileSystem API从HDFS中递归下载多级目录下的所有文件,并将它们合并到本地的一个文件中。通过调用`myMerge()`方法,可以实现HDFS路径`/data2`下所有文件的下载和合并,最终保存到本地的`D:/data/file0913.txt`。
package com.hdfs;


import java.io.FileOutputStream;
import java.io.OutputStream;


import org.apache.hadoop.fs.FSDataInputStream;
import org.apache.hadoop.fs.FileStatus;
import org.apache.hadoop.fs.FileSystem;
import org.apache.hadoop.fs.LocalFileSystem;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.io.IOUtils;


import com.beicai.utils.MyUtils;
/**
 * 
 * @described hdfs有多级目录 合并下载到本地
 *
 */
public class HdfsWork2 {
public static void main(String[] args) throws Exception {
myMerge();
}

public static void myWrite(Path path,FileSystem fs,OutputStream fsdos) throws Exception{
1.在 HDFS 的/user目录下创建一个名为hdfs_prac_01的目录,创建完成后用ls命令查看/user目录,确认该目录是否成功创建。 2.使用vi命令在 Linux 本地目录下创建data_01.txt文件,输入内容 “HDFS Practical Exercise 01”,再将该文件上传到 HDFS 的/user/hdfs_prac_01目录,上传后验证 HDFS 目标目录是否存在该文件。 3.执行 HDFS 命令,查看/user/hdfs_prac_01/data_01.txt文件的内容,确保文件上传后的内容与本地一致。 4.在 HDFS 的/user/hdfs_prac_01目录下,创建一个名为subdir_01的子目录,然后将/user/hdfs_prac_01/data_01.txt文件复制到subdir_01目录,复制后分别查看源路径和目标路径的文件情况。 5.使用vi在 Linux 本地创建append_01.txt文件,输入内容 “Add New Line For Append”,将该文件的内容追加到 HDFS /user/hdfs_prac_01/data_01.txt文件末尾,之后查看data_01.txt的最终内容。 6.将 HDFS /user/hdfs_prac_01/subdir_01/data_01.txt文件移动到/user/hdfs_prac_01/subdir_02目录(需先创建subdir_02目录),移动后验证subdir_01目录是否还存在该文件。 7.执行 HDFS 命令,删除/user/hdfs_prac_01/subdir_01目录(确保该目录已无文件),删除后查看/user/hdfs_prac_01目录下是否还有subdir_01。 8.在 Linux 本地目录下创建data_02.txt(内容 “Multiple Files Merge Test 02”)和data_03.txt(内容 “Multiple Files Merge Test 03”),将这两个文件上传到 HDFS /user/hdfs_prac_01目录,上传后统计该目录下的文件总数。 9.使用 HDFS 命令,将/user/hdfs_prac_01/data_02.txt和/user/hdfs_prac_01/data_03.txt合并下载到 Linux 本地~/merged目录(需先创建该目录),合并后的文件命名为merged_data.txt,下载后查看merged_data.txt的内容。 10.在 HDFS 的/tmp目录下创建test_dir目录,然后将/user/hdfs_prac_01/data_01.txt文件复制到/tmp/test_dir目录,复制时要求保留文件的修改时间,应使用cp命令的哪个参数?执行完整命令并验证文件修改时间。 11.使用 HDFS 命令,查看/user/hdfs_prac_01目录下所有文件的权限信息(包括所有者、所属组、读写执行权限),写出完整命令并解释权限字段的含义。 12.在 Linux 本地创建data_04.txt,输入内容“HDFS Practical Exercise 04”,然后使用gzip命令压缩data_04.txt,将压缩后的文件将其上传到 HDFS /user/hdfs_prac_01目录后,使用text命令查看该文件内容,对比text命令与cat命令输出结果的差异(若有)。 13.将 HDFS /user/hdfs_prac_01/data_04.txt文件重命名为renamed_data_04.txt,重命名后查看/user/hdfs_prac_01目录文件名称是否变更。 14.执行 HDFS 命令,递归查看/user/hdfs_prac_01目录下所有子目录文件的信息(包括多级目录),写出完整命令并说明参数作用。 15.将 Linux 本地目录下所有以 “data_” 开头的.txt文件,批量上传到 HDFS /user/hdfs_prac_01/batch_upload目录(需先创建该目录),上传后查看batch_upload目录
最新发布
10-17
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值