【问题标题】:facing trouble launching spoon.sh on amazon ec2 linux在亚马逊 ec2 linux 上启动 spoon.sh 时遇到问题
【发布时间】:2014-03-25 16:34:14
【问题描述】:

我不熟悉 linux 和 Amazon EC2。

我通过以下两个链接配置 JAVA_HOME

How to know JAVA_HOME_Variable

bash_profile

所以我的 bash_profile 中的当前路径是

export JAVA_HOME=/usr/lib/jvm/java-1.7.0-openjdk-1.7.0.51.x86_64

export PATH=$PATH:/usr/lib/jvm/java-1.7.0-openjdk-1.7.0.51.x86_64/bin

现在我正在尝试启动 ./spoon.sh 它给了我错误

 Caused by: java.lang.UnsatisfiedLinkError: Could not load SWT library. Reasons:
    no swt-pi-gtk-3740 in java.library.path
    no swt-pi-gtk in java.library.path
    /root/.swt/lib/linux/x86_64/libswt-pi-gtk-3740.so: libgtk-x11-2.0.so.0: cannot open shared object file: No such file or directory
    Can't load library: /root/.swt/lib/linux/x86_64/libswt-pi-gtk.so

    at org.eclipse.swt.internal.Library.loadLibrary(Unknown Source)
    at org.eclipse.swt.internal.Library.loadLibrary(Unknown Source)
    at org.eclipse.swt.internal.gtk.OS.<clinit>(Unknown Source)
    at org.eclipse.swt.internal.Converter.wcsToMbcs(Unknown Source)
    at org.eclipse.swt.internal.Converter.wcsToMbcs(Unknown Source)
    at org.eclipse.swt.widgets.Display.<clinit>(Unknown Source)
    at org.pentaho.di.ui.spoon.Spoon.main(Spoon.java:540)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:622)
    at org.pentaho.commons.launcher.Launcher.main(Launcher.java:134)

那么有人可以提出什么问题吗?

【问题讨论】:

  • 我安装了 Java SWT,但同样的错误。

标签: java amazon-ec2 classpath pentaho kettle


【解决方案1】:

Pentaho 不支持 openjdk java 版本。 安装 Oracle/Sun java。

但无论如何...您是否尝试在 Ec2 实例上运行水壶环境?没有X屏幕? 如果您只想运行水壶作业或转换,则必须使用 kitchen.sh 或 pan.sh ,而不是spoon.sh。 Spoon.sh 仅用于创建带有 GUI 界面的翻译或作业。

【讨论】:

  • 感谢回复,你说得对,我试图在 ec2 实例上运行kettle 环境,我删除了 openjdk 并安装了 oracle java,但我使用 cassandra 作为数据库,所以我用大数据配置了我的 pdi插件support.pentaho.com/entries/… 这个链接),所以现在在启动 ./kitchen.sh 时它给了我错误 Unable to load Hadoop Configuration from "file:///dev/pdi/data-integration/plugins/pentaho-big -data-plugin/hadoop-configurations/mapr21" 那么我该如何解决这个问题?
  • 和 pan.sh 一样
  • 我使用 pdi 4.4 版本并且总是收到此警告,如果您的作业和翻译正常,请忽略错误,如果没有:尝试从 pdi 目录运行 kitchen.sh 或 pan.sh。 jira.pentaho.com/browse/PDI-5076
  • 感谢您的回复,现在我删除了“pentaho-big-data-plugin”这个文件夹,现在我想运行我的工作,我给出以下命令,./kitchen.sh -job =jobname.kjb(这里我怎么能给出kjb文件的位置)因为它给了我无法加载作业的错误。
  • 我能够以这种方式执行厨房 /pdi-ee/data-integration/kitchen.sh -file /runHdoopFileInput.kjb -norep,是他们的任何方式在亚马逊 ec2 实例中打开水壶,以便我可以分析历史记录、日志记录、作业指标。那么我该怎么做类似的事情呢?
【解决方案2】:

您导出了错误的 JAVA_HOME 路径。应该是这样的:

export JAVA_HOME=/usr/lib/jvm/jre-1.6.0-openjdk.x86_64

【讨论】:

  • 我做了你提到的改变,但同样的问题,没有奏效。
  • @WorkingHard.. /home/nifty/.swt/lib/linux/x86/libswt-pi-gtk.so 是否退出?
  • 更改 JAVA_HOME 后,您必须重新启动终端或使用“source .bashrc”
  • 我评论前重启了,如何查看libswt-pi-gtk是否存在?
  • 使用:ls -lrt /home/nifty/.swt/lib/linux/x86
【解决方案3】:

我在这里看到的问题是 EC2 Amazon Linux AMI 实例的 yum 存储库不包含任何图形二进制文件。这些二进制文件包括 gtk 和带有 gtk 的 swt。您可以编译所有依赖项或使用另一个图像。由于您是新手,我建议您切换到 ubuntu 图像。

在 ubuntu 映像上,您应该能够运行 apt-get 来安装缺少的依赖项:

对于 Java: - sudo add-apt-repository ppa:webupd8team/java 用于 oracle java - sudo apt-get 更新 - sudo apt-get install oracle-java8-installer

对于 libswt: - sudo apt-get install libswt-gtk-3-jni libswt-gtk-3-java

我能想到的另一个问题是您可能正在尝试运行图形应用程序。如果是这种情况,您将不得不使用 Xvnc 或 Xvfb 之类的窗口管理器来运行它。

【讨论】:

    猜你喜欢
    • 2015-10-15
    • 2021-06-13
    • 2016-06-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多