2014-09-02 8 views
0

Я пытаюсь отправить задание (простое число слов) в hadoop-2.5.0 (установленное на сервере ubuntu 14.04.1, запущенном на виртуальной машине) из eclipse на окнах. В конфигурации заданий я установил «fs.defaultFS» в «hdfs: //192.168.2.216: 8020» (как предложено в этом thread), но когда я запускаю основную прогамму, я получил следующее исключение:ConnectException при отправке задания hadoop из eclipse

WARN - NativeCodeLoader   - Unable to load native-hadoop library for your platform... using builtin-java classes where applicable 
ERROR - Shell      - Failed to locate the winutils binary in the hadoop binary path 
Exception in thread "main" java.net.ConnectException: Call From EL-OUED/192.168.2.8 to 192.168.2.216:8020 failed on connection exception: java.net.ConnectException: Connection refused: no further information; For more details see: http://wiki.apache.org/hadoop/ConnectionRefused 
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) 
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57) 
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) 
    at java.lang.reflect.Constructor.newInstance(Constructor.java:526) 
    at org.apache.hadoop.net.NetUtils.wrapWithMessage(NetUtils.java:783) 
    at org.apache.hadoop.net.NetUtils.wrapException(NetUtils.java:730) 
    at org.apache.hadoop.ipc.Client.call(Client.java:1414) 
    at org.apache.hadoop.ipc.Client.call(Client.java:1363) 
    at org.apache.hadoop.ipc.ProtobufRpcEngine$Invoker.invoke(ProtobufRpcEngine.java:206) 
    at com.sun.proxy.$Proxy14.getFileInfo(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:606) 
    at org.apache.hadoop.io.retry.RetryInvocationHandler.invokeMethod(RetryInvocationHandler.java:190) 
    at org.apache.hadoop.io.retry.RetryInvocationHandler.invoke(RetryInvocationHandler.java:103) 
    at com.sun.proxy.$Proxy14.getFileInfo(Unknown Source) 
    at org.apache.hadoop.hdfs.protocolPB.ClientNamenodeProtocolTranslatorPB.getFileInfo(ClientNamenodeProtocolTranslatorPB.java:699) 
    at org.apache.hadoop.hdfs.DFSClient.getFileInfo(DFSClient.java:1762) 
    at org.apache.hadoop.hdfs.DistributedFileSystem$17.doCall(DistributedFileSystem.java:1124) 
    at org.apache.hadoop.hdfs.DistributedFileSystem$17.doCall(DistributedFileSystem.java:1120) 
    at org.apache.hadoop.fs.FileSystemLinkResolver.resolve(FileSystemLinkResolver.java:81) 
    at org.apache.hadoop.hdfs.DistributedFileSystem.getFileStatus(DistributedFileSystem.java:1120) 
    at org.apache.hadoop.fs.FileSystem.exists(FileSystem.java:1398) 
    at org.apache.hadoop.mapreduce.lib.output.FileOutputFormat.checkOutputSpecs(FileOutputFormat.java:145) 
    at org.apache.hadoop.mapreduce.JobSubmitter.checkSpecs(JobSubmitter.java:458) 
    at org.apache.hadoop.mapreduce.JobSubmitter.submitJobInternal(JobSubmitter.java:343) 
    at org.apache.hadoop.mapreduce.Job$10.run(Job.java:1285) 
    at org.apache.hadoop.mapreduce.Job$10.run(Job.java:1282) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at javax.security.auth.Subject.doAs(Subject.java:415) 
    at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1556) 
    at org.apache.hadoop.mapreduce.Job.submit(Job.java:1282) 
    at org.apache.hadoop.mapreduce.Job.waitForCompletion(Job.java:1303) 
    at com.heavenize.hadoop.WordCountMR.main(WordCountMR.java:55) 
Caused by: java.net.ConnectException: Connection refused: no further information 
    at sun.nio.ch.SocketChannelImpl.checkConnect(Native Method) 
    at sun.nio.ch.SocketChannelImpl.finishConnect(SocketChannelImpl.java:735) 
    at org.apache.hadoop.net.SocketIOWithTimeout.connect(SocketIOWithTimeout.java:206) 
    at org.apache.hadoop.net.NetUtils.connect(NetUtils.java:529) 
    at org.apache.hadoop.net.NetUtils.connect(NetUtils.java:493) 
    at org.apache.hadoop.ipc.Client$Connection.setupConnection(Client.java:604) 
    at org.apache.hadoop.ipc.Client$Connection.setupIOstreams(Client.java:699) 
    at org.apache.hadoop.ipc.Client$Connection.access$2800(Client.java:367) 
    at org.apache.hadoop.ipc.Client.getConnection(Client.java:1462) 
    at org.apache.hadoop.ipc.Client.call(Client.java:1381) 
    ... 28 more 

Кроме того, при проверке конфигурации соединения на hadoop кажется, что он прослушивает/принимает для соединений на 127.0.0.1:8020.

$netstat -lent | grep 8020 
tcp  0  0 127.0.0.1:8020   0.0.0.0:*    LISTEN  1001  10380 

Это содержание колонкового site.xml, интересно, если он является источником этой проблемы и как это исправить?

<configuration> 
    <property> 
    <name>fs.default.name</name> 
    <value>hdfs://localhost</value> 
    </property> 
</configuration> 

ответ

1

В основном ваш NameNode прослушивает интерфейс LOCALHOST, поэтому он позволяет устанавливать соединение только с 127.0.0.1. Как вы предположили, ошибка действительно находится в параметре fs.default.name, который следует изменить, чтобы использовать имя хоста вместо localhost.

берегись,/и т.д./хосты должны содержать строку

192.168.2.216 hostname.fully.qualified.domain.com hostname 

Вы можете убедиться, что имя хоста правильно установки, выполнив команду «имя хоста» и «имя хоста -f». «hostname» должно возвращать имя системы, возвращенное gethostname, тогда как «hostname -f» должно возвращать fqdn системы.

+0

thnx для подсказки, которая решила проблему подключения. – bachr

Смежные вопросы