每隔5-10分钟,我们在HDFS中创建一个新模型。 模型是包含多个文件的文件夹:
另一方面,我们有数百个模型服务实例,需要在5-10分钟内将模型下载到本地文件系统并从中服务。 目前,我们使用的是来自服务(java文件系统客户端)的WebFS,但它可能会给Hadoop集群带来负载,因为它会将请求重定向到具体的数据节点。
我们考虑使用HTTPFs服务。它有缓存功能吗?所以第一个请求将获得一个文件夹来服务内存,而下一个请求将使用已经下载的结果?
我们找到了一个很好的解决办法。
它可以用于Hadoop以减少读取负载,也可以用于Google/S3 bucket以降低成本。
我们只需设置几个Ngnix服务器,并将它们配置为一个带有文件缓存的代理2分钟。
这样,只有Ngnix机器才能从Hadoop集群下载数据。
所有的服务机器(可能有几百台)都会从Nginx服务器中提取数据,这些数据已经在那里缓存了