我们已经创建了bigdatapoc,并使用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值中,它给出了worker节点的主机名,并且我们通过angular应用程序进行访问,因此我们必须用worker节点的公共ip替换worker节点的主机名。对于第一个调用,浏览器得到了307重定向它将自动使用重定向的位置,因为这一点,我们将无法获得控制,而与Angular 和不能处理307或执行操作,如添加/删除标题。我们已经在azure hortonworks cloudbreak上创建了bigdata集群,其中有1个主节点和3个工作节点。因此,对于第一个api调用,我们将获得任何工作节点的主机名,因此如果我们仅使用任何特定的工作节点公共ip调用第二个api,则没有意义。现在我们要从bigdata端处理它。有没有办法在第一个api调用的位置值中获取公共ip而不是主机名,或者有没有其他方法来处理它?
暂无答案!
目前还没有任何答案,快来回答吧!