Локальная установка Dynamodb на Apple Silicon Mac M1

Я выполнил локальную настройку Dynamodb, используя https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/DynamoDBLocal.DownloadingAndRunning.html

Я могу запустить экземпляр, используя следующую команду java -Djava.library.path=./DynamoDBLocal_lib -jar DynamoDBLocal.jar -sharedDb, но когда я пытаюсь сделать что-либо еще, это дает мне следующую ошибку.

Связана ли эта проблема с новой архитектурой M1 Apple Silicon? Любое обходное решение для этого?

У меня была такая же проблема с dynamodb-local, установленным через brew. По-видимому, используемая библиотека sqlite4java не имеет версии для рук. Например, я получаю:


person Ahsan Ejaz    schedule 15.03.2021    source источник


Ответы (2)


Интересно, что у меня образ докера работает нормально, используя предварительная версия docker, например, с помощью файла компоновки docker из Локальное развертывание DynamoDB на вашем компьютере (на вкладке Docker).

Caused by: java.lang.UnsatisfiedLinkError: /opt/homebrew/Caskroom/dynamodb-local/latest/DynamoDBLocal_lib/libsqlite4java-osx.dylib: dlopen(/opt/homebrew/Caskroom/dynamodb-local/latest/DynamoDBLocal_lib/libsqlite4java-osx.dylib, 1): no suitable image found.  Did find:
    /opt/homebrew/Caskroom/dynamodb-local/latest/DynamoDBLocal_lib/libsqlite4java-osx.dylib: no matching architecture in universal wrapper

Мне удалось запустить DynamoDB, установив java-версию архитектуры x86-64, а не arm64, и запустив ее с терминала rosetta.

person Sidney Beekhoven    schedule 17.03.2021
comment
По сути, вы создаете терминал Rosetta osxdaily .com/2020/11/18/. Затем вы устанавливаете _1_ Java. И вы запускаете DynamoDB Local внутри терминала Rosetta с x86 Java. Подключиться к нему можно через обычный _2_ терминал. - person Ahsan Ejaz; 19.04.2021

https://www.azul.com/downloads/zulu-community/?version=java-16-sts&os=macos&architecture=x86-64-bit&package=jre

java --version 
openjdk 16.0.1 2021-04-20
OpenJDK Runtime Environment Zulu16.30+15-CA (build 16.0.1+9)
OpenJDK 64-Bit Server VM Zulu16.30+15-CA (build 16.0.1+9, mixed mode, sharing)

Спасибо, образ докера у меня тоже работает.

person Leonardo Ampuero    schedule 08.05.2021
comment
15 марта 2021 г. 14:10:28 com.almworks.sqlite4java.Внутренний журнал ПРЕДУПРЕЖДЕНИЕ: [sqlite] не может открыть БД[15]: com.almworks.sqlite4java.SQLiteException: [-91] не может загрузить библиотеку: java.lang. UnsatisfiedLinkError: /Users/ahsanejaz/Downloads/dynamodb_local_latest/DynamoDBLocal_lib/libsqlite4java-osx.dylib: dlopen(/Users/ahsanejaz/Downloads/dynamodb_local_latest/DynamoDBLocal_lib/libsqlite4java-osx.dylib, 1): не найдено подходящего образа. Нашел: /Users/ahsanejaz/Downloads/dynamodb_local_latest/DynamoDBLocal_lib/libsqlite4java-osx.dylib: нет подходящей архитектуры в универсальной оболочке 15, 2021 14:10:28 com.almworks.sqlite4java.Внутренний журнал СЕРЬЕЗНЫЙ: [sqlite] SQLiteQueue[shared-local-instance.db]: ошибка при запуске очереди заданий com.almworks.sqlite4java.SQLiteException: [-91] не может загрузить библиотеку: java.lang.UnsatisfiedLinkError: /Users/ahsanejaz/Downloads/dynamodb_local_latest/DynamoDBLocal_lib/libsqlite4java-osx.dylib: dlopen(/Users/ahsanejaz/Downloads/dynamodb_local_latest/DynamoDBLocal_lib/libsqlite4java-osx.dylib, 1): не подходит изображение найдено. Нашел: /Users/ahsanejaz/Downloads/dynamodb_local_latest/DynamoDBLocal_lib/libsqlite4java-osx.dylib: нет подходящей архитектуры в универсальной оболочке com.almworks.sqlite4java.SQLite.loadLibrary(SQLite.java:97) в com.almworks.sqlite4java.SQLiteConnection.open0(SQLiteConnection.java:1441) в com.almworks.sqlite4java.SQLiteConnection.open(SQLiteConnection.java:282) в com.almworks.sqlite4java.SQLiteConnection.open(SQLiteConnection.java:293) в com.almworks.sqlite4java.SQLiteQueue.openConnection(SQLiteQueue.java:464) в com.almworks.sqlite4java.SQLiteQueue.queueFunction(SQLiteQueue.java:641) ) в com.almworks.sqlite4java.SQLiteQueue.runQueue(SQLiteQueue.java:623) в com.almworks.sqlite4java.SQLiteQueue.access$000(SQLiteQueue.java:77) в com.almworks.sqlite4java.SQLiteQueue$1.run(SQLiteQueue. java:205) по адресу java.base/java.lang.Thread.run (неизвестный источник) Ca используется: java.lang.UnsatisfiedLinkError: /Users/ahsanejaz/Downloads/dynamodb_local_latest/DynamoDBLocal_lib/libsqlite4java-osx.dylib: dlopen(/Users/ahsanejaz/Downloads/dynamodb_local_latest/DynamoDBLocal_lib/libsqlite4java-osx.dylib, 1): не подходит изображение найдено. Нашел: /Users/ahsanejaz/Downloads/dynamodb_local_latest/DynamoDBLocal_lib/libsqlite4java-osx.dylib: нет подходящей архитектуры в универсальной оболочке java.base/java.lang. ClassLoader$NativeLibrary.load0(собственный метод) в java.base/java.lang.ClassLoader$NativeLibrary.load(неизвестный источник) в java.base/java.lang.ClassLoader$NativeLibrary.loadLibrary(неизвестный источник) в java.base/ java.lang.ClassLoader.loadLibrary0 (неизвестный источник) в java.base/java.lang.ClassLoader.loadLibrary (неизвестный источник) в java.base/java.lang.Runtime.load0 (неизвестный источник) в java.base/java. lang.System.load(неизвестный источник) по адресу com.almworks.sqlite4java.Internal.tryLoadFromPath(Internal.java:340) по адресу com.almworks.sqlite4java.Internal.loadLibraryX(Internal.java:117) по адресу com.almworks.sqlite4java. SQLite.loadLibrary(SQLite.java:95) ... еще 9 15 марта 2021 г. 14:10:28 com.almworks.sqlite4java.Внутренний журнал ПРЕДУПРЕЖДЕНИЕ: [sqlite] SQLiteQueue[shared-local-instance.db]: остановлен ненормально, перевоплощение через 3000 мс - person Katafalkas; 23.07.2021