Résolution d'une erreur survenue lors de la tentative d'utilisation de Spark dans un environnement où Java 8 et Java 11 coexistent

Résolution d'une erreur survenue lors de la tentative d'utilisation de Spark dans un environnement où Java 8 et Java 11 coexistent

Aperçu

Même si j'utilisais spark de spark-shell ou exécutais pyspark, j'ai eu la même erreur que ci-dessous, donc je l'ai corrigée.

'Unsupported class file major version 55'

environnement

Ubuntu18.04 Spark 2.4.3

Solution (avec essais et erreurs)

La cause semble être l'utilisation de Java 11. Vérifiez la version de Java que vous utilisez et procédez comme suit pour choisir une autre version:

$ sudo update-alternatives --config java
alternative java (/usr/bin/Fournir java)A trois choix.

Statut de priorité du chemin de choix
------------------------------------------------------------
  0            /usr/lib/jvm/java-11-openjdk-amd64/bin/java 1101 mode automatique
  1            /usr/lib/jvm/java-11-openjdk-amd64/bin/java 1101 mode manuel
* 2            /usr/lib/jvm/java-11-oracle/bin/java 1091 mode manuel
  3            /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java 1081 mode manuel


Choix actuel[*]Tenir<Enter>, Sinon appuyez sur la touche du numéro de choix:3

Je me demandais si je pouvais utiliser Java 8 avec cela, mais cela ne s'est pas produit comme indiqué ci-dessous.

$ java --version
openjdk 11.0.2 2019-01-15
OpenJDK Runtime Environment 18.9 (build 11.0.2+9)
OpenJDK 64-Bit Server VM 18.9 (build 11.0.2+9, mixed mode)

Découvrons où nous allons voir en premier lieu. Puis

$ which java
/home/ksn/.sdkman/candidates/java/current/bin/java

Il est prouvé que Java (et Kotlin) a été installé à l'aide de SDKMAN.

À ce stade, j'ai appris que SDKMAN pouvait installer Spark, j'ai donc décidé de l'essayer.

$ sdk install spark

Je l'ai installé avec et j'ai essayé de vérifier l'opération à partir de $ spark-session, mais j'obtiens toujours la même erreur comme Fichier de classe non pris en charge version majeure 55 ''.

$ sdk list java

Lorsque j'ai examiné si Java 8 pouvait être installé avec SDKMAN, il s'est avéré que Java 8 ou moins ne pouvait pas être installé. Dans ce cas, j'ai décidé qu'il était impossible de le résoudre ici.

Par conséquent, désinstallez Java qui a été mis dans SDKMAN ci-dessous.

$ sdk uninstall java 11.0.2-open

avec ça,

$ java -version
openjdk version "1.8.0_212"
OpenJDK Runtime Environment (build 1.8.0_212-8u212-b03-0ubuntu1.18.04.1-b03)
OpenJDK 64-Bit Server VM (build 25.212-b03, mixed mode)

$ which java
/usr/bin/java

Ensuite, il lira java sous / usr / bin /.

Essayez de lancer spark installé avec SDKMAN en tant que $ spark-shell. Puis

$ spark-shell
...
scala> val textFile = spark.read.text("README.md")
textFile: org.apache.spark.sql.DataFrame = [value: string]

scala> textFile.count()
res0: Long = 109

Et l'erreur a disparu en toute sécurité.

Pour autant que je sache, il est trop tôt pour utiliser Java 11 avec Spark et Hadoop, et si vous souhaitez utiliser Java 11, attendez-vous à Spark 3.x. Cela semble résoudre le problème lors de l'introduction de Hadoop l'autre jour.

Recommended Posts

