Я пытаюсь прочитать файл 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(_))