我想实现的目标我想使用 cURL 将文件从本地 Windows 机器移动到 HDFS。就我而言,HDFS正在虚拟机上运行
什么不起作用我正在使用以下命令
curl -i -X PUT "http://ip:port/webhdfs/v1/...?op=CREATE"
我正在从Windows命令提示符执行上述操作,我将其cd到包含testfile.txt的文件夹中。该命令返回以下内容
SSH-2.0-OpenSSH_5.3
Protocol mismatch.
编辑:根据这一点,我应该得到回应
HTTP/1.1 307 TEMPORARY_REDIRECT
Location: http://<DATANODE>:<PORT>/webhdfs/v1/<PATH>?op=CREATE...
Content-Length: 0
然后我应该能够运行第二步,如下所示
curl -i -X PUT -T testfile.txt "http://ip:port/webhdfs/v1/data?op=CREATE..."
问题如何使用 curl 在 hdfs 上成功上传文件?
协议不匹配的原因由cricket_007在评论中给出
根据您的响应,您已经蜷缩到SSH服务器,而不是名称节点。
这是由于curl -i -X PUT "http://ip:port/webhdfs/v1/...?op=CREATE"
语句中的端口错误造成的。
Hortonworks 沙盒 HDP 发行版上的默认端口为 50070。