首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >迭代MapReduce (Twister)运行异常

迭代MapReduce (Twister)运行异常
EN

Stack Overflow用户
提问于 2016-07-15 06:48:35
回答 1查看 61关注 0票数 0

我正在尝试运行我的MapReduce应用程序。

这是主要的课程:

代码语言:javascript
复制
public class GPFunctionFitting {
    public static void main(String[] args) {
        // ....
        GPFunctionFitting client;
        try {
            client = new GPFunctionFitting();
            client.runMapReduce(partitionFile, numMapTasks); // line 44
            // ...
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

其方法是:

代码语言:javascript
复制
public ExpressionTree runMapReduce(String partitionFile, int numMapTasks) throws Exception {

        JobConf jobConf = new JobConf("gp-function-fitting-map-reduce" + uuidGen.generateRandomBasedUUID());
        jobConf.setMapperClass(GPMapTask.class);
        jobConf.setReducerClass(GPReduceTask.class);
        jobConf.setCombinerClass(GPCombiner.class);
        jobConf.setNumMapTasks(numMapTasks);
        jobConf.setNumReduceTasks(1);

        TwisterModel driver = new TwisterDriver(jobConf);
        driver.configureMaps(partitionFile); // line 74
        TwisterMonitor monitor = driver.runMapReduce();
        monitor.monitorTillCompletion();
        ExpressionTree solution = ((GPCombiner) driver.getCurrentCombiner()).getResult();

        driver.close();

        return solution;
    }

这是来自eclipse控制台的日志:

代码语言:javascript
复制
JobID:
gp-function-fitting-map-reduce9f25c1da-ab8b-446b-b453-d60f4165b3a9
TransmissionManager: There is a pending/ongoing transfer on
niotcp:///127.0.0.1:3045 for a total of 16384 bytes
TransmissionManager: All transfers have been completed
CommunicationsService: Closing Link =    niotcp://127.0.0.1:3045 null 0 
[main] INFO  cgl.imr.client.TwisterDriver  - MapReduce computation
termintated gracefully.

cgl.imr.base.TwisterException: Could not send all the map executor
requests. First error is Did not receive a response from the worker.14
[Thread-0] DEBUG cgl.imr.client.ShutdownHook  - Shutting down
completed.
    at cgl.imr.client.TwisterDriver.configureMaps(TwisterDriver.java:360)
    at cgl.imr.client.TwisterDriver.configureMaps(TwisterDriver.java:381)
    at map_reduce.GPFunctionFitting.runMapReduce(GPFunctionFitting.java:74)
    at map_reduce.GPFunctionFitting.main(GPFunctionFitting.java:44)

最后,我运行了twister的终端的错误:

代码语言:javascript
复制
2588033 [Thread-4] ERROR cgl.imr.worker.DaemonWorker  - Could not
instantiate the Mapper. cgl.imr.base.TwisterException: Could not
instantiate the Mapper.     at
cgl.imr.worker.Mapper.<init   (Mapper.java:120)     at
cgl.imr.worker.DaemonWorker.handleMapperRequest(DaemonWorker.java:228)
    at cgl.imr.worker.DaemonWorker.onEvent(DaemonWorker.java:471)   
    at cgl.imr.pubsub.nb.NBPubSubService.onEvent(NBPubSubService.java:154)
    at cgl.narada.service.qos.impl.QosServiceImpl.routeToEventConsumer(QosServiceImpl.java:938)
    at cgl.narada.service.qos.impl.QosServiceImpl.manageEventRoutingToDestinations(QosServiceImpl.java:530)
    at cgl.narada.service.qos.impl.QosServiceImpl.processReceivedEvent(QosServiceImpl.java:424)
    at cgl.narada.service.qos.impl.CommunicationsService.processDataPackets(CommunicationsService.java:236)
    at cgl.narada.service.qos.impl.CommunicationsService.processData(CommunicationsService.java:214)
    at cgl.narada.service.qos.impl.CommunicationsService.handleData(CommunicationsService.java:142)
    at cgl.narada.transport.TransportHandlerImpl.dataReceived(TransportHandlerImpl.java:516)
    at cgl.narada.transport.niotcp.NIOTCPReceiverThread.processBuffer(NIOTCPReceiverThread.java:323)
    at cgl.narada.transport.niotcp.NIOTCPReceiverThread.processBuffer(NIOTCPReceiverThread.java:329)
    at cgl.narada.transport.niotcp.NIOTCPReceiverThread.processBuffer(NIOTCPReceiverThread.java:329)
    at cgl.narada.transport.niotcp.NIOTCPReceiverThread.processBuffer(NIOTCPReceiverThread.java:329)
    at cgl.narada.transport.niotcp.NIOTCPReceiverThread.processBuffer(NIOTCPReceiverThread.java:329)
    at cgl.narada.transport.niotcp.NIOTCPReceiverThread.processBuffer(NIOTCPReceiverThread.java:329)
    at cgl.narada.transport.niotcp.NIOTCPReceiverThread.processBuffer(NIOTCPReceiverThread.java:329)
    at cgl.narada.transport.niotcp.NIOTCPReceiverThread.processBuffer(NIOTCPReceiverThread.java:329)
    at cgl.narada.transport.niotcp.NIOTCPReceiverThread.processBuffer(NIOTCPReceiverThread.java:329)
    at cgl.narada.transport.niotcp.NIOTCPReceiverThread.processBuffer(NIOTCPReceiverThread.java:329)
    at cgl.narada.transport.niotcp.NIOTCPReceiverThread.processBuffer(NIOTCPReceiverThread.java:329)
    at cgl.narada.transport.niotcp.NIOTCPReceiverThread.processBuffer(NIOTCPReceiverThread.java:329)
    at cgl.narada.transport.niotcp.NIOTCPReceiverThread.readDataFromSocket(NIOTCPReceiverThread.java:247)
    at cgl.narada.transport.niotcp.NIOTCPReceiverThread.run(NIOTCPReceiverThread.java:196)
Caused by: java.lang.ClassNotFoundException: map_reduce.GPMapTask   
at java.net.URLClassLoader.findClass(URLClassLoader.java:381)   
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)    
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)    
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)    
at java.lang.ClassLoader.findSystemClass(ClassLoader.java:1004)     
at cgl.imr.util.CustomClassLoader.findClass(CustomClassLoader.java:102)
at cgl.imr.util.CustomClassLoader.loadClass(CustomClassLoader.java:129)
at java.lang.Class.forName0(Native Method)  
at java.lang.Class.forName(Class.java:348)  
at cgl.imr.worker.Mapper.<init   (Mapper.java:116)  ... 24 more

类GPMapTask存在,实现了MapTask接口,并且与主类在同一个包中。分区文件是适当生成的,包含12行,等于请求的映射作业数。

至少有人能告诉我在哪里找问题吗?我一直试图解决“类未发现异常”,但我开始相信问题在于分区配置。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-07-19 12:21:40

.class要么丢失,要么存在于多个位置。然后编译器就会混淆,因为类定义是模棱两可的。确保所有类都包括在内,准确地一次。检查类路径中包含的所有jars的内容。

删除bin文件夹,再次清理和生成项目。使用Twister,正在运行的应用程序的.jar文件必须出现在app/目录中。每当应用程序更改时(从IDE运行时)导出最新版本的应用程序。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38389564

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档