Mac下载安装Kettle
在M1 Mac 上安装部署PDI(kettle)
Kettle并没有原生支持M1,所以本文大致思路是使用Rosetta转译运行,无需借助任何虚拟机。在此特别感谢董老师的帮助~
安装步骤
配置Rosetta Terminal(强制在Intel模式下运行shell)
参考 https://cutecoder.org/software/run-command-line-apple-silicon/
打开Terminal终端的 偏好设置 → 描述文件
从左侧选择一个你喜欢的shell → 下方省略号 → 复制描述文件
点击新的描述文件 给它起一个好听的名字 就像“Rosetta Shell”
右侧点击 窗口 再给它起一个好听的标题 就像“Terminal (Intel)”
点击 shell 运行命令处写入以下 并取消勾选 在shell中运行
env /usr/bin/arch -x86_64 ``/bin/zsh --login
(可选) 将该shell设置为默认
安装Homebrew
在arm64架构中 我们需要做两种Homebrew的安装
/usr/local/homebrew —— 服务于传统intel安装路径
/opt/homebrew —— 服务于已原生支持Apple Silicon的包
打开刚配置好的Rosetta Shell
输入以下几行命令:
1
2
3
4
5cd /usr/local
sudo mkdir homebrew
sudo chgrp everyone homebrew
sudo chmod g+rwx homebrew
curl -L https://github.com/Homebrew/brew/tarball/master | tar xz --strip 1 -C homebrew在 ~/.zshrc 中加入如下行,来自动选择运行何种homebrew的安装模式:
1
2
3
4
5
6if [ "$(sysctl -n sysctl.proc_translated)" = "1" ]; then
local brew_path="/usr/local/homebrew/bin"
else
local brew_path="/opt/homebrew/bin"
fi
export PATH="${brew_path}:${PATH}"退出后执行:
source ~/.zshrc
配置 java环境(JDK)
这里需要对应Kettle和JDK 版本的对应关系 非常严格。具体可以自己搜索。
==我这里使用的kettle9.1 + jdk8==
你可能原来有其他版本的jdk,jdk的多版本管理参考:https://blog.csdn.net/qq_39992641/article/details/117048076
安装openjdk的jdk8(或者直接去https://www.azul.com/core-post-download/?endpoint=zulu&uuid=e9bc2ead-23a6-45b2-98ec-4019a5ff6642,下载dmg文件,这样是最简单的,一定要用JDK1.8.0_202(百度网盘链接:https://pan.baidu.com/s/1wwnoeYwrinQbialUcUYlYA 提取码: wyey)):
1
2
3
4
5brew tap AdoptOpenJDK/openjdk
brew install --cask adoptopenjdk8
# 或者:
brew install openjdk@8多版本控制:
vim ~/.bashrc
:1
2
3
4
5
6
7
8export JAVA_8_HOME="/usr/local/homebrew/opt/openjdk@8/bin"
alias java8='export JAVA_HOME=$JAVA_8_HOME'
export JAVA_17_HOME="/Library/Java/JavaVirtualMachines/zulu-17.jdk/Contents/Home"
alias java17='export JAVA_HOME=$JAVA_17_HOME'
# 默认使用java17
export JAVA_HOME=$JAVA_17_HOME退出后:
source ~/.bashrc
之后想要切换为JDK8只需要输入命令:
java8
即可转化。==使用Kettle一定要在JDK8环境下==下载Kettle
官网好像有问题,下载不了了
这里找了一个百度网盘链接:https://pan.baidu.com/s/1ltrZjQDRR2hSrnQO3Qfl_Q
提取码:uk6c
启动Kettle
进入/data-integration目录
输入:
sh spoon.sh
即可如果出现界面不闪退基本成功,如果打开失败请看后续内容。
问题
第一种
我输入sh spoon.sh
之后打开可以看到界面了,但是会闪退,部分报错为:
1 | java.lang.NullPointerException |
解决办法:
下载最新的eclipse.swt包,替换kettle中的原文件即可 下载地址
替换路径:data-integration → libswt → osx64
把该位置原本的swt.jar
文件删掉,下载的新文件改名为swt.jar
即可。
第二种
出现类似报错:
1 | spoon Unrecognized VM option 'MaxPermSize=256m' |
可以打开spoon.bat文件,找到VM option
配置,直接删掉'MaxPermSize=256m'