복붙노트

[HADOOP] 개인 네트워크에서 실행되는 클러스터에서 Hadoop 작업을 시작하도록 에지 노드 구성

HADOOP

개인 네트워크에서 실행되는 클러스터에서 Hadoop 작업을 시작하도록 에지 노드 구성

직장에서 클러스터에 에지 노드를 설정하려고합니다. 클러스터는 CDH 5. * Hadoop Yarn입니다. 내부 전용 고속 네트워크가 있습니다. 에지 노드는 개인 네트워크 외부에 있습니다.

hadoop 클라이언트 설정 단계를 실행하고 core-site.xml을 구성했습니다. sudo apt-get 설치 hadoop-client

클러스터는 자체 개인 네트워크에서 호스팅되므로 내부 네트워크의 IP 주소가 다릅니다. 10.100.100.1-이름 모드 10.100.100.2-데이터 노드 1 10.100.100.4-데이터 노드 2 100.100.100.6-날짜 노드 3

이를 처리하기 위해 클러스터 관리자에게 네임 노드의 hdfs-site.xml에 다음 속성을 추가하여 수신 포트가 내부 IP 범위에 개방되지 않도록 요청했습니다.

<property>
  <name>dfs.namenode.servicerpc-bind-host</name>
  <value>0.0.0.0</value>
</property>
<property>
  <name>dfs.namenode.http-bind-host</name>
  <value>0.0.0.0</value>
</property>
<property>
  <name>dfs.namenode.https-bind-host</name>
  <value>0.0.0.0</value>
</property>
<property>
  <name>dfs.namenode.rpc-bind-host</name>
  <value>0.0.0.0</value>
</property>

이 설정이 완료되고 서비스가 다시 시작됩니다. 다음 명령을 실행할 수 있습니다. hadoop fs -ls / user / hduser / testData / XML_Flows / test / test_input / *

이것은 잘 작동합니다. 그러나 파일을 찾으려고하면 다음 오류가 발생합니다.

*administrator@administrator-Virtual-Machine:/etc/hadoop/conf.empty$ hadoop fs -cat /user/hduser/testData/XML_Flows/test/test_input/*
*15/05/04 15:39:02 WARN hdfs.BlockReaderFactory: I/O error constructing remote block reader.
org.apache.hadoop.net.ConnectTimeoutException: 60000 millis timeout while waiting for channel to be ready for connect. ch : java.nio.channels.SocketChannel[connection-pending remote=/10.100.100.6:50010]
    at org.apache.hadoop.net.NetUtils.connect(NetUtils.java:532)
    at org.apache.hadoop.hdfs.DFSClient.newConnectedPeer(DFSClient.java:3035)
    at org.apache.hadoop.hdfs.BlockReaderFactory.nextTcpPeer(BlockReaderFactory.java:744)
    at org.apache.hadoop.hdfs.BlockReaderFactory.getRemoteBlockReaderFromTcp(BlockReaderFactory.java:659)
    at org.apache.hadoop.hdfs.BlockReaderFactory.build(BlockReaderFactory.java:327)
    at org.apache.hadoop.hdfs.DFSInputStream.blockSeekTo(DFSInputStream.java:574)
    at org.apache.hadoop.hdfs.DFSInputStream.readWithStrategy(DFSInputStream.java:797)
    at org.apache.hadoop.hdfs.DFSInputStream.read(DFSInputStream.java:844)
    at java.io.DataInputStream.read(DataInputStream.java:100)
    at org.apache.hadoop.io.IOUtils.copyBytes(IOUtils.java:78)
    at org.apache.hadoop.io.IOUtils.copyBytes(IOUtils.java:52)
    at org.apache.hadoop.io.IOUtils.copyBytes(IOUtils.java:112)
    at org.apache.hadoop.fs.shell.Display$Cat.printToStdout(Display.java:104)
    at org.apache.hadoop.fs.shell.Display$Cat.processPath(Display.java:99)
    at org.apache.hadoop.fs.shell.Command.processPaths(Command.java:306)
    at org.apache.hadoop.fs.shell.Command.processPathArgument(Command.java:278)
    at org.apache.hadoop.fs.shell.Command.processArgument(Command.java:260)
    at org.apache.hadoop.fs.shell.Command.processArguments(Command.java:244)
    at org.apache.hadoop.fs.shell.Command.processRawArguments(Command.java:190)
    at org.apache.hadoop.fs.shell.Command.run(Command.java:154)
    at org.apache.hadoop.fs.FsShell.run(FsShell.java:287)
    at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:70)
    at org.apache.hadoop.util.ToolRunner.run(ToolRunner.java:84)
    at org.apache.hadoop.fs.FsShell.main(FsShell.java:340)
15/05/04 15:39:02 WARN hdfs.DFSClient: Failed to connect to /10.100.100.6:50010 for block, add to deadNodes and continue. org.apache.hadoop.net.ConnectTimeoutException: 60000 millis timeout while waiting for channel to be ready for connect. ch : java.nio.channels.SocketChannel[connection-pending remote=/10.100.100.6:50010]
org.apache.hadoop.net.ConnectTimeoutException: 60000 millis timeout while waiting for channel to be ready for connect. ch : java.nio.channels.SocketChannel[connection-pending remote=/10.100.100.6:50010]*

동일한 오류 메시지가 여러 번 반복됩니다.

클러스터 데이터 노드에서 나머지 XML, 즉 hdfs-site.xml, yarn-site.xml, mapred-site.xml을 더 안전한쪽에 복사했습니다. 그러나 여전히 같은 오류가 발생했습니다. 누구든지이 오류에 대한 아이디어가 있거나 개인 네트워크에서 실행되는 클러스터에서 에지 노드를 작동시키는 방법을 알고 있습니다.

에지 노드의 사용자 이름은 "administrator"이지만 클러스터는 "hduser"id를 사용하여 구성됩니다. 이것이 문제가 될 수 있습니까? 에지 노드와 이름 노드 사이에 비밀번호를 덜 로그인하도록 구성했습니다.

해결법

    from https://stackoverflow.com/questions/30028998/configure-edge-node-to-launch-hadoop-jobs-on-cluster-running-on-a-private-networ by cc-by-sa and MIT license