如何使用WebHDFS REST API将文件上传到HDFS

mgdq6dx1  于 2023-06-20  发布在  HDFS
关注(0)|答案(1)|浏览(271)

我想通过webHDFS REST API从本地服务器上传文件到HDFS。根据文档,此操作需要两个步骤:
1.提交一个HTTP PUT请求,返回位置

  • HttpResponseProxy {HTTP/1.1 307临时重定向[日期:Tue,06 Jun 2023 10:14:46 GMT,Cache-Control:无缓存,过期时间:2023年6月6日星期二10:14:46 GMT,日期:星期二,06 Jun 2023 10:14:46 GMT,Pragma:无缓存,X-Content-Type-Options:nosniff,X帧选项:SAMEORIGIN,X-XSS-保护:1; mode = block,位置:http://fcb6de72d72d:9864/webhdfs/v1/root/EMSI/file.txt?op = CREATE & namenoderpcaddress = namenode:9000&createflag =& createparent = true & overwrite = false,Content-Type:application/octet-stream,Content-Length:0][Content-Type:application/octet-stream,Content-Length:0,Chunked:false]}*

1.使用Location标头中的URL提交另一个HTTPPUT请求
curl-i-X PUT-T file.txt "http://fcb6de72d72d:9864/webhdfs/v1/root/EMSI/file.txt?op = CREATE & namenoderpcaddress = namenode:9000&createflag =& createparent = true & overwrite = false "
这就是我得到的:curl:(6)无法解析主机:fcb6de72d72d
我在Macbook Air M1的Docker上运行Hadoop集群。
参考资料:Issues with Uploading an image to HDFS via webHDFS REST API www.example.com https://hadoop.apache.org/docs/stable/hadoop-project-dist/hadoop-hdfs/WebHDFS.html#Create_and_Write_to_a_File
谢谢你的帮助

kx5bkwkv

kx5bkwkv1#

第一个请求返回的位置使用的是容器ID,您的主机无法解析该ID。将其替换为localhost
或者,使用hadoop fs -put代替WebHDFS

相关问题