2013-05-29 2 views
1

java.io.FileSystem не является общедоступной в java.io; не могут быть доступны из внешнего пакета Это линия на компилятором указывает наОшибка компиляции Java с использованием Hadoop

FileSystem fs = FileSystem.get(configuration); 

Я не понимаю, почему это не может быть доступно. Вот импорт

import java.io.*; 
import java.io.FileSystem; 
import java.nio.file.Paths; 
import org.apache.hadoop.io.SequenceFile; 
import org.apache.hadoop.io.SequenceFile.Writer; 
import org.apache.hadoop.io.*; 
import org.apache.hadoop.conf.Configuration; 
import org.apache.hadoop.conf.*; 
import java.util.*; 
import java.io.Writer; 
import org.apache.hadoop.*; 
+0

Там нет такого понятия, как 'java.io.FileSystem' AFAIK. Ближайшим является 'java.nio.FileSystem' – nhahtdh

+0

@nhahtdh, и это тоже не то, что нужно – Woot4Moo

+0

Я бы порекомендовал не делать импорт' * '(star). – Woot4Moo

ответ

3

FileSystem неправильно объекта, а также неправильно Paths объект. Вы хотите:

org.apache.hadoop.fs.FileSystem 
org.apache.hadoop.fs.Path 

Вы имеете дело с файловой системой Hadoop, а не с реализацией по умолчанию Java. Напомним, что вы делаете hadoop fs -ls, где fs означает файловую систему в командной строке.

+0

Да, hasoop 'FileSystem' - еще одна возможность. Я просто догадываюсь о 'nio', так как есть также' import java.nio.file.Paths; '. Но, глядя только на импорт, недостаточно знать, какой класс действительно нужен. (Но угадывание для хаопа вполне уместно в этом случае) – nhahtdh

+0

@nhahtdh oh я даже не видел, что OP также импортировал неправильный объект Paths – Woot4Moo

1

Заменить

import java.io.FileSystem; 

с

import org.apache.hadoop.fs.FileSystem; 
+0

Спасибо, что избавился от некоторых соответствующих ошибок! – SLearner