java .lang.IllegalArgumentException при создании файла HDFS - PullRequest
0 голосов
/ 25 апреля 2020

У меня есть HDFS и немного текста, я хочу создать файл с текстом. Я пытался использовать HDFS API и FSDataOutputStream, но получил исключение. Не могли бы вы помочь мне, пожалуйста, разрешите это.

Исключение:

Исключение в потоке "main" java .lang.IllegalArgumentException: Неправильный FS: hdfs: / user / user1, ожидается: file: /// в org. apache .had oop .fs.FileSystem.checkPath (FileSystem. java: 647) в org. apache .had oop .fs.RawLocalFileSystem.pathToFile (RawLocalFileSystem . java: 82) в орг. apache .had oop .fs.RawLocalFileSystem.mkdirsWithOptionalPermission (RawLocalFileSystem. java: 513) в орг. apache .had oop .fs.RawLocalFileSystem.mkdirs (RawLocalFileSystem. java: 499) в орг. apache .had oop .fs.ChecksumFileSystem.mkdirs (ChecksumFileSystem. java: 594) в орг. apache .had oop .fs.ChecksumFileSystem .create (ChecksumFileSystem. java: 448) в орг. apache .had oop .fs.ChecksumFileSystem.create (ChecksumFileSystem. java: 435) в орг. apache .had oop .fs .FileSystem.create (FileSystem. java: 909) в орг. apache .had oop .fs.FileSystem.create (FileSystem. java: 890) в орг. apache .had oop .fs.FileSystem.create (FileSystem. java: 787) в или g. apache .had oop .fs.FileSystem.create (FileSystem. java: 776) в com.example.FileBuilder $ .buildFile (FileBuilder. scala: 23)

The код

val fs = FileSystem.get(new Configuration())
val path = new Path(s"hdfs:////user/" + "fileName.sql")
val fsDataOutputStream = fs.create(path)

val outputStreamWriter = new OutputStreamWriter(fsDataOutputStream, "UTF-8")
val bufferedWriter     = new BufferedWriter(outputStreamWriter)

bufferedWriter.write(data)

bufferedWriter.close()
outputStreamWriter.close()
fsDataOutputStream.close()

1 Ответ

0 голосов
/ 25 апреля 2020

Я думаю, что есть какая-то проблема с путем к файлу. Можете ли вы проверить, заменив приведенную ниже часть кода в вашем.

Configuration configuration = new Configuration();
FileSystem fs = FileSystem.get(new URI(<url:port>), configuration);
Path filePath = new Path("/user/fileName.sql");
val fsDataOutputStream = fs.create(path)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...