java.lang.UnsupportedClassVersionError - в MAC OSX - неподдерживаемая основная версия файла класса 56 - PullRequest
0 голосов
/ 22 апреля 2019

Я пытаюсь запустить код Python, который ссылается на Apache Spark на Mac OSX 10.14.4, но у меня, похоже, проблема с версиями Java Class, и я не могу решить эту проблему. Вероятно, это связано с версиями Java, но я не распознаю проблему и способы ее решения.

I installed version of Spark: spark-2.4.1-bin-hadoop2.7, 
I installed the latest version of Java JDK

Версии Java в окне терминала дают следующий результат:

java -version

>java version "12.0.1" 2019-04-16
>Java(TM) SE Runtime Environment (build 12.0.1+12)
>Java HotSpot(TM) 64-Bit Server VM (build 12.0.1+12, mixed mode, sharing)

javac -version

>javac 12.0.1

Предупреждения при запуске Jupiter Notebook для Python

запуск в окне терминала

$ pyspark

[I 20:47:14.841 NotebookApp] JupyterLab beta preview extension loaded from /Users/myname/anaconda3/lib/python3.6/site-packages/jupyterlab
[I 20:47:14.841 NotebookApp] JupyterLab application directory is /Users/myname/anaconda3/share/jupyter/lab
[I 20:47:14.852 NotebookApp] Serving notebooks from local directory: /Users/myname
[I 20:47:14.852 NotebookApp] 0 active kernels
[I 20:47:14.852 NotebookApp] The Jupyter Notebook is running at:
[I 20:47:14.852 NotebookApp] http://localhost:8888/?token=0666955663ecb246ee569680e4e8e7afbdd3d64b0efcfc75
[I 20:47:14.852 NotebookApp] Use Control-C to stop this server and shut down all kernels (twice to skip confirmation).
[C 20:47:14.896 NotebookApp] 

Copy/paste this URL into your browser when you connect for the first time,
to login with a token:
    http://localhost:8888/?token=0666955663ecb246ee569680e4e8e7afbdd3d64b0efcfc75&token=0666955663ecb246ee569680e4e8e7afbdd3d64b0efcfc75
[I 20:47:15.555 NotebookApp] Accepting one-time-token-authenticated connection from 127.0.0.1
[I 20:47:24.920 NotebookApp] Creating new notebook in 
[I 20:47:27.600 NotebookApp] Kernel started: 2ff964f7-da2a-4427-9aaa-ff9f96967512

WARNING: An illegal reflective access operation has occurred
WARNING: Illegal reflective access by org.apache.spark.unsafe.Platform (file:/Applications/spark-2.4.1-bin-hadoop2.7/jars/spark-unsafe_2.11-2.4.1.jar) to method java.nio.Bits.unaligned()
WARNING: Please consider reporting this to the maintainers of org.apache.spark.unsafe.Platform
WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
WARNING: All illegal access operations will be denied in a future release

19/04/22 20:47:37 WARN NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
[W 20:47:37.658 NotebookApp] Timeout waiting for kernel_info reply from 2ff964f7-da2a-4427-9aaa-ff9f96967512
19/04/22 20:47:39 WARN MacAddressUtil: Failed to find a usable hardware address from the network interfaces; using random bytes: a1:17:d6:b3:ce:11:0b:4c
[I 20:47:41.088 NotebookApp] Adapting to protocol v5.1 for kernel 2ff964f7-da2a-4427-9aaa-ff9f96967512
[I 20:49:27.467 NotebookApp] Saving file at /Untitled1.ipynb

Я смог запустить код Python в блокноте, если он не ссылается на Spark. Предупреждения также возникали, когда Spark запускался в окне терминала перед настройкой ноутбука Jupyter.

Это код Python, который я использовал в записной книжке:

sc = SparkContext.getOrCreate()
import numpy as np
TOTAL = 10000
dots = sc.parallelize([2.0 * np.random.random(2) - 1.0 for i in range(TOTAL)]).cache()
print("Number of random points:", dots.count())

Сообщение об ошибке

Когда я запускаю код, я получаю следующее сообщение об ошибке ниже. Целью является запуск программы без этой ошибки.

---------------------------------------------------------------------------
Py4JJavaError                             Traceback (most recent call last)
/Applications/spark-2.4.1-bin-hadoop2.7/python/pyspark/sql/utils.py in deco(*a, **kw)
     62         try:
---> 63             return f(*a, **kw)
     64         except py4j.protocol.Py4JJavaError as e:

/Applications/spark-2.4.1-bin-hadoop2.7/python/lib/py4j-0.10.7-src.zip/py4j/protocol.py 
in get_return_value(answer, gateway_client, target_id, name)
    327   "An error occurred while calling {0}{1}{2}.\n".
--> 328   format(target_id, ".", name), value)
    329   else:
Py4JJavaError: An error occurred while calling z:org.apache.spark.api.python.PythonRDD.collectAndServe.
: java.lang.IllegalArgumentException: Unsupported class file major version 56
at org.apache.xbean.asm6.ClassReader.<init>(ClassReader.java:166)
at org.apache.xbean.asm6.ClassReader.<init>(ClassReader.java:148)
at org.apache.xbean.asm6.ClassReader.<init>(ClassReader.java:136)

More error lines not copied here

Мой вопрос

Я не очень знаком со средой Java и Apache Spark. Можете ли вы дать инструкции о том, как решить эту ошибку? Знаете ли вы, можно ли решить эти электронные предупреждения во время запуска ноутбука Юпитера? Если вам требуется дополнительная информация, пожалуйста, дайте мне знать.

Спасибо за помощь.

1 Ответ

0 голосов
/ 23 апреля 2019

TLDR

Переключитесь на Java 1.8, установив один из this и установив env var на this

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...