Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/334.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 基于kerberos的hdfs上载有问题_Python_Hdfs - Fatal编程技术网

Python 基于kerberos的hdfs上载有问题

Python 基于kerberos的hdfs上载有问题,python,hdfs,Python,Hdfs,我连接到集群,通过Python上传文件。它成功地使用了一个大约36兆字节的文件。然而,当我上传一个超过100GB的文件夹时,它失败了 任何建议。50070是NameNode上HTTP(无SSL)上WebHDFS的默认端口。所以我假设您笨拙的Python连接器使用WebHDFS,即使您不了解它是什么 对于上载,NameNode接收HTTPPOST请求,但将立即重定向到其数据节点之一(即HTTP 307代码) 理想情况下,HTTP客户端将尝试创建一个空文件,然后捕获重定向,然后在适当的目标上启动实际

我连接到集群,通过Python上传文件。它成功地使用了一个大约36兆字节的文件。然而,当我上传一个超过100GB的文件夹时,它失败了


任何建议。

50070是NameNode上HTTP(无SSL)上WebHDFS的默认端口。所以我假设您笨拙的Python连接器使用WebHDFS,即使您不了解它是什么

对于上载,NameNode接收HTTP
POST
请求,但将立即重定向到其数据节点之一(即HTTP 307代码)

理想情况下,HTTP客户端将尝试创建一个空文件,然后捕获重定向,然后在适当的目标上启动实际上载

看起来你笨拙的Python连接器没有做到这一点。它尝试将整个文件上载到NN(忽略数据),然后发现必须重定向,然后再次将整个文件上载到正确的服务器。
如果您要传递某种代理或负载平衡器,则在第一次尝试上载时,您的连接可能会崩溃(我看到只有400KB)


解决方案:为HDFS找到合适的Python连接器;或者自己修复当前使用的笨拙连接器的源代码。

如果您能提供一些示例代码和文件上载位置的详细信息,那就太好了。client=KerberosClient(Cluster_url)for fi in os.listdir(local_path):client.upload(hdfs_path,join(local_path,fi),n_thread=5),当它上传了345个文件时,它真是糟透了……那个神秘的
KerberosClient
使用了什么样的HDFSAPI?REST(WebHDFS)、Java,还有更奇特的东西?首先,URL是以https://开头还是以hdfs://开头?老实说,“它失败了”是一句毫无用处的话。阅读这个错误消息然后谷歌。信息技术和可能地复制信息技术在里面你的问题(请使用正确的格式)。我使用