Я искал веб и stackoverflow в течение длительного времени, но это было бесполезно.hadoop - Соединение отказалось от namenode
Я установил hasoop пряжу 2.2.0 в настройке кластера двух узлов. но что-то не так. , когда я запускаю демонов daoop, используя start-dfs.sh и start-yarn.sh на главном узле, они успешно выполняются в главном и подчиненном (имя моего хозяина - RM, а имя моего slave - slv). они могут успешно ssh друг друга. но когда я хочу, чтобы выполнить задание, появляется эта ошибка:
14/01/02 04:22:53 WARN util.NativeCodeLoader: Не удалось загрузить библиотеку нативной Hadoop для платформы ... используя builtin- java classes, где применимо 14/01/02 04:22:56 WARN hdfs.DFSClient: Исключение DataStreamer org.apache.hadoop.ipc.RemoteException (java.io.IOException): Файл/пользователь/корень/QuasiMonteCarlo_1388665371850_813553673/in/part0 может быть реплицирован только на 0 узлов вместо minReplication (= 1). Работает 0 datanode (s), и ни один узел (ы) не исключен в этой операции. at org.apache.hadoop.hdfs.server.blockmanagement.BlockManager.chooseTarget (BlockManager.java:1384) at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.getAdditionalBlock (FSNamesystem.java:2477) at org.apache.hadoop.hdfs.server.namenode.NameNodeRpcServer.addBlock (NameNodeRpcServer.java:555) на org.apache.hadoop.hdfs.protocolPB.ClientNamenodeProtocolServerSideTranslatorPB.addBlock (ClientNamenodeProtocolServerSideTranslatorPB.java:387) на org.apache. hadoop.hdfs.protocol.proto.ClientNamenodeProtocolProtos $ ClientNamenodeProtocol $ 2.callBlockingMethod (ClientNamenodeProtocolProtos.java:59582) на org.apache.hadoop.ipc.ProtobufRpcEngine $ сервера $ ProtoBufRpcInvoker.call (ProtobufRpcEngine.java:585) в org.apache .hadoop.ipc.RPC $ Server.call (RPC.java:928) at org.apache.hadoop.ipc.Server $ Handler $ 1.run (Server.java:2048) at org.apache.hadoop.ipc.Server $ Обработчик $ 1.run (Server.java:2044) в java. security.AccessController.doPrivileged (собственный метод) at javax.security.auth.Subject.doAs (Subject.java:416) at org.apache.hadoop.security.UserGroupInformation.doAs (UserGroupInformation.java:1491) at org .apache.hadoop.ipc.Server $ Handler.run (Server.java:2042)
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.$Proxy9.addBlock(Unknown Source)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:622)
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.$Proxy9.addBlock(Unknown Source)
at org.apache.hadoop.hdfs.protocolPB.ClientNamenodeProtocolTranslatorPB.addBlock(ClientNamenodeProtocolTranslatorPB.java:330)
at org.apache.hadoop.hdfs.DFSOutputStream$DataStreamer.locateFollowingBlock(DFSOutputStream.java:1226)
at org.apache.hadoop.hdfs.DFSOutputStream$DataStreamer.nextBlockOutputStream(DFSOutputStream.java:1078)
at org.apache.hadoop.hdfs.DFSOutputStream$DataStreamer.run(DFSOutputStream.java:514)
и в DataNode журнал этот журнал существует:
2014-01-02 04: 40: 31,616 WARN org.apache.hadoop.hdfs.server.datanode.DataNode: проблема подключения к серверу: RM/192.168.1.101: 9000 2014-01-02 04:40: 37,618 INFO org.apache.hadoop.ipc.Client: Повторная попытка подключения к серверу: RM/192.168.1.101: 9000. Уже пробовали 0 раз (а) $ 2014-01-02 04: 40: 38,619 INFO org.apache.hadoop.ipc.Client: Повторная попытка подключения к серверу: RM/192.168.1.101: 9000. Уже пробовали 1 раз (а) $ 2014-01-02 04: 40: 39,620 INFO org.apache.hadoop.ipc.Client: Повторная попытка подключения к серверу: RM/192.168.1.101: 9000. Уже пробовали 2 раз (а) $ 2014-01-02 04: 40: 40,621 INFO org.apache.hadoop.ipc.Client: Повторная попытка подключения к серверу: RM/192.168.1.101: 9000. Уже попробовал 3 раз (а)
Я проверил 9000 порт на главном узле, а выход заключается в следующем:
ТСР 0 0 127.0.0.1:9000 0.0.0.0: * СЛУШАТЬ 10227/Java
Я предполагаю, что проблема вызвана той причине, что в ведомом узле, когда я
телнет RM 9000
это говорит
Попытка 192.168.1.101 ... telnet: Не удается подключиться к удаленному хосту: Соединение отклонено
однако
телнет RM
выход:
Попытка 192.168.1.101 ... Подключение к RM. Символ выхода - '^]'. Ubuntu 12.04.2 LTS RM Логин:
для получения дополнительной информации мои/и т.д./хосты ведущего и ведомого, как показано ниже:
127.0.0.1 RM | SLV локальный
192,168 .1.101 RM
192.168.1.103 SLV
Может ли кто-нибудь предложить мне решение? любая помощь действительно оценена. благодаря
Используете IPTables на NameNode? Или что-то еще, что ограничивало бы доступ к порту 9000? – highlycaffeinated
Хороший отчет, спасибо. –