EasyML
EasyML copied to clipboard
Job无法运行
已经把环境搭建成功,服务器是在ubuntu下运行docker,在win7系统下访问。
环境搭建完成以后,遇到两个问题:
1.在win7下可以正常访问 http://hadoop-master:18080/EMLStudio/#login,但是登陆的时候一直登陆失败。
2.通过IDE编译以后,访问http://127.0.0.1:8888/EMLStudio.html#monitor,可以登陆进去,运行系统自带的例子一直submit failed。IDe的错误提示
[mkdirs]hdfs://hadoop-master:9000/EML/oozie/APP-PATH-7c5498ac-f557-4a10-9a03-b2971d789875 org.apache.hadoop.ipc.RemoteException(java.io.IOException): File /EML/oozie/APP-PATH-7c5498ac-f557-4a10-9a03-b2971d789875/workflow.xml could only be replicated to 0 nodes instead of minReplication (=1). There are 2 datanode(s) running and 2 node(s) are excluded in this operation.
at org.apache.hadoop.hdfs.server.blockmanagement.BlockManager.chooseTarget4NewBlock(BlockManager.java:1571)
at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.getNewBlockTargets(FSNamesystem.java:3107)
at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.getAdditionalBlock(FSNamesystem.java:3031)
at org.apache.hadoop.hdfs.server.namenode.NameNodeRpcServer.addBlock(NameNodeRpcServer.java:725)
at org.apache.hadoop.hdfs.protocolPB.ClientNamenodeProtocolServerSideTranslatorPB.addBlock(ClientNamenodeProtocolServerSideTranslatorPB.java:492)
at org.apache.hadoop.hdfs.protocol.proto.ClientNamenodeProtocolProtos$ClientNamenodeProtocol$2.callBlockingMethod(ClientNamenodeProtocolProtos.java)
at org.apache.hadoop.ipc.ProtobufRpcEngine$Server$ProtoBufRpcInvoker.call(ProtobufRpcEngine.java:616)
at org.apache.hadoop.ipc.RPC$Server.call(RPC.java:982)
at org.apache.hadoop.ipc.Server$Handler$1.run(Server.java:2049)
at org.apache.hadoop.ipc.Server$Handler$1.run(Server.java:2045)
at java.security.AccessController.doPrivileged(Native Method)
at javax.security.auth.Subject.doAs(Subject.java:422)
at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1698)
at org.apache.hadoop.ipc.Server$Handler.run(Server.java:2043)
at org.apache.hadoop.ipc.Client.call(Client.java:1347)
at org.apache.hadoop.ipc.Client.call(Client.java:1300)
at org.apache.hadoop.ipc.ProtobufRpcEngine$Invoker.invoke(ProtobufRpcEngine.java:206)
at com.sun.proxy.$Proxy44.addBlock(Unknown Source)
at sun.reflect.GeneratedMethodAccessor206.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at org.apache.hadoop.io.retry.RetryInvocationHandler.invokeMethod(RetryInvocationHandler.java:186)
at org.apache.hadoop.io.retry.RetryInvocationHandler.invoke(RetryInvocationHandler.java:102)
at com.sun.proxy.$Proxy44.addBlock(Unknown Source)
at org.apache.hadoop.hdfs.protocolPB.ClientNamenodeProtocolTranslatorPB.addBlock(ClientNamenodeProtocolTranslatorPB.java:330)
at org.apache.hadoop.hdfs.DFSOutputStream$DataStreamer.locateFollowingBlock(DFSOutputStream.java:1231)
at org.apache.hadoop.hdfs.DFSOutputStream$DataStreamer.nextBlockOutputStream(DFSOutputStream.java:1078)
at org.apache.hadoop.hdfs.DFSOutputStream$DataStreamer.run(DFSOutputStream.java:514)
请问是我的配置配的有问题么?
@mayaoguang
您好。关于您的问题:
1、请检查一下windows系统下是否能访问docker中的mysql。地址为:ubuntu地址:3306
2、您上述的错误原因为:
开发环境编译运行无法访问docker中的datanode。
关于这个问题,首先对于ubuntu来说,ubuntu主机能够访问docker中的hadoop-master(Docker自定义的虚拟地址:172.18.0.3)、hadoop-slave1(172.18.0.4)、hadoop-slave2(172.18.0.5)容器;对于windows系统来说,windows主机能够访问ubuntu。但是由于通过Eclipse或IDEA编译运行工程之后,相当于工程部署在windows系统的GWT Server上,任务的提交是通过windows系统进行提交即需要通过windows访问docker中的hdfs。目前的连接关系如下图所示:
(1)windows 能连接ubuntu
(2)ubuntu能连接Docker中的容器
(3)windows无法连接Docker中的容器(导致无法访问docker中的datanode)
目前的解决方案
1、上述开发机无法连接Docker Container的问题,我们目前还没有解决。您可以将EML工程通过maven编译、GWT编译之后打成war包,将war包拷贝到ubuntu系统中(建议用Eclipse进行打包,IDEA打包可能会有问题,具体请参考Eclipse搭建流程),再通过以下命令拷贝到docker的tomcat中进行部署访问:
docker cp 工程路径 hadoop-master:/usr/local/tomcat/webapps/
2、您也可以通过搭建Windows的docker环境,通过docker toolbox安装windows版本的docker,然后搭建虚拟集群,具体请参考Docker Toolbox安装流程。该toolbox的原理是将docker安装在virtual box的虚拟机上,docker的默认虚拟地址为192.168.99.100
。
这种方式也会存在无法访问docker datanode的问题,但是可以通过将Virtual Box虚拟机的网关以及windows 的网关改为192.168.99.100
来解决。
目前我们也在努力解决开发机无法访问Docker容器中的datanode的问题,如果您有合适的解决方案也欢迎一起讨论。
@mayaoguang
您好,您遇到的问题,我们已经解决,具体可参考https://github.com/ICT-BDA/EasyML/wiki/Summary-About-EasyML-Install-Common-Problems 关于IDE部分遇到问题的解决方案。
如您嫌麻烦,也可更新我们网盘中的安装包,我们今天会更新一个新版本解决上述问题。如有任何问题,欢迎向我们反馈,多谢!