【问题标题】:Error while executing Pig Script using Spring xd使用 Spring xd 执行 Pig 脚本时出错
【发布时间】:2015-04-19 10:34:26
【问题描述】:

我正在尝试使用 Spring xd 执行猪代码 sn-p,但无法执行此操作。我使用以下命令创建了一个作业

job create --name Pig_job --definition "PigTest" --deploy

PigTest作业定义在Spring xd modules/job目录下定义如下

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"



xmlns:hdp="http://www.springframework.org/schema/hadoop"
xmlns:context="http://www.springframework.org/schema/context"
xmlns:util="http://www.springframework.org/schema/util"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
    http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd
    http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util.xsd
    http://www.springframework.org/schema/hadoop http://www.springframework.org/schema/hadoop/spring-hadoop.xsd">


<hdp:pig-runner id="pigRunner" run-at-startup="true">
   <hdp:script>
         student = LOAD '/user/KhiTest/Test123/student' AS     (Id:int,Name:chararray,Year:int);
         DUMP student;
   </hdp:script>
   </hdp:pig-runner>

</beans>

已成功创建作业,但部署失败。日志文件如下:

23:57:46,990 错误 DeploymentsPathChildrenCache-0 boot.SpringApplication - 应用程序启动失败 org.springframework.beans.factory.BeanCreationException:创建名为“pigRunner”的bean时出错:bean初始化失败;嵌套异常是 java.lang.TypeNotPresentException:类型 org.apache.pig.backend.executionengine.ExecJob 不存在 在 org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:547) 在 org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:475) 在 org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:302) 在 org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:228) 在 org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:298) 在 org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:193) 在 org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:703) 在 org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:760) 在 org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:482) 在 org.springframework.boot.SpringApplication.refresh(SpringApplication.java:691) 在 org.springframework.boot.SpringApplication.run(SpringApplication.java:320) 在 org.springframework.boot.builder.SpringApplicationBuilder.run(SpringApplicationBuilder.java:142) 在 org.springframework.xd.module.core.SimpleModule.initialize(SimpleModule.java:210) 在 org.springframework.xd.dirt.module.ModuleDeployer.deploy(ModuleDeployer.java:98) 在 org.springframework.xd.dirt.module.ModuleDeployer.deployAndStore(ModuleDeployer.java:88) 在 org.springframework.xd.dirt.module.ModuleDeployer.deployAndStore(ModuleDeployer.java:78) 在 org.springframework.xd.dirt.server.ContainerRegistrar.deployModule(ContainerRegistrar.java:236) 在 org.springframework.xd.dirt.server.ContainerRegistrar.deployJobModule(ContainerRegistrar.java:697) 在 org.springframework.xd.dirt.server.ContainerRegistrar.onChildAdded(ContainerRegistrar.java:614) 在 org.springframework.xd.dirt.server.ContainerRegistrar.access$800(ContainerRegistrar.java:99) 在 org.springframework.xd.dirt.server.ContainerRegistrar$DeploymentListener.childEvent(ContainerRegistrar.java:1020) 在 org.apache.curator.framework.recipes.cache.PathChildrenCache$5.apply(PathChildrenCache.java:509) 在 org.apache.curator.framework.recipes.cache.PathChildrenCache$5.apply(PathChildrenCache.java:503) 在 org.apache.curator.framework.listen.ListenerContainer$1.run(ListenerContainer.java:92) 在 com.google.common.util.concurrent.MoreExecutors$SameThreadExecutorService.execute(MoreExecutors.java:297) 在 org.apache.curator.framework.listen.ListenerContainer.forEach(ListenerContainer.java:83) 在 org.apache.curator.framework.recipes.cache.PathChildrenCache.callListeners(PathChildrenCache.java:500) 在 org.apache.curator.framework.recipes.cache.EventOperation.invoke(EventOperation.java:35) 在 org.apache.curator.framework.recipes.cache.PathChildrenCache$10.run(PathChildrenCache.java:762) 在 java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471) 在 java.util.concurrent.FutureTask.run(FutureTask.java:262) 在 java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471) 在 java.util.concurrent.FutureTask.run(FutureTask.java:262) 在 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) 在 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) 在 java.lang.Thread.run(Thread.java:745) 引起:java.lang.TypeNotPresentException:类型 org.apache.pig.backend.executionengine.ExecJob 不存在 在 sun.reflect.generics.factory.CoreReflectionFactory.makeNamedType(CoreReflectionFactory.java:117) 在 sun.reflect.generics.visitor.Reifier.visitClassTypeSignature(Reifier.java:125) 在 sun.reflect.generics.tree.ClassTypeSignature.accept(ClassTypeSignature.java:49) 在 sun.reflect.generics.visitor.Reifier.reifyTypeArguments(Reifier.java:68) 在 sun.reflect.generics.visitor.Reifier.visitClassTypeSignature(Reifier.java:138) 在 sun.reflect.generics.tree.ClassTypeSignature.accept(ClassTypeSignature.java:49) 在 sun.reflect.generics.visitor.Reifier.reifyTypeArguments(Reifier.java:68) 在 sun.reflect.generics.visitor.Reifier.visitClassTypeSignature(Reifier.java:138) 在 sun.reflect.generics.tree.ClassTypeSignature.accept(ClassTypeSignature.java:49) 在 sun.reflect.generics.repository.ClassRepository.getSuperInterfaces(ClassRepository.java:100) 在 java.lang.Class.getGenericInterfaces(Class.java:819) 在 org.springframework.core.ResolvableType.getInterfaces(ResolvableType.java:399) 在 org.springframework.core.ResolvableType.as(ResolvableType.java:365) 在 org.springframework.core.ResolvableType.forMethodParameter(ResolvableType.java:1082) 在 org.springframework.core.ResolvableType.forMethodParameter(ResolvableType.java:1051) 在 org.springframework.core.ResolvableType.forMethodReturnType(ResolvableType.java:1010) 在 org.springframework.core.GenericTypeResolver.resolveReturnType(GenericTypeResolver.java:89) 在 org.springframework.beans.GenericTypeAwarePropertyDescriptor.getPropertyType(GenericTypeAwarePropertyDescriptor.java:132) 在 org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.isExcludedFromDependencyCheck(AbstractAutowireCapableBeanFactory.java:1365) 在 org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.filterPropertyDescriptorsForDependencyCheck(AbstractAutowireCapableBeanFactory.java:1346) 在 org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.filterPropertyDescriptorsForDependencyCheck(AbstractAutowireCapableBeanFactory.java:1322) 在 org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1180) 在 org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:537) ... 35 更多 引起:java.lang.ClassNotFoundException:org.apache.pig.backend.executionengine.ExecJob 在 java.net.URLClassLoader$1.run(URLClassLoader.java:366) 在 java.net.URLClassLoader$1.run(URLClassLoader.java:355) 在 java.security.AccessController.doPrivileged(本机方法) 在 java.net.URLClassLoader.findClass(URLClassLoader.java:354) 在 java.lang.ClassLoader.loadClass(ClassLoader.java:425) 在 sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308) 在 java.lang.ClassLoader.loadClass(ClassLoader.java:358) 在 java.lang.Class.forName0(本机方法) 在 java.lang.Class.forName(Class.java:274) 在 sun.reflect.generics.factory.CoreReflectionFactory.makeNamedType(CoreReflectionFactory.java:114) ... 57 更多 23:57:46,992 错误 DeploymentsPathChildrenCache-0 server.ContainerRegistrar - 异常部署模块 org.springframework.beans.factory.BeanCreationException:创建名为“pigRunner”的bean时出错:bean初始化失败;嵌套异常是 java.lang.TypeNotPresentException:类型 org.apache.pig.backend.executionengine.ExecJob 不存在 在 org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:547) 在 org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:475) 在 org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:302) 在 org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:228) 在 org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:298) 在 org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:193) 在 org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:703) 在 org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:760) 在 org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:482) 在 org.springframework.boot.SpringApplication.refresh(SpringApplication.java:691) 在 org.springframework.boot.SpringApplication.run(SpringApplication.java:320) 在 org.springframework.boot.builder.SpringApplicationBuilder.run(SpringApplicationBuilder.java:142) 在 org.springframework.xd.module.core.SimpleModule.initialize(SimpleModule.java:210) 在 org.springframework.xd.dirt.module.ModuleDeployer.deploy(ModuleDeployer.java:98) 在 org.springframework.xd.dirt.module.ModuleDeployer.deployAndStore(ModuleDeployer.java:88) 在 org.springframework.xd.dirt.module.ModuleDeployer.deployAndStore(ModuleDeployer.java:78) 在 org.springframework.xd.dirt.server.ContainerRegistrar.deployModule(ContainerRegistrar.java:236) 在 org.springframework.xd.dirt.server.ContainerRegistrar.deployJobModule(ContainerRegistrar.java:697) 在 org.springframework.xd.dirt.server.ContainerRegistrar.onChildAdded(ContainerRegistrar.java:614) 在 org.springframework.xd.dirt.server.ContainerRegistrar.access$800(ContainerRegistrar.java:99) 在 org.springframework.xd.dirt.server.ContainerRegistrar$DeploymentListener.childEvent(ContainerRegistrar.java:1020) 在 org.apache.curator.framework.recipes.cache.PathChildrenCache$5.apply(PathChildrenCache.java:509) 在 org.apache.curator.framework.recipes.cache.PathChildrenCache$5.apply(PathChildrenCache.java:503) 在 org.apache.curator.framework.listen.ListenerContainer$1.run(ListenerContainer.java:92) 在 com.google.common.util.concurrent.MoreExecutors$SameThreadExecutorService.execute(MoreExecutors.java:297) 在 org.apache.curator.framework.listen.ListenerContainer.forEach(ListenerContainer.java:83) 在 org.apache.curator.framework.recipes.cache.PathChildrenCache.callListeners(PathChildrenCache.java:500) 在 org.apache.curator.framework.recipes.cache.EventOperation.invoke(EventOperation.java:35) 在 org.apache.curator.framework.recipes.cache.PathChildrenCache$10.run(PathChildrenCache.java:762) 在 java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471) 在 java.util.concurrent.FutureTask.run(FutureTask.java:262) 在 java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471) 在 java.util.concurrent.FutureTask.run(FutureTask.java:262) 在 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) 在 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) 在 java.lang.Thread.run(Thread.java:745) 引起:java.lang.TypeNotPresentException:类型 org.apache.pig.backend.executionengine.ExecJob 不存在 在 sun.reflect.generics.factory.CoreReflectionFactory.makeNamedType(CoreReflectionFactory.java:117) 在 sun.reflect.generics.visitor.Reifier.visitClassTypeSignature(Reifier.java:125) 在 sun.reflect.generics.tree.ClassTypeSignature.accept(ClassTypeSignature.java:49) 在 sun.reflect.generics.visitor.Reifier.reifyTypeArguments(Reifier.java:68) 在 sun.reflect.generics.visitor.Reifier.visitClassTypeSignature(Reifier.java:138) 在 sun.reflect.generics.tree.ClassTypeSignature.accept(ClassTypeSignature.java:49) 在 sun.reflect.generics.visitor.Reifier.reifyTypeArguments(Reifier.java:68) 在 sun.reflect.generics.visitor.Reifier.visitClassTypeSignature(Reifier.java:138) 在 sun.reflect.generics.tree.ClassTypeSignature.accept(ClassTypeSignature.java:49) 在 sun.reflect.generics.repository.ClassRepository.getSuperInterfaces(ClassRepository.java:100) 在 java.lang.Class.getGenericInterfaces(Class.java:819) 在 org.springframework.core.ResolvableType.getInterfaces(ResolvableType.java:399) 在 org.springframework.core.ResolvableType.as(ResolvableType.java:365) 在 org.springframework.core.ResolvableType.forMethodParameter(ResolvableType.java:1082) 在 org.springframework.core.ResolvableType.forMethodParameter(ResolvableType.java:1051) 在 org.springframework.core.ResolvableType.forMethodReturnType(ResolvableType.java:1010) 在 org.springframework.core.GenericTypeResolver.resolveReturnType(GenericTypeResolver.java:89) 在 org.springframework.beans.GenericTypeAwarePropertyDescriptor.getPropertyType(GenericTypeAwarePropertyDescriptor.java:132) 在 org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.isExcludedFromDependencyCheck(AbstractAutowireCapableBeanFactory.java:1365) 在 org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.filterPropertyDescriptorsForDependencyCheck(AbstractAutowireCapableBeanFactory.java:1346) 在 org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.filterPropertyDescriptorsForDependencyCheck(AbstractAutowireCapableBeanFactory.java:1322) 在 org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1180) 在 org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:537) ... 35 更多 引起:java.lang.ClassNotFoundException:org.apache.pig.backend.executionengine.ExecJob 在 java.net.URLClassLoader$1.run(URLClassLoader.java:366) 在 java.net.URLClassLoader$1.run(URLClassLoader.java:355) 在 java.security.AccessController.doPrivileged(本机方法) 在 java.net.URLClassLoader.findClass(URLClassLoader.java:354) 在 java.lang.ClassLoader.loadClass(ClassLoader.java:425) 在 sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308) 在 java.lang.ClassLoader.loadClass(ClassLoader.java:358) 在 java.lang.Class.forName0(本机方法) 在 java.lang.Class.forName(Class.java:274) 在 sun.reflect.generics.factory.CoreReflectionFactory.makeNamedType(CoreReflectionFactory.java:114) ... 57 更多 23:57:47,017 INFO DeploymentsPathChildrenCache-0 server.ContainerRegistrar - 路径缓存事件:path=/deployments/modules/allocated/cd96473f-2317-4b0a-877e-8abb4cc15c8f/Pig_Test.job.Pig_runner.1,type=CHILD_REMOVED 23:57:47,017 INFO Deployer server.JobDeploymentListener - 作业“Pig_Test”的部署状态:DeploymentStatus{state=failed,error(s)=org.springframework.beans.factory.BeanCreationException:创建名为“pigRunner”的 bean 时出错:初始化bean 失败;嵌套异常是 java.lang.TypeNotPresentException:类型 org.apache.pig.backend.executionengine.ExecJob 不存在 在 org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:547) 在 org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:475) 在 org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:302) 在 org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:228) 在 org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:298) 在 org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:193) 在 org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:703) 在 org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:760) 在 org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:482) 在 org.springframework.boot.SpringApplication.refresh(SpringApplication.java:691) 在 org.springframework.boot.SpringApplication.run(SpringApplication.java:320) 在 org.springframework.boot.builder.SpringApplicationBuilder.run(SpringApplicationBuilder.java:142) 在 org.springframework.xd.module.core.SimpleModule.initialize(SimpleModule.java:210) 在 org.springframework.xd.dirt.module.ModuleDeployer.deploy(ModuleDeployer.java:98) 在 org.springframework.xd.dirt.module.ModuleDeployer.deployAndStore(ModuleDeployer.java:88) 在 org.springframework.xd.dirt.module.ModuleDeployer.deployAndStore(ModuleDeployer.java:78) 在 org.springframework.xd.dirt.server.ContainerRegistrar.deployModule(ContainerRegistrar.java:236) 在 org.springframework.xd.dirt.server.ContainerRegistrar.deployJobModule(ContainerRegistrar.java:697) 在 org.springframework.xd.dirt.server.ContainerRegistrar.onChildAdded(ContainerRegistrar.java:614) 在 org.springframework.xd.dirt.server.ContainerRegistrar.access$800(ContainerRegistrar.java:99) 在 org.springframework.xd.dirt.server.ContainerRegistrar$DeploymentListener.childEvent(ContainerRegistrar.java:1020) 在 org.apache.curator.framework.recipes.cache.PathChildrenCache$5.apply(PathChildrenCache.java:509) 在 org.apache.curator.framework.recipes.cache.PathChildrenCache$5.apply(PathChildrenCache.java:503) 在 org.apache.curator.framework.listen.ListenerContainer$1.run(ListenerContainer.java:92) 在 com.google.common.util.concurrent.MoreExecutors$SameThreadExecutorService.execute(MoreExecutors.java:297) 在 org.apache.curator.framework.listen.ListenerContainer.forEach(ListenerContainer.java:83) 在 org.apache.curator.framework.recipes.cache.PathChildrenCache.callListeners(PathChildrenCache.java:500) 在 org.apache.curator.framework.recipes.cache.EventOperation.invoke(EventOperation.java:35) 在 org.apache.curator.framework.recipes.cache.PathChildrenCache$10.run(PathChildrenCache.java:762) 在 java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471) 在 java.util.concurrent.FutureTask.run(FutureTask.java:262) 在 java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471) 在 java.util.concurrent.FutureTask.run(FutureTask.java:262) 在 java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) 在 java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) 在 java.lang.Thread.run(Thread.java:745) 引起:java.lang.TypeNotPresentException:类型 org.apache.pig.backend.executionengine.ExecJob 不存在 在 sun.reflect.generics.factory.CoreReflectionFactory.makeNamedType(CoreReflectionFactory.java:117) 在 sun.reflect.generics.visitor.Reifier.visitClassTypeSignature(Reifier.java:125) 在 sun.reflect.generics.tree.ClassTypeSignature.accept(ClassTypeSignature.java:49) 在 sun.reflect.generics.visitor.Reifier.reifyTypeArguments(Reifier.java:68) 在 sun.reflect.generics.visitor.Reifier.visitClassTypeSignature(Reifier.java:138) 在 sun.reflect.generics.tree.ClassTypeSignature.accept(ClassTypeSignature.java:49) 在 sun.reflect.generics.visitor.Reifier.reifyTypeArguments(Reifier.java:68) 在 sun.reflect.generics.visitor.Reifier.visitClassTypeSignature(Reifier.java:138) 在 sun.reflect.generics.tree.ClassTypeSignature.accept(ClassTypeSignature.java:49) 在 sun.reflect.generics.repository.ClassRepository.getSuperInterfaces(ClassRepository.java:100) 在 java.lang.Class.getGenericInterfaces(Class.java:819) 在 org.springframework.core.ResolvableType.getInterfaces(ResolvableType.java:399) 在 org.springframework.core.ResolvableType.as(ResolvableType.java:365) 在 org.springframework.core.ResolvableType.forMethodParameter(ResolvableType.java:1082) 在 org.springframework.core.ResolvableType.forMethodParameter(ResolvableType.java:1051) 在 org.springframework.core.ResolvableType.forMethodReturnType(ResolvableType.java:1010) 在 org.springframework.core.GenericTypeResolver.resolveReturnType(GenericTypeResolver.java:89) 在 org.springframework.beans.GenericTypeAwarePropertyDescriptor.getPropertyType(GenericTypeAwarePropertyDescriptor.java:132) 在 org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.isExcludedFromDependencyCheck(AbstractAutowireCapableBeanFactory.java:1365) 在 org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.filterPropertyDescriptorsForDependencyCheck(AbstractAutowireCapableBeanFactory.java:1346) 在 org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.filterPropertyDescriptorsForDependencyCheck(AbstractAutowireCapableBeanFactory.java:1322) 在 org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1180) 在 org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:537) ... 35 更多 引起:java.lang.ClassNotFoundException:org.apache.pig.backend.executionengine.ExecJob 在 java.net.URLClassLoader$1.run(URLClassLoader.java:366) 在 java.net.URLClassLoader$1.run(URLClassLoader.java:355) 在 java.security.AccessController.doPrivileged(本机方法) 在 java.net.URLClassLoader.findClass(URLClassLoader.java:354) 在 java.lang.ClassLoader.loadClass(ClassLoader.java:425) 在 sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308) 在 java.lang.ClassLoader.loadClass(ClassLoader.java:358) 在 java.lang.Class.forName0(本机方法) 在 java.lang.Class.forName(Class.java:274) 在 sun.reflect.generics.factory.CoreReflectionFactory.makeNamedType(CoreReflectionFactory.java:114) ... 57 更多 } 23:57:47,017 INFO DeploymentsPathChildrenCache-0 server.ContainerRegistrar - 取消部署模块 [ModuleDescriptor@d8cfc80 moduleName = 'Pig_runner', moduleLabel = 'Pig_runner', group = 'Pig_Test', sourceChannelName = [null], sinkChannelName = [null], sinkChannelName = [null], index = 0, type = job, parameters = map[[empty]], children = list[[empty]]]

