gpt4 book ai didi

java - 如何打包和运行 twill 示例应用程序

转载 作者:可可西里 更新时间:2023-11-01 16:32:06 24 4
gpt4 key购买 nike

我正在尝试使用 apache twill构建 YARN 应用程序。来自 twill presentation 的幻灯片,他们说的是使用maven-bundle-plugin来打包hello world sample。

因此,为了打包示例 hello world,我首先尝试使用 mvn assembly:assembly -DdescriptorId=jar-with-dependencies 打包 jar。然后将以下内容添加到 pom.xml(并执行 mvn clean install):

<build>
<plugins>
<plugin>
<groupId>org.apache.felix</groupId>
<artifactId>maven-bundle-plugin</artifactId>
<version>2.5.3</version>
<extensions>true</extensions>
<configuration>
<instructions>
<Bundle-SymbolicName>${pom.groupId}.${pom.artifactId}</Bundle-SymbolicName>
<Bundle-Name>${pom.artifactId}</Bundle-Name>
<Bundle-Version>1.0.0</Bundle-Version>
<Private-Package>org.wso2.mbp.helloworld</Private-Package>
<Bundle-Activator>org.wso2.mbp.helloworld.Activator</Bundle-Activator>
<Embed-Dependency>*;scope=compile|runtime</Embed-Dependency>
<Embed-Transitive>true</Embed-Transitive>
<Import-Package>
org.apache.twill.*,
org.osgi.framework,
*;resolution:=optional
</Import-Package>
</instructions>
</configuration>
</plugin>
</plugins>
</build>

斜纹应用程序是如何打包的?然后如何在 hadoop 上运行它们?

最佳答案

打包可以使用maven-bundle-plugin。我通常在 pom.xml 中是这样的:

<build>
<plugins>
<plugin>
<groupId>org.apache.felix</groupId>
<artifactId>maven-bundle-plugin</artifactId>
<version>2.3.7</version>
<extensions>true</extensions>
<configuration>
<instructions>
<Embed-Dependency>*;inline=false;groupId=!org.apache.hadoop</Embed-Dependency>
<Embed-Transitive>true</Embed-Transitive>
<Embed-Directory>lib</Embed-Directory>
</instructions>
</configuration>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>bundle</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>

然后运行 ​​MAVEN_OPTS="-Xmx512m"mvn clean package。那应该在目标目录下创建一个 .jar 文件。如果用“jar -tf”查看jar文件的内容,应该是这样的:

my/package/HelloWorld.class
my/package/HelloWorld$HelloWorldRunnable.class
lib/twill-api-0.3.0-incubating.jar
lib/twill-core-0.3.0-incubating.jar
lib/..

要启动该应用程序,请确保您所在的主机可以访问您计划启动该应用程序的 Hadoop 集群。然后你可以在某个目录中对文件进行 scp 和 unjar,然后在扩展的 jar 目录中执行这样的 shell 命令:

$> export HADOOP_CP=`hadoop classpath`
$> java -cp .:lib/*:$HADOOP_CP my.package.HelloWorld

HelloWorld 中的 main() 方法应该能够与 ZooKeeper 和 YARN 交互并在集群中启动应用程序。

关于java - 如何打包和运行 twill 示例应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26036731/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com