Я прочитал учебные пособия от Apache и Yahoo по DistributedCache. Я все еще смущен одной вещью, хотя. Предположим, у меня есть файл, который я хочу скопировать на все узлы данных. Итак, я использую DistributedCache.addCacheFile(new URI(hdfsPath),job)
в драйвере задания, чтобы сделать файл доступным. Затем я вызываю DistributedCache.getLocalCacheFiles(job)
внутри своего Mapper.
Теперь я хочу создать массив в узле данных на основе содержимого этого файла, чтобы при каждом запуске map() он мог обращаться к элементам массива. Я могу сделать это? Я в замешательстве, потому что, если я прочитаю кэшированный файл и создам массив в классе Mapper, кажется, что он будет создавать массив для каждого нового ввода в Mapper, а не только один раз для каждого Mapper. Как на самом деле работает эта часть (т.е. где/когда я должен создать массив)?