淘宝网网站设计分析,logo 图标 设计,直播营销,如何加强省市级政门户网站建设Hadoop-Eclipse-java#xff1a;耽误进度的几个报错 错误1#xff1a;桥接模式与NAT模式相互切换后导致两种模式都不能访问互联网#xff08;1#xff09;具体错误#xff1a;#xff08;2#xff09;错误原因#xff1a;#xff08;3#xff09;解决方案#xff1a… Hadoop-Eclipse-java耽误进度的几个报错 错误1桥接模式与NAT模式相互切换后导致两种模式都不能访问互联网1具体错误2错误原因3解决方案4问题解决 错误2Exception in thread main org.apache.hadoop.hdfs.server.namenode.SafeModeException: Cannot create file/user/hadoop/merge.txt. Name node is in safe mode.(1)具体报错2错误原因3解决方案(4)问题解决 错误3Exception in thread main java.lang.IllegalArgumentException: java.net.UnknownHostException: localhast和Exception in thread main java.net.ConnectException: Call From Master/172.168.105.81 to localhost:9000 failed on connection exception: java.net.ConnectException: 拒绝连接; For more details see: http://wiki.apache.org/hadoop/ConnectionRefused1具体报错2错误原因3解决方案4问题解决 写在最后 错误1桥接模式与NAT模式相互切换后导致两种模式都不能访问互联网
1具体错误 2错误原因 最本质的错误Ubuntu在联网时要选择一个主机上的适配器作为网络的物理接口如果此物理接口不能访问互联网就会一直连接最后连接失败或者显示有线连接连接成功但是“连接已断开现在处于离线状态”如P3 3解决方案 将“界面名称”选择为主机上正在使用的可以访问互联网的网络适配器。 作为扩展可以了解一下VirtualBox提供的几种最常用的几种网络配置功能
连接方式Attachment
这个选项定义了虚拟机网络适配器的连接方式可选择的模式包括
NATNetwork Address Translation 默认模式。通过主机网络连接到互联网主机会为虚拟机提供一个私有 IP虚拟机可以访问外部网络但外部网络不能直接访问虚拟机。桥接模式Bridged 让虚拟机看起来像是局域网中的一个设备可以直接与局域网中的其他设备通信虚拟机可以获得局域网中的 IP 地址。仅主机模式Host-Only 虚拟机和主机之间可以相互通信但无法访问外部网络。内部网络Internal Network 仅允许虚拟机和其他虚拟机在同一内部网络中通信无法访问主机或外部网络。
界面名称Name
在选择桥接模式时该选项用于选择物理网络适配器如无线网卡或以太网卡。 3. 控制芯片T
这个选项允许你在虚拟机中选择要模拟的网络适配器类型比如 Intel PRO/1000 MT Desktop 或者 PCnet-FAST III 等。 4. 混杂模式P
当使用桥接模式时开启混杂模式可以允许虚拟机接收主机网络上的所有数据包而不仅仅是发送给虚拟机的数据包。 5. MAC 地址M
这是虚拟机网络适配器的 MAC 地址。你可以手动指定一个 MAC 地址也可以让 VirtualBox 自动生成一个。
在虚拟机和主机之间传输文件本质上只要两台设备可以ping通就行通过上面的知识我们可以判定使用 “Host-Only”我们也是可以实现文件传输而不一定要是“桥接模式”如果要实现局域网组网就必须选择桥接模式了。
4问题解决
错误2Exception in thread “main” org.apache.hadoop.hdfs.server.namenode.SafeModeException: Cannot create file/user/hadoop/merge.txt. Name node is in safe mode.
(1)具体报错
Exception in thread main org.apache.hadoop.hdfs.server.namenode.SafeModeException: Cannot create file/user/hadoop/merge.txt. Name node is in safe mode.
The reported blocks 3 needs additional 1 blocks to reach the threshold 0.9990 of total blocks 5.
The minimum number of live datanodes is not required. Safe mode will be turned off automatically once the thresholds have been reached. NamenodeHostName:Masterat org.apache.hadoop.hdfs.server.namenode.FSNamesystem.newSafemodeException(FSNamesystem.java:1468)at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.checkNameNodeSafeMode(FSNamesystem.java:1455)at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.startFileInt(FSNamesystem.java:2429)at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.startFile(FSNamesystem.java:2375)at org.apache.hadoop.hdfs.server.namenode.NameNodeRpcServer.create(NameNodeRpcServer.java:791)at org.apache.hadoop.hdfs.protocolPB.ClientNamenodeProtocolServerSideTranslatorPB.create(ClientNamenodeProtocolServerSideTranslatorPB.java:469)at org.apache.hadoop.hdfs.protocol.proto.ClientNamenodeProtocolProtos$ClientNamenodeProtocol$2.callBlockingMethod(ClientNamenodeProtocolProtos.java)at org.apache.hadoop.ipc.ProtobufRpcEngine$Server$ProtoBufRpcInvoker.call(ProtobufRpcEngine.java:527)at org.apache.hadoop.ipc.RPC$Server.call(RPC.java:1036)at org.apache.hadoop.ipc.Server$RpcCall.run(Server.java:1000)at org.apache.hadoop.ipc.Server$RpcCall.run(Server.java:928)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:1729)at org.apache.hadoop.ipc.Server$Handler.run(Server.java:2916)at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)at java.lang.reflect.Constructor.newInstance(Constructor.java:423)at org.apache.hadoop.ipc.RemoteException.instantiateException(RemoteException.java:121)at org.apache.hadoop.ipc.RemoteException.unwrapRemoteException(RemoteException.java:88)at org.apache.hadoop.hdfs.DFSOutputStream.newStreamForCreate(DFSOutputStream.java:281)at org.apache.hadoop.hdfs.DFSClient.create(DFSClient.java:1212)at org.apache.hadoop.hdfs.DFSClient.create(DFSClient.java:1191)at org.apache.hadoop.hdfs.DFSClient.create(DFSClient.java:1129)at org.apache.hadoop.hdfs.DistributedFileSystem$8.doCall(DistributedFileSystem.java:531)at org.apache.hadoop.hdfs.DistributedFileSystem$8.doCall(DistributedFileSystem.java:528)at org.apache.hadoop.fs.FileSystemLinkResolver.resolve(FileSystemLinkResolver.java:81)at org.apache.hadoop.hdfs.DistributedFileSystem.create(DistributedFileSystem.java:542)at org.apache.hadoop.hdfs.DistributedFileSystem.create(DistributedFileSystem.java:469)at org.apache.hadoop.fs.FileSystem.create(FileSystem.java:1118)at org.apache.hadoop.fs.FileSystem.create(FileSystem.java:1098)at org.apache.hadoop.fs.FileSystem.create(FileSystem.java:987)at org.apache.hadoop.fs.FileSystem.create(FileSystem.java:975)at MergeFile.doMerge(MergeFile.java:45)at MergeFile.main(MergeFile.java:72)
Caused by: org.apache.hadoop.ipc.RemoteException(org.apache.hadoop.hdfs.server.namenode.SafeModeException): Cannot create file/user/hadoop/merge.txt. Name node is in safe mode.
The reported blocks 3 needs additional 1 blocks to reach the threshold 0.9990 of total blocks 5.
The minimum number of live datanodes is not required. Safe mode will be turned off automatically once the thresholds have been reached. NamenodeHostName:Masterat org.apache.hadoop.hdfs.server.namenode.FSNamesystem.newSafemodeException(FSNamesystem.java:1468)at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.checkNameNodeSafeMode(FSNamesystem.java:1455)at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.startFileInt(FSNamesystem.java:2429)at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.startFile(FSNamesystem.java:2375)at org.apache.hadoop.hdfs.server.namenode.NameNodeRpcServer.create(NameNodeRpcServer.java:791)at org.apache.hadoop.hdfs.protocolPB.ClientNamenodeProtocolServerSideTranslatorPB.create(ClientNamenodeProtocolServerSideTranslatorPB.java:469)at org.apache.hadoop.hdfs.protocol.proto.ClientNamenodeProtocolProtos$ClientNamenodeProtocol$2.callBlockingMethod(ClientNamenodeProtocolProtos.java)at org.apache.hadoop.ipc.ProtobufRpcEngine$Server$ProtoBufRpcInvoker.call(ProtobufRpcEngine.java:527)at org.apache.hadoop.ipc.RPC$Server.call(RPC.java:1036)at org.apache.hadoop.ipc.Server$RpcCall.run(Server.java:1000)at org.apache.hadoop.ipc.Server$RpcCall.run(Server.java:928)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:1729)at org.apache.hadoop.ipc.Server$Handler.run(Server.java:2916)at org.apache.hadoop.ipc.Client.getRpcResponse(Client.java:1545)at org.apache.hadoop.ipc.Client.call(Client.java:1491)at org.apache.hadoop.ipc.Client.call(Client.java:1388)at org.apache.hadoop.ipc.ProtobufRpcEngine$Invoker.invoke(ProtobufRpcEngine.java:233)at org.apache.hadoop.ipc.ProtobufRpcEngine$Invoker.invoke(ProtobufRpcEngine.java:118)at com.sun.proxy.$Proxy9.create(Unknown Source)at org.apache.hadoop.hdfs.protocolPB.ClientNamenodeProtocolTranslatorPB.create(ClientNamenodeProtocolTranslatorPB.java:366)at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)at java.lang.reflect.Method.invoke(Method.java:498)at org.apache.hadoop.io.retry.RetryInvocationHandler.invokeMethod(RetryInvocationHandler.java:422)at org.apache.hadoop.io.retry.RetryInvocationHandler$Call.invokeMethod(RetryInvocationHandler.java:165)at org.apache.hadoop.io.retry.RetryInvocationHandler$Call.invoke(RetryInvocationHandler.java:157)at org.apache.hadoop.io.retry.RetryInvocationHandler$Call.invokeOnce(RetryInvocationHandler.java:95)at org.apache.hadoop.io.retry.RetryInvocationHandler.invoke(RetryInvocationHandler.java:359)at com.sun.proxy.$Proxy10.create(Unknown Source)at org.apache.hadoop.hdfs.DFSOutputStream.newStreamForCreate(DFSOutputStream.java:276)... 14 more
2错误原因 Hadoop的NameNodeNN处于安全模式Safe Mode。在安全模式下HDFS的写操作如创建文件受限制直到满足特定的条件才能正常进行写入。 安全模式是HDFS中的一种保护机制它会在某些情况下自动触发例如当集群启动、或者在某些数据块复制的情况下。一般情况下当数据块的复制数量达到一定阈值时NameNode会自动退出安全模式。 3解决方案
查看安全模式状态 使用以下命令检查HDFS当前的安全模式状态
hdfs dfsadmin -safemode get如果它显示HDFS处于安全模式你可以等待HDFS自动退出安全模式或者手动离开安全模式。
手动离开安全模式 如果等待时间太长你可以手动离开安全模式。使用以下命令离开安全模式
hdfs dfsadmin -safemode leave(4)问题解决
错误3Exception in thread “main” java.lang.IllegalArgumentException: java.net.UnknownHostException: localhast和Exception in thread “main” java.net.ConnectException: Call From Master/172.168.105.81 to localhost:9000 failed on connection exception: java.net.ConnectException: 拒绝连接; For more details see: http://wiki.apache.org/hadoop/ConnectionRefused
1具体报错
Exception in thread main java.lang.IllegalArgumentException: java.net.UnknownHostException: localhastat org.apache.hadoop.security.SecurityUtil.buildTokenService(SecurityUtil.java:445)at org.apache.hadoop.hdfs.NameNodeProxiesClient.createProxyWithClientProtocol(NameNodeProxiesClient.java:140)at org.apache.hadoop.hdfs.DFSClient.init(DFSClient.java:355)at org.apache.hadoop.hdfs.DFSClient.init(DFSClient.java:289)at org.apache.hadoop.hdfs.DistributedFileSystem.initialize(DistributedFileSystem.java:172)at org.apache.hadoop.fs.FileSystem.createFileSystem(FileSystem.java:3303)at org.apache.hadoop.fs.FileSystem.access$200(FileSystem.java:124)at org.apache.hadoop.fs.FileSystem$Cache.getInternal(FileSystem.java:3352)at org.apache.hadoop.fs.FileSystem$Cache.get(FileSystem.java:3320)at org.apache.hadoop.fs.FileSystem.get(FileSystem.java:479)at MergeFile.doMerge(MergeFile.java:40)at MergeFile.main(MergeFile.java:72)
Caused by: java.net.UnknownHostException: localhast... 12 more2错误原因
代码中的端口号和主机地址与Hadoop设置的不一致找不到要访问的内容
3解决方案
将代码和“core-site.xml”中的配置保持一致 4问题解决
写在最后
除了上述几个记录在册的报错我还遇到了很多稀奇古怪的报错他们产生的原因多是由于实验教程的指导书是基于“伪分布式”的我在将Hadoop配置成“分布式集群”后接着做实验没有将其还原为“伪分布式”。虽然我早就猜测到出现这么多报错可能是这个配置问题但我仍然硬着头皮做下去想象着做分布式可以让我学到更多东西。后发现自己的进度落后其他同学太多与现实妥协调回“伪分布式”配置赶在最后一节实验课结束前完成了所有实验。如果只是为了完成学习任务还是不要“头铁”浪子回头金不换。