может быть записано только в 0 из 1 узлов minReplication. Работает 0 датоде (ов), и 0 узел (ов) исключен в этой операции - PullRequest
0 голосов
/ 22 марта 2020

У меня было oop на двух кластерах, и в главном узле, когда я пытался поместить файл, используя: hadoop fs -put test.txt /mydata/ Я получил следующую ошибку:

put: File /mydata/test.txt._COPYING_ could only be written to 0 of the 1 minReplication nodes. There are 0 datanode(s) running and 0 node(s) are excluded in this operation.

Когда я набрал hdfs dfsadmin -report он дал мне следующую информацию:

WARN util.NativeCodeLoader: Unable to load native-hadoop library for your platform... using builtin-java classes where applicable
Configured Capacity: 0 (0 B)
Present Capacity: 0 (0 B)
DFS Remaining: 0 (0 B)
DFS Used: 0 (0 B)
DFS Used%: 0.00%
Replicated Blocks:
    Under replicated blocks: 0
    Blocks with corrupt replicas: 0
    Missing blocks: 0
    Missing blocks (with replication factor 1): 0
    Low redundancy blocks with highest priority to recover: 0
    Pending deletion blocks: 0
Erasure Coded Block Groups: 
    Low redundancy block groups: 0
    Block groups with corrupt internal blocks: 0
    Missing block groups: 0
    Low redundancy blocks with highest priority to recover: 0
    Pending deletion blocks: 0

Затем, когда я попытался получить доступ к hdfs из datanode с помощью hadoop fs -ls /, он дал мне следующую информацию:

INFO ipc.Client: Retrying connect to server: master/172.31.81.91:10001. Already tried 0 time(s); maxRetries=45

Я настроил экземпляр на 2 aws -ubuntu экземплярах и открыл все порты TCP / IPV4. У меня есть следующие настройки:

На двух установках:

core-site. xml

<configuration>
   <property>
      <name>fs.defaultFS</name>
      <value>hdfs://172.31.81.91:9000</value>
   </property>
</configuration>

hdfs-site. xml

<configuration>
   <property>
      <name>dfs.replication</name>
      <value>1</value>
   </property>

  <property>
<name>dfs.permissions</name>
<value>false</value>
</property>
   <property>
      <name>dfs.name.dir</name>
      <value>file:///home/hadoop/hadoopinfra/hdfs/namenode </value>
   </property>

   <property>
      <name>dfs.data.dir</name>
      <value>file:///home/hadoop/hadoopinfra/hdfs/datanode </value>
   </property>
</configuration>

mapred-site. xml

<configuration>
   <property>
       <name>mapreduce.framework.name</name>
      <value>yarn</value>
   </property>
    <property>
            <name>yarn.app.mapreduce.am.env</name>
            <value>HADOOP_MAPRED_HOME=$HADOOP_HOME</value>
    </property>
    <property>
            <name>mapreduce.map.env</name>
            <value>HADOOP_MAPRED_HOME=$HADOOP_HOME</value>
    </property>
    <property>
            <name>mapreduce.reduce.env</name>
            <value>HADOOP_MAPRED_HOME=$HADOOP_HOME</value>
    </property>
</configuration>

/ etc / hosts

127.0.0.1 localhost
172.31.81.91 master
172.31.45.232 slave-1

# The following lines are desirable for IPv6 capable hosts
::1 ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
ff02::3 ip6-allhosts

работников

172.31.45.232

А когда я набираю jps Я могу получить

master

12532 NameNode
12847 SecondaryNameNode
13599 Jps

datanode

5172 Jps
4810 DataNode

Когда я печатаю sudo netstat -ntlp, я могу получить:

master:

Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
tcp        0      0 0.0.0.0:9870            0.0.0.0:*               LISTEN      12532/java          
tcp        0      0 127.0.0.53:53           0.0.0.0:*               LISTEN      696/systemd-resolve 
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      1106/sshd           
tcp        0      0 127.0.0.1:631           0.0.0.0:*               LISTEN      809/cupsd           
tcp        0      0 172.31.81.91:9000       0.0.0.0:*               LISTEN      12532/java          
tcp        0      0 0.0.0.0:9868            0.0.0.0:*               LISTEN      12847/java          
tcp6       0      0 :::80                   :::*                    LISTEN      1176/apache2        
tcp6       0      0 :::22                   :::*                    LISTEN      1106/sshd           
tcp6       0      0 ::1:631                 :::*                    LISTEN      809/cupsd          

datanode:

Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
tcp        0      0 0.0.0.0:9864            0.0.0.0:*               LISTEN      4810/java           
tcp        0      0 0.0.0.0:9866            0.0.0.0:*               LISTEN      4810/java           
tcp        0      0 0.0.0.0:9867            0.0.0.0:*               LISTEN      4810/java           
tcp        0      0 127.0.0.53:53           0.0.0.0:*               LISTEN      691/systemd-resolve 
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      1142/sshd           
tcp        0      0 127.0.0.1:631           0.0.0.0:*               LISTEN      854/cupsd           
tcp        0      0 127.0.0.1:45029         0.0.0.0:*               LISTEN      4810/java           
tcp6       0      0 :::22                   :::*                    LISTEN      1142/sshd           
tcp6       0      0 ::1:631                 :::*                    LISTEN      854/cupsd  

Я использую имел oop 3.1.3, любая помощь будет оценена! Спасибо!

1 Ответ

0 голосов
/ 24 марта 2020

Быстрый ответ от себя ... После многих попыток

  1. При использовании AWS все ip должны быть опубликованы c IPs.
  2. в core-site. xml, используйте publi c dns вместо IP
  3. удалить файл узла данных после форматирования. Не знаю почему ... Но это действительно решает мою проблему.

Спасибо за помощь!

...