Résolution d'une erreur survenue lors de la tentative d'utilisation de Spark dans un environnement où Java 8 et Java 11 coexistent
Résumé en essayant d'utiliser Solr en Java et en obtenant une erreur (Solr 6.x)
Solution qui donne une erreur lors de la tentative de connexion à DB (MySQL) avec Java
Erreur 407 lors de la tentative d'accès au site HTTPS via un proxy authentifié en Java
Que s'est-il passé dans «Java 8 to Java 11» et comment créer un environnement
Une histoire embarrassante qui a été traitée comme le même jour en essayant de comparer les dates du 31/03 et du 01/04 [Java / Calendar]
[Docker] Une histoire sur une erreur dans la composition de docker
Comment changer la version Java et l'exécuter dans un environnement où Java ne peut pas être installé librement
[jOOQ] Comment utiliser CASE WHEN dans la clause WHERE / AND / OR
Comment résoudre l'erreur inconnue apparue lors de l'utilisation de slf4j en Java
[Débutant en programmation] Que faire lorsque les rails deviennent une erreur dans l'environnement de développement local
Je souhaite afficher un message d'erreur lors de l'inscription dans la base de données
Une erreur s'est produite dans le cours gratuit de RubyOnRails Udemy, l'a résolue et est allée jusqu'au bout
[Résolution d'erreur] Se produit lors de la tentative de création d'un environnement pour le printemps avec docker
Une erreur s'est produite lors de l'exécution d'une fonction avec CURSOR défini dans le paramètre OUT de MyBatis dans PostgreSQL.
Lors de l'utilisation d'une liste en Java, java.awt.List sort et une erreur se produit
Une solution à une erreur qui vous met en colère parce que vous ne suivez pas le paramètre par défaut de MySQL ONLY_FULL_GROUP_BY en production et qu'il n'est pas unique
Journaux d'erreurs et gestion des exceptions qui sont souvent vus dans la zone Java
Comment utiliser git avec la puissance de jgit dans un environnement sans commandes git
J'ai eu une erreur en essayant d'installer sbt pour créer un environnement de développement Scala
Résumé de l'utilisation du jeu de proxy dans IE lors de la connexion avec Java
Erreur de valeur de vérification survenue dans l'environnement de clustering
Classes et instances Java comprises dans la figure
Que faire lorsqu'une erreur se produit dans les rails db: migrate ((StandardError: Une erreur s'est produite, cette migration et toutes les migrations ultérieures annulées :))
Une histoire qui a résolu le problème que la version Java (jdk) était trop élevée pour utiliser la bibliothèque h2o dans R and R Studio.
Que faire si vous obtenez une erreur (StandardError: Une erreur s'est produite, cette migration et toutes les migrations ultérieures ont été annulées :) dans rails db: migrate
Un programme (Java) qui génère la somme des nombres pairs et impairs dans un tableau
À propos de l'erreur survenue lors de l'ajout d'un nom de colonne dans les rails (rails db: migrate, rails db: rollback, add)
Utilisez JLine lorsque vous souhaitez gérer les frappes sur la console caractère par caractère en Java
Résoudre l'erreur CreateProcess = 206 lors de l'exécution de Java dans un environnement Windows
Utiliser Java Web Start dans un environnement OpenJDK sous Windows
Comment appeler et utiliser l'API en Java (Spring Boot)
Raisons d'utiliser séparément Servlet et JSP dans le développement Java
[Java] Utilisez ResolverStyle.LENIENT pour bien gérer la date et l'heure
[Rails] Que faire lorsque l'erreur Aucune base de données sélectionnée et Base de données inconnue apparaît dans db: migrate
Organisez la communication dans un environnement qui utilise diverses ressources sur la machine hôte et le conteneur Docker
Lancer une exception et attraper lorsqu'il n'y a pas de gestionnaire correspondant au chemin au printemps
[Java] L'ajout d'un élément à la collection provoque une erreur de compilation
J'ai eu un IllegalAccessError en essayant d'utiliser PowerMock avec JUnit
Comment afficher la valeur lorsqu'il y a un tableau dans le tableau
J'ai essayé de traduire le message d'erreur lors de l'exécution d'Eclipse (Java)
Après avoir basculé entre les versions Java 8 et 11, une erreur se produit lors de la confirmation
[Java] Copie superficielle et copie complète lors de la conversion d'un tableau en liste
Comment installer le langage utilisé dans Ubuntu et comment créer l'environnement
L'opérateur qui est né pour naître, instanceof (Java) ~ Comment utiliser l'opérateur instanceof ~
Comment obtenir la longueur d'un fichier audio avec Java
Il doit être identique à l'exemple lors de la connexion à Twitter, mais une erreur se produit jusqu'à la résolution
[WSL] Solution pour le phénomène que 404 est affiché lors de la tentative d'insertion de Java avec apt (mémo personnel)
[Java] Affiche le résultat de ffprobe -show_streams dans JSON et mappe-le à un objet dans Jackson
Comment utiliser les classes en Java?
Mettez à jour JAVA vers la dernière version vers 1.8.0_144 (lors du téléchargement à partir du Web et de la mise à jour)
Comment tester une méthode privée et la simuler partiellement en Java
J'ai résumé les points à noter lors de l'utilisation combinée des ressources et des ressources