Нет константы перечисления GET_BLOCK_LOCATIONS Hdfs - PullRequest
1 голос
/ 25 апреля 2019

Я пытаюсь прочитать файл Avro из HDFS, используя Spark, однако получаю исключение.Файл существует в HDFS. Я проверил его в файловом браузере, а также использовал функцию Существует в файловой системе.Вот исключение:

org.apache.hadoop.ipc.RemoteException: java.lang.IllegalArgumentException: No enum constant org.apache.hadoop.fs.http.client.HttpFSFileSystem.Operation.GET_BLOCK_LOCATIONS
[info]   at org.apache.hadoop.hdfs.web.JsonUtilClient.toRemoteException(JsonUtilClient.java:88)
[info]   at org.apache.hadoop.hdfs.web.WebHdfsFileSystem.validateResponse(WebHdfsFileSystem.java:509)
[info]   at org.apache.hadoop.hdfs.web.WebHdfsFileSystem.access$200(WebHdfsFileSystem.java:135)
[info]   at org.apache.hadoop.hdfs.web.WebHdfsFileSystem$AbstractRunner.connect(WebHdfsFileSystem.java:745)
[info]   at org.apache.hadoop.hdfs.web.WebHdfsFileSystem$AbstractRunner.runWithRetry(WebHdfsFileSystem.java:820)
[info]   at org.apache.hadoop.hdfs.web.WebHdfsFileSystem$AbstractRunner.access$100(WebHdfsFileSystem.java:648)
[info]   at org.apache.hadoop.hdfs.web.WebHdfsFileSystem$AbstractRunner$1.run(WebHdfsFileSystem.java:686)
[info]   at java.security.AccessController.doPrivileged(Native Method)
[info]   at javax.security.auth.Subject.doAs(Subject.java:422)
[info]   at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1730)

В чем может быть причина этой ошибки?

Это код для чтения данных:

 private val sparkSession = SparkSession
    .builder
    .master("local[*]")
    .appName("SparkJobHDFSApp")
    .getOrCreate()

 val fs = FileSystem.get(new java.net.URI(hdfsUrl), new org.apache.hadoop.conf.Configuration())

  val fileContents = sparkSession
      .sparkContext
      .textFile(fullPath)
      .collect()
      .toList
  fileContents.foreach(println(_))
...