HDFS两种操作方式:命令行和Java API

HDFS 文件操作有两种方式:一种是命令行方式,Hadoop 提供了一套与 Linux 文件命令类似的命令行工具;另一种是 Java API,即利用 Hadoop 的 Java 库,采用编程的方式操作 HDFS 的文件。

本节将介绍 Linux 操作系统中关于 HDFS 文件操作的常用命令行,并将介绍利用 Hadoop 提供的 Java API 进行基本的文件操作,以及利用 Web 界面查看和管理 HDFS 的方法。
HDFS 常用命令

在 Linux 命令行终端,可以使用命令行工具对 HDFS 进行操作。使用这些命令行可以完成 HDFS 文件的上传、下载和复制,还可以查看文件信息、格式化 NameNode 等。

HDFS 命令行的统一格式如下。
hadoop fs -cmd
其中,cmd是具体的文件操作命令,是一组数目可变的参数。

  1. 添加文件和目录

HDFS 有一个默认工作目录 /usr/ U S E R , 其 中 , USER,其中, USERUSER是登录用户名,如 root。该目录不能自动创建,需要执行 mkdir 命令创建。
hadoop fs -mkdir /usr/root
使用 Hadoop 的命令put将本地文件 READ

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要将 HDFS 中的数据导出,可以使用以下两种方法: 1. 使用 Hadoop 命令行工具 可以使用 Hadoop 命令行工具中的 `hadoop fs` 命令将数据导出。例如,如果要将 `/input` 目录下的数据导出到本地的 `/tmp` 目录中,可以执行以下命令: ``` hadoop fs -get /input /tmp ``` 2. 使用 HDFS API 可以使用 HDFS API 来编写 Java 程序将数据导出。以下是一个简单的 Java 代码示例,用于将 HDFS 中的文件导出到本地: ```java import java.io.BufferedOutputStream; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; import java.net.URI; import java.net.URISyntaxException; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.fs.FileSystem; import org.apache.hadoop.fs.Path; public class HdfsExport { public static void main(String[] args) throws IOException, URISyntaxException { String hdfsUri = "hdfs://localhost:9000"; String filePath = "/input/file.txt"; String localPath = "/tmp/file.txt"; Configuration config = new Configuration(); FileSystem fs = FileSystem.get(new URI(hdfsUri), config); Path hdfsPath = new Path(filePath); Path localPath = new Path(localPath); InputStream in = fs.open(hdfsPath); BufferedOutputStream out = new BufferedOutputStream(new FileOutputStream(localPath.toString())); byte[] buffer = new byte[4096]; int bytesRead = 0; while ((bytesRead = in.read(buffer)) != -1) { out.write(buffer, 0, bytesRead); } in.close(); out.close(); fs.close(); } } ``` 这段代码使用 HDFS API 打开 HDFS 中的文件,将其读入缓冲区并写入本地文件。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值