使用WebHDFS文件上传API使用公共IP而不是主机名获取位置值

问题描述

我们已经创建了Bigdata POC,并使用Angular创建了UI。现在我们要通过Angular应用程序将文件上传到HDFS,我们正在使用WebHDFS REST API。我们已遵循以下API链接

https://hadoop.apache.org/docs/r1.0.4/webhdfs.html#CREATE

要在HDFS上上传文件,第一个调用是在Namenode上,如下所示: http:// localhost:50070 / webhdfs / v1 / Input?op = CREATE&user.name = root

现在,我们必须使用上述API中的Location值在Datanode上进行第二次调用,但是在Location值中,它提供了工作节点的主机名,并且我们正在通过Angular应用程序进行访问,因此我们必须替换工作节点的主机名与工作节点的公共IP。对于第一个呼叫,浏览器进行了307重定向,它将自动使用该位置进行重定向,因此,在使用angular时,我们将无法获得控制权,并且无​​法处理307或执行诸如添加/删除标头的操作。 我们已经在Azure Hortonworks Cloudbreak上创建了具有1个主节点和3个Worker节点的Bigdata群集。因此,对于第一个API调用,我们将获取任何工作节点的主机名,因此,如果我们仅使用任何特定的工作节点公共IP调用第二个API,则没有任何意义。现在我们要从Bigdata端处理它。有没有办法获取公共IP而不是第一个API调用的Location值中的主机名?或其他任何处理方式?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)