2013-08-27 1 views
3

http://testing:50070/webhdfs/v1/Test/asaw4zds_ssdf4_ht35-9a1a-4a7b-9n.jpg?op=OPENкак кэшировать изображения с Hadoop, а также как скрыть номер порта, данный в URL

Я Fetching изображения выше через Hadoop с помощью webhdfs я хочу кэшировать этот образ в браузере, как это сделать, есть какой-либо механизм кэширования изображений, поступающих из hadoop, и как скрыть номер порта в этом URL-адресе

+1

Вы можете настроить веб-сервер для перенаправления 'http: //testing/webhdfs/v1/Test/asaw4zds_ssdf4_ht35-9a1a-4a7b-9n.jpg? Op = OPEN' на' http: // testing: 50070/webhdfs /v1/Test/asaw4zds_ssdf4_ht35-9a1a-4a7b-9n.jpg? оп = OPEN'. И обычно веб-сервер поддерживает установку истекшего времени. – zsxwing

+0

эти данные являются динамическими, это имя изображения и тестовые изменения, например, это может быть как указано ниже для другого изображения http://testingTwo.com/webhdfs/v1/Test/anotherImagetwo.jpg?op=OPEN, и я дал img src, поэтому его вызывается непосредственно из hadoop не с сервера – tina

+0

Я предлагаю вам не открывать веб-интерфейс hadoop напрямую. Он использует простой сервер Jetty, который не оптимизирован. Используйте nutch или apache httpd и установите обратный прокси для доступа к веб-интерфейсу hadoop. – zsxwing

ответ

2

Я не знаком с webhdfs, но если он не поддерживает кеширование, вы должны установить слой кэширования между клиентом и webhdfs сервер.

Ну, нужная вам вещь обратный прокси с возможностью кэширования. Есть несколько вариантов, как это сделать, но вы должны пойти с Apache mod_cache или Nginx reverse proxy caching, и вам будет хорошо.

Итак, если вы хотите скрыть порт с URL-адреса, вам нужно запустить web-сервер/прокси-сервер на порту 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. Твой выбор.

2

Я знаю, что это поздний ответ, но Apache Knox - это шлюз REST API для доступа Hadoop. Одна из его конкретных целей - скрыть внутреннюю топологическую информацию от потребителей. Apache Knox

Смежные вопросы