http://testing:50070/webhdfs/v1/Test/asaw4zds_ssdf4_ht35-9a1a-4a7b-9n.jpg?op=OPEN
我正在使用 webhdfs 通过 hadoop 获取上面的图像我想在浏览器中缓存这个图像怎么做有没有任何机制来缓存来自 hadoop 的图像以及如何在这个 url 中隐藏端口号
http://testing:50070/webhdfs/v1/Test/asaw4zds_ssdf4_ht35-9a1a-4a7b-9n.jpg?op=OPEN
我正在使用 webhdfs 通过 hadoop 获取上面的图像我想在浏览器中缓存这个图像怎么做有没有任何机制来缓存来自 hadoop 的图像以及如何在这个 url 中隐藏端口号
我不熟悉,webhdfs
但如果它不支持缓存,则必须在客户端和 webhdfs 服务器之间放置一个缓存层。
好吧,您需要的是启用缓存功能的反向代理。有几种方法可以做到这一点,但你应该使用Apache mod_cache或Nginx 反向代理缓存,你会没事的。
所以,如果你想从 url 中隐藏端口,你必须在 port 上启动 webserver/proxy 80
。然后只需在/proxy
上下文中创建代理别名并将请求重定向设置为http://testing:50070/webhdfs
. 启用缓存。最后,您可以webhdfs
通过 url 上的缓存代理请求您的http://testing/proxy/v1/Test/asaw4zds_ssdf4_ht35-9a1a-4a7b-9n.jpg?op=OPEN
通信将如下所示:
Client 1:00PM <> Proxy (no cache) <> Webhdfs (asaw4zds_ssdf4_ht35-9a1a-4a7b-9n.jpg)
Client 2:00PM <> Proxy (asaw4zds_ssdf4_ht35-9a1a-4a7b-9n.jpg) expires in 1h
Client 2:45PM <> Proxy (asaw4zds_ssdf4_ht35-9a1a-4a7b-9n.jpg) expires in 15min
Client 4:00PM <> Proxy (asaw4zds_ssdf4_ht35-9a1a-4a7b-9n.jpg) expired!! <> Webhdfs (asaw4zds_ssdf4_ht35-9a1a-4a7b-9n.jpg)
我没有提供任何示例,但您可以找到许多 Apache 或 Nginx 的示例。你选。
我知道这是一个较晚的响应,但 Apache Knox 是用于 Hadoop 访问的 REST API 网关。其具体目标之一是对消费者隐藏内部拓扑信息。阿帕奇诺克斯