Я хочу прочитать файл с помощью картографа Hadoop с использованием DistributedCache, и ошибка возникает в одной 10-й строке:
public class CacheMapper extends Mapper<Object, Text, Text, IntWritable> {
@Override
public void setup(Context context) throws IOException, InterruptedException {
try {
org.apache.hadoop.fs.Path[] cacheFiles = DistributedCache.getLocalCacheFiles(context.getConfiguration());
String filename = cacheFiles[0].toString(); // dictionary.txt
java.nio.file.Path path = Paths.get(filename);
List<String> list = Files.readAllLines(path); // ERROR!!!
// ...
} catch // ...
// ...
}
@Override
public void map( // ...
// ...
}
в основном классе:
String filename = "dictionary.txt";
DistributedCache.addCacheFile(new org.apache.hadoop.fs.Path(filename).toUri(), job.getConfiguration());
файл dictionary.txt
находится в рабочей области и также помещается в hadoop fs:
hadoop fs -put dictionary.txt dictionary.txt
hadoop fs -ls
-rwxrwxrwx 1 корневой корень 163 2019-10-17 07:35 dictionary.txt