Pentaho Data Integration not starting on new Mac M1
Asked Answered
A

3

6

I have an issue when I try running Pentaho Data Integration on Mac bigSur (M1).

issue code in below:

I'm sorry, this Mac platform [arm64] is not yet supported! Please try starting using 'Data Integration 32-bit' or 'Data Integration 64-bit' as appropriate.

java version

> java version "1.8.0_291"
Java(TM) SE Runtime Environment (build 1.8.0_291-b10)
Java HotSpot(TM) 64-Bit Server VM (build 25.291-b10, mixed mode)

can anyone help me with this issue?

Thanks

Azotemia answered 14/6, 2021 at 15:9 Comment(0)
A
21

Try this guide from reddit

Guide:

Here is how you can force the shell to run in Intel mode so that you can continue working in this little command-line Rosetta Island while waiting for native ARM64 support.

  1. Open the Terminal app.

  2. Open the Terminal app’s Preferences.

  3. Click on the Profiles tab.

  4. Select a profile, click on the ellipsis at the bottom of the profile list and then select Duplicate Profile.

  5. Click on the new profile and give it a good name. I named mine as “Rosetta Shell”.

  6. Also in the new profile, click on the Window tab. In the Title, put a name to indicate that this is for running Intel-based apps.I put “Terminal (Intel)” on mine.

  7. Click on the Shell tab and use the following as its Run Command to force the shell run under Rosetta: env /usr/bin/arch -x86_64 /bin/zsh --login

  8. Untick the Run inside shell checkbox. Clearing the checkbox would prevent running the shell twice, which could bloat your environment variables since ~/.zshrc gets run twice.

  9. Optionally set this profile as the Default.

This is the first step. After that you have to replace the swt.jar in the data-integration Folder /path_to_your_data-integration/libswt/osx64/ Otherwise it won't start.

You can download the jar here

Important!: You don't have to rename this file, but you have to remove the original swt.jar .

Autonomic answered 29/7, 2021 at 6:59 Comment(11)
Thank you so much! This is the first complete solution for running pentaho on my M1 mac!Autotransformer
Thanks for your reply. I have just installed Rosetta terminal how to install Rosetta and then started Pentaho same as on old Mac. Working ok for me.Azotemia
Another thing I ran into: Make sure that you are not in dark mode, or you will see white letters on a white background.Farmyard
I can confirm the PDI 9.2 with Java 1.8 over Rosseta works. Ones also have to switch to light mode.Ivanaivanah
This also worked with PDI 7.1 and Java 1.8 on an M1 with Monterrey. I also got Dark mode to work, Data Integration > Preferences > Look & Feel > Use Look of OS (checkbox) & close and restart PDI.Distil
It does not work for me, I followed all the steps and I get Error: Invalid or corrupt jarfile /workspace/alaya/data-integration/launcher/launcher.jarErase
Thanks It's work, but not take the new version of Jar fileImprest
I have tested with PDI 9.4 and Amazon Corretto Java 17, and run correctly, thanks.Ghee
It works for me with MacOS M1 and Java (openjdk version "18" 2022-03-22) with latest version of Pentaho 9.3Sphagnum
Wonderful answer. For me, I have to specifically get the arm version of the jar, which is org.eclipse.swt.cocoa.macosx.aarch64 instead of org.eclipse.swt.cocoa.macosx.x86_64.Ariella
The link to install the Pentaho from source gate it does not working more, someone can help?Edee
L
3

I've just want to add that you need to have an x86 Java version installed for Tufan Atak solution to work.

So if you've installed an M1 compat Java version and you try to start spoon with that it will throw the next error:

java.lang.UnsatisfiedLinkError: Could not load SWT library. Reasons: 
    no swt-cocoa-4944r26 in java.library.path
    no swt-cocoa in java.library.path
    no swt in java.library.path
    Can't load library: /<user-home-path>/.swt/lib/macosx/aarch64/libswt-cocoa-4944r26.jnilib
    Can't load library: /<user-home-path>/.swt/lib/macosx/aarch64/libswt-cocoa.jnilib
    Can't load library: /<user-home-path>/.swt/lib/macosx/aarch64/libswt.jnilib
    /<user-home-path>/.swt/lib/macosx/aarch64/libswt-cocoa-4944r26.jnilib: dlopen(/<user-home-path>/.swt/lib/macosx/aarch64/libswt-cocoa-4944r26.jnilib, 0x0001): tried: '/<user-home-path>/.swt/lib/macosx/aarch64/libswt-cocoa-4944r26.jnilib' (mach-o file, but is an incompatible architecture (have (x86_64), need (arm64e)))

    at org.eclipse.swt.internal.Library.loadLibrary(Library.java:348)
    at org.eclipse.swt.internal.Library.loadLibrary(Library.java:257)
    at org.eclipse.swt.internal.C.<clinit>(C.java:19)
    at org.eclipse.swt.widgets.Display.<clinit>(Display.java:107)
    at org.pentaho.di.ui.core.widget.OsHelper.setAppName(OsHelper.java:106)
    at org.pentaho.di.ui.spoon.Spoon.main(Spoon.java:652)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at org.pentaho.commons.launcher.Launcher.main(Launcher.java:92)

So you need to install Java again from the same intel terminal profile so an x86 version is installed.

You can use SDK Man and after that you can execute this command (for java 8 temurin):

> sdk install java 8.0.345-tem
.
.
.
> Do you want java 8.0.345-tem to be set as default? (Y/n): n

The n answer is because you don't wanna run every other java program with the x86 version.

After that you can tell SDK Man to use this new version for this terminal shell

> sdk use java 8.0.345-tem

then just verify the current version is the one you've just indicated sdk man to use:

> java -version

you should see something like this:

openjdk version "1.8.0_345"
OpenJDK Runtime Environment (Temurin)(build 1.8.0_345-b01)
OpenJDK 64-Bit Server VM (Temurin)(build 25.345-b01, mixed mode)

After that you can finally start spoon

> ./spoon.sh
Lipchitz answered 22/10, 2022 at 17:58 Comment(0)
P
2

I tried the above solution but still got this error

I'm sorry, this Mac platform [arm64] is not yet supported! Please try starting using 'Data Integration 32-bit' or 'Data Integration 64-bit' as appropriate.

I found that the spoon.sh uses command uname -m to detect CPU architecture and show the error if arm64 architecture is detected. Unfortunately, the command always return arm64 even in the Rosetta Terminal.

My solution is:

  1. Replace all uname -m by echo 'x86_64'in spoon.sh file
  2. Download latest swt.jar and copy into /path_to_your_data-integration/libswt/osx64/

You now can run spoon.sh even in arrch64 terminal

  • MacOS: 14.2.1 (Mackbook 14 M1 Pro)
  • Pentaho: 9.4
  • Java: Corretto-21.0.2.13.1
Prohibition answered 27/2 at 18:2 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.