[HADOOP] hadoop / hdfs / name이 일치하지 않는 상태입니다 : 저장소 디렉토리 (hadoop / hdfs / data /)가 없거나 액세스 할 수 없습니다
HADOOPhadoop / hdfs / name이 일치하지 않는 상태입니다 : 저장소 디렉토리 (hadoop / hdfs / data /)가 없거나 액세스 할 수 없습니다
나는이 주제에 대한 stackoverflow에서 제공되는 모든 다른 솔루션을 시도했지만 도움이 안된다. 특정 로그와 세부 사항을 다시 묻기
어떤 도움을 주시면 감사하겠습니다.
Hadoop 클러스터에는 하나의 마스터 노드와 5 개의 슬레이브 노드가 있습니다. 우분투 사용자와 우분투 그룹은 ~ / Hadoop 폴더의 소유자입니다. ~ / hadoop / hdfs / data & ~ / hadoop / hdfs / name 폴더가 모두 존재합니다.
두 폴더에 대한 사용 권한은 755로 설정됩니다.
스크립트를 시작하기 전에 namenode를 성공적으로 형성했다. start-all.sh
성서는 "나 메노 데"
마스터 노드에서 실행 중입니다.
ubuntu@master:~/hadoop/bin$ jps
7067 TaskTracker
6914 JobTracker
7237 Jps
6834 SecondaryNameNode
6682 DataNode
ubuntu@slave5:~/hadoop/bin$ jps
31438 TaskTracker
31581 Jps
31307 DataNode
아래는 이름 - 노드 로그 파일의 로그입니다.
..........
..........
.........
014-12-03 12:25:45,460 INFO org.apache.hadoop.metrics2.impl.MetricsSourceAdapter: MBean for source jvm registered.
2014-12-03 12:25:45,461 INFO org.apache.hadoop.metrics2.impl.MetricsSourceAdapter: MBean for source NameNode registered.
2014-12-03 12:25:45,532 INFO org.apache.hadoop.hdfs.util.GSet: Computing capacity for map BlocksMap
2014-12-03 12:25:45,532 INFO org.apache.hadoop.hdfs.util.GSet: VM type = 64-bit
2014-12-03 12:25:45,532 INFO org.apache.hadoop.hdfs.util.GSet: 2.0% max memory = 1013645312
2014-12-03 12:25:45,532 INFO org.apache.hadoop.hdfs.util.GSet: capacity = 2^21 = 2097152 entries
2014-12-03 12:25:45,532 INFO org.apache.hadoop.hdfs.util.GSet: recommended=2097152, actual=2097152
2014-12-03 12:25:45,588 INFO org.apache.hadoop.hdfs.server.namenode.FSNamesystem: fsOwner=ubuntu
2014-12-03 12:25:45,588 INFO org.apache.hadoop.hdfs.server.namenode.FSNamesystem: supergroup=supergroup
2014-12-03 12:25:45,588 INFO org.apache.hadoop.hdfs.server.namenode.FSNamesystem: isPermissionEnabled=true
2014-12-03 12:25:45,622 INFO org.apache.hadoop.hdfs.server.namenode.FSNamesystem: dfs.block.invalidate.limit=100
2014-12-03 12:25:45,623 INFO org.apache.hadoop.hdfs.server.namenode.FSNamesystem: isAccessTokenEnabled=false accessKeyUpdateInterval=0 min(s), accessTokenLifetime=0 min(s)
2014-12-03 12:25:45,716 INFO org.apache.hadoop.hdfs.server.namenode.FSNamesystem: Registered FSNamesystemStateMBean and NameNodeMXBean
2014-12-03 12:25:45,777 INFO org.apache.hadoop.hdfs.server.namenode.FSEditLog: dfs.namenode.edits.toleration.length = 0
2014-12-03 12:25:45,777 INFO org.apache.hadoop.hdfs.server.namenode.NameNode: Caching file names occuring more than 10 times
2014-12-03 12:25:45,785 INFO org.apache.hadoop.hdfs.server.common.Storage: Storage directory /home/ubuntu/hadoop/file:/home/ubuntu/hadoop/hdfs/name does not exist
2014-12-03 12:25:45,787 ERROR org.apache.hadoop.hdfs.server.namenode.FSNamesystem: FSNamesystem initialization failed.
org.apache.hadoop.hdfs.server.common.InconsistentFSStateException: Directory /home/ubuntu/hadoop/file:/home/ubuntu/hadoop/hdfs/name is in an inconsistent state: storage directory does not exist or is not accessible.
at org.apache.hadoop.hdfs.server.namenode.FSImage.recoverTransitionRead(FSImage.java:304)
at org.apache.hadoop.hdfs.server.namenode.FSDirectory.loadFSImage(FSDirectory.java:104)
at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.initialize(FSNamesystem.java:427)
at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.<init>(FSNamesystem.java:395)
at org.apache.hadoop.hdfs.server.namenode.NameNode.initialize(NameNode.java:299)
at org.apache.hadoop.hdfs.server.namenode.NameNode.<init>(NameNode.java:569)
at org.apache.hadoop.hdfs.server.namenode.NameNode.createNameNode(NameNode.java:1479)
at org.apache.hadoop.hdfs.server.namenode.NameNode.main(NameNode.java:1488)
2014-12-03 12:25:45,801 ERROR org.apache.hadoop.hdfs.server.namenode.NameNode: org.apache.hadoop.hdfs.server.common.InconsistentFSStateException: Directory /home/ubuntu/hadoop/file:/home/ubuntu/hadoop/hdfs/name is in an inconsistent state: storage directory does not exist or is not accessible.
at org.apache.hadoop.hdfs.server.namenode.FSImage.recoverTransitionRead(FSImage.java:304)
at org.apache.hadoop.hdfs.server.namenode.FSDirectory.loadFSImage(FSDirectory.java:104)
at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.initialize(FSNamesystem.java:427)
at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.<init>(FSNamesystem.java:395)
at org.apache.hadoop.hdfs.server.namenode.NameNode.initialize(NameNode.java:299)
at org.apache.hadoop.hdfs.server.namenode.NameNode.<init>(NameNode.java:569)
at org.apache.hadoop.hdfs.server.namenode.NameNode.createNameNode(NameNode.java:1479)
at org.apache.hadoop.hdfs.server.namenode.NameNode.main(NameNode.java:1488)
해결법
-
==============================
1.hdfs-site.xml 파일에서 "file :"을 삭제했습니다.
hdfs-site.xml 파일에서 "file :"을 삭제했습니다.
[잘못된 HDFS-SITE.XML]
<property> <name>dfs.namenode.name.dir</name> <value>file:/home/hduser/mydata/hdfs/namenode</value> </property> <property> <name>dfs.datanode.data.dir</name> <value>file:/home/hduser/mydata/hdfs/datanode</value> </property>
[올바른 HDFS-SITE.XML]
<property> <name>dfs.namenode.name.dir</name> <value>/home/hduser/mydata/hdfs/namenode</value> </property> <property> <name>dfs.datanode.data.dir</name> <value>/home/hduser/mydata/hdfs/datanode</value> </property>
에릭에게 도움을 주셔서 감사합니다.
-
==============================
2.아래 단계를 따르십시오.
아래 단계를 따르십시오.
1. 모든 서비스를 중지하십시오.
2. 네임 노드 형식 지정
3. 데이터 노드 디렉토리 삭제
4. 모든 서비스를 시작하십시오.
-
==============================
3.터미널에서이 명령을 실행하십시오.
터미널에서이 명령을 실행하십시오.
$ cd ~ $ mkdir -p mydata/hdfs/namenode $ mkdir -p mydata/hdfs/datanode
양쪽 디렉토리에 권한을 부여한다.
그때,
conf / hdfs-site.xml에이 속성 추가
<property> <name>dfs.namenode.name.dir</name> <value>file:/home/hduser/mydata/hdfs/namenode</value> </property> <property> <name>dfs.datanode.data.dir</name> <value>file:/home/hduser/mydata/hdfs/datanode</value> </property>
작동하지 않는다면
stop-all.sh start-all.sh
-
==============================
4.1) name 노드 디렉토리 당신이 소유하고 chmod 750을 적절하게 제공해야합니다. 2) 모든 서비스 중지 3) namoode를 포맷하기 위해 hadoop namenode -format을 사용한다. 4) 이것을 hdfs-site.xml에 추가하십시오.
1) name 노드 디렉토리 당신이 소유하고 chmod 750을 적절하게 제공해야합니다. 2) 모든 서비스 중지 3) namoode를 포맷하기 위해 hadoop namenode -format을 사용한다. 4) 이것을 hdfs-site.xml에 추가하십시오.
<property> <name>dfs.data.dir</name> <value>path/to/hadooptmpfolder/dfs/name/data</value> <final>true</final> </property> <property> <name>dfs.name.dir</name> <value>path/to/hadooptmpfolder/dfs/name</value> <final>true</final> </property>
5) hadoop namenode -format 실행 export PATH = $ PATH : / usr / local / hadoop / bin / in ~ / .bashrc를 추가하십시오. hadoop이 압축을 풀면 경로에 추가됩니다.
-
==============================
5.유사한 문제가 발생했을 때, 나는 namenode를 포맷하고 시작했다.
유사한 문제가 발생했을 때, 나는 namenode를 포맷하고 시작했다.
Hadoop namenode -format hadoop-daemon.sh start namenode
from https://stackoverflow.com/questions/27271970/hadoop-hdfs-name-is-in-an-inconsistent-state-storage-directoryhadoop-hdfs-data by cc-by-sa and MIT license
'HADOOP' 카테고리의 다른 글
[HADOOP] hadoop의 압축을 해제하는 방법은 출력 파일을 줄이면서 끝내줍니다. (0) | 2019.07.25 |
---|---|
[HADOOP] hadoop 연결이 포트 9000에서 거부되었습니다. (0) | 2019.07.25 |
[HADOOP] Hadoop : 어떻게 감속기 출력을 단일 파일에 병합 할 수 있습니까? [복제] (0) | 2019.07.25 |
[HADOOP] 스파크 2.0 - 하이브를 쿼리 할 때 "테이블 또는 뷰를 찾을 수 없음"(스파크 캔트 하이브 테이블 참조) [닫힘] (0) | 2019.07.25 |
[HADOOP] oozie가 종속성을 처리하는 방법은 무엇입니까? (0) | 2019.07.25 |