Я сталкиваюсь с проблемами при попытке прочитать файл из HDFS (Hortonworks Sandbox) с использованием Java API. Ниже мой код -Исключение при чтении файла из HDFS (Hortonworks Sandbox) с использованием Java API
System.setProperty ("hadoop.home.dir", "/");
URI uri = URI.create ("hdfs://localhost:8020/user/maria_dev/test.txt");
Path path = new Path (uri);
Configuration conf = new Configuration();
conf.set ("fs.defaultFS", "hdfs://localhost:8020");
conf.set ("dfs.client.use.datanode.hostname","true");
conf.set("dfs.datanode.use.datanode.hostname","true");
conf.set("dfs.client.use.legacy.blockreader", "true");
byte[] btbuffer = new byte[5];
String s;
try (FileSystem fs = FileSystem.get (uri, conf)) {
try {
FSDataInputStream fileIn = fs.open (path);
//s = fileIn.readUTF();
fileIn.read (btbuffer, 0, 20);
s = new String (btbuffer, Charset.forName ("UTF-8"));
} catch (Exception e) {
e.printStackTrace();
}
}
catch (Exception err){
err.printStackTrace();
}
Ниже перечислены исключения я получаю -
10:39:51.803 [main] WARN org.apache.hadoop.hdfs.BlockReaderFactory - I/O error constructing remote block reader. java.net.ConnectException: Connection refused .
10:39:51.803 [main] WARN org.apache.hadoop.hdfs.DFSClient - Failed to connect to sandbox.hortonworks.com/172.17.0.2:50010 for block, add to deadNodes and continue. java.net.ConnectException: Connection refused .
10:39:51.804 [main] INFO org.apache.hadoop.hdfs.DFSClient - Could not obtain BP-1464254149-172.17.0.2-1477381671113:blk_1073742576_1752 from any node: java.io.IOException: No live nodes contain block BP-1464254149-172.17.0.2-1477381671113:blk_1073742576_1752 after checking nodes = [172.17.0.2:50010], ignoredNodes = null No live nodes contain current block Block locations: 172.17.0.2:50010 Dead nodes: 172.17.0.2:50010.
Не удалось найти работающее решение. Любая помощь приветствуется.
Отредактировано: Ниже приведены данные из/и т.д./хосты моей хост-системы (откуда я звоню работу) -
127.0.0.1 localhost
255.255.255.255 broadcasthost
::1 localhost
172.17.0.2 sandbox.hortonworks.com localhost
проверки 'hOSTNAME' и матч fs.defaultFS с что. – rbyndoor
имя хоста - sandbox.hortonworks.com. Изменение fs.defaultFS на sandbox.hortonworks.com, похоже, ничего не меняет. – MK22
Где у вас этот код? Песочница не имеет пользовательского интерфейса, так вы пишете это в терминале? Изменение настроек конфигурации ** внутри ** песочница не должна выполняться. Все в порядке. –