用于上传/下载的 Hadoop Rest API

标签 hadoop webhdfs

我正在尝试使用 C# 应用从 Hadoop 集群上传/下载文件,但我无法从文档中找到用于上传和下载的 API。

那么您能告诉我如何使用 RestAPI 从 Hadoop 上传和下载文件吗?

谢谢

最佳答案

您可以按照此处所述使用 WebHDFS REST API http://hadoop.apache.org/docs/r1.0.4/webhdfs.html

编辑:

创建并写入文件

第 1 步:

提交 HTTP PUT 请求而不自动跟随重定向且不发送文件数据。

curl -i -X PUT "http://:/webhdfs/v1/?op=CREATE [&overwrite=][&blocksize=][&replication=] [&permission=][&buffersize=]"

请求被重定向到要写入文件数据的数据节点: HTTP/1.1 307 TEMPORARY_REDIRECT 位置:http://:/webhdfs/v1/?op=CREATE... 内容长度:0

第 2 步:

使用 Location header 中的 URL 和要写入的文件数据提交另一个 HTTP PUT 请求。

curl -i -X PUT -T "http://:/webhdfs/v1/?op=CREATE..."

客户端收到内容长度为零的 201 Created 响应以及 Location header 中文件的 WebHDFS URI: HTTP/1.1 201 已创建 位置:webhdfs://:/ 内容长度:0

请注意,分两步创建/附加的原因是为了防止客户端在重定向之前发送数据。这个问题由 HTTP/1.1 中的“Expect: 100-continue” header 解决;请参阅 RFC 2616,第 8.2.3 节。不幸的是,存在软件库错误(例如 Jetty 6 HTTP 服务器和 Java 6 HTTP 客户端),它们无法正确实现“Expect: 100-continue”。两步创建/附加是软件库错误的临时解决方法。

关于用于上传/下载的 Hadoop Rest API,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23993421/

相关文章:

hadoop - 有没有办法使用 webhdfs REST API 检查文件是否存在?

azure - 如何使用 webhdfs API 访问 Azure datalake

hadoop - pig : how to separate data by positions in a single line

hadoop - hadoop 是使用 Giraph 所必需的吗

hadoop - 亚马逊 : setup credentials to S3 when using elastic-mapreduce with pig-interactive

java - 访问webhdfs时出现UnsupportedOperationException

hadoop - WebHDFS 与 HttpFS

rest - webHDFS API 在每次查询时返回异常

json - 是否有关于 SERDEPROPERTIES 的 Hive JSON SERDE 文档?

csv - 加载到 Hive 时从平面文件中删除单引号