【问题讨论】:

    标签: spring spring-mvc apache-pig hadoop-streaming spring-xd


    【解决方案1】:

    原因:java.lang.ClassNotFoundException: org.apache.pig.backend.executionengine.ExecJob

    你是否将 pig 添加到模块的 /lib 中?

    【讨论】:

    • 在 Spring XD 1.1.0 中,我们现在将 Pig jar 包含在 Hadoop 类路径中。尝试使用最新版本并查看此处的示例:github.com/spring-projects/spring-xd-samples/tree/master/…。配置作业的最佳方式是将其设置为在其中一个步骤中使用 Pig tasklet 的批处理作业。
    • 我在 /lib 目录下有以下 jars batch-pig-1.0.0.BUILD-SNAPSHOT.jar spring-integration-jdbc-4.0.2.RELEASE.jar spring-xd-extension- jdbc-1.0.1.RELEASE.jar
    • 因此,在这种情况下,您没有猪罐,但我认为您的代码无论如何都不能作为工作,因为您的 中没有定义模块配置。新的 XD 版本 1.1.0 在 XD 类路径中包含 pig-0.14.0-h2.jar。你能升级到1.1.0吗?如果是这样,请查看 Pig 示例模块 - github.com/spring-projects/spring-xd-samples/tree/master/…