메뉴 건너뛰기

Bigdata, Semantic IoT, Hadoop, NoSQL

Bigdata, Hadoop ecosystem, Semantic IoT등의 프로젝트를 진행중에 습득한 내용을 정리하는 곳입니다.
필요한 분을 위해서 공개하고 있습니다. 문의사항은 gooper@gooper.com로 메일을 보내주세요.


오류 메시지는 다음과 같다.
 2010-03-10 01:01:23,521 INFO org.apache.hadoop.hdfs.server.common.Storage: Storage directory /tmp/hadoop-root/dfs/name does not exist.
2010-03-10 01:01:23,522 ERROR org.apache.hadoop.hdfs.server.namenode.FSNamesystem: FSNamesystem initialization failed.
org.apache.hadoop.hdfs.server.common.InconsistentFSStateException: Directory /tmp/hadoop-root/dfs/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:290)
        at org.apache.hadoop.hdfs.server.namenode.FSDirectory.loadFSImage(FSDirectory.java:87)
        at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.initialize(FSNamesystem.java:311)
        at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.<init>(FSNamesystem.java:292)
        at org.apache.hadoop.hdfs.server.namenode.NameNode.initialize(NameNode.java:201)
        at org.apache.hadoop.hdfs.server.namenode.NameNode.<init>(NameNode.java:279)
        at org.apache.hadoop.hdfs.server.namenode.NameNode.createNameNode(NameNode.java:956)
        at org.apache.hadoop.hdfs.server.namenode.NameNode.main(NameNode.java:965)
2010-03-10 01:01:23,522 INFO org.apache.hadoop.ipc.Server: Stopping server on 9000
2010-03-10 01:01:23,524 ERROR org.apache.hadoop.hdfs.server.namenode.NameNode: org.apache.hadoop.hdfs.server.common.InconsistentFSStateException: Directory /tmp/hadoop-root/dfs/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:290)
        at org.apache.hadoop.hdfs.server.namenode.FSDirectory.loadFSImage(FSDirectory.java:87)
        at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.initialize(FSNamesystem.java:311)
        at org.apache.hadoop.hdfs.server.namenode.FSNamesystem.<init>(FSNamesystem.java:292)
        at org.apache.hadoop.hdfs.server.namenode.NameNode.initialize(NameNode.java:201)
        at org.apache.hadoop.hdfs.server.namenode.NameNode.<init>(NameNode.java:279)
        at org.apache.hadoop.hdfs.server.namenode.NameNode.createNameNode(NameNode.java:956)
        at org.apache.hadoop.hdfs.server.namenode.NameNode.main(NameNode.java:965)

2010-03-10 01:01:23,527 INFO org.apache.hadoop.hdfs.server.namenode.NameNode: SHUTDOWN_MSG:
/************************************************************
SHUTDOWN_MSG: Shutting down NameNode at java.net.UnknownHostException: ubuntu: ubuntu

hosts 파일에 있는 도메인과는 다른 갑자기 ubuntu 라는 호스트가 존재하지 않는 다는 메시지와 함께 디렉토리까지 찾을 수 없다는 메시지를 확인 할 수 있다.

 

시스템이 커지게 되면서 설정 하나 바뀔때마다 master, slave의 모든 아이피를 수정하는 문제나 추가 시켜야 하는 수고로움을 덜기 위해서 클러스터 설정 과정에서 대부분 hosts 파일을 수정해서 domain 을 이용하게 된다

이때 문제가 발생하게 된다.

클러스터의 각 masternode 와 slavenode 들은 domain 으로 통신을 하지만 그 주소는 hostname 으로 변환되어 요청이 이루어 지게 된다. ( log 를 통해서 확인 가능)

결국 hostname 과 hosts 의 각 노드의 이름을 동일시 시켜주면 문제는 해결된다.
hostname과 hosts 는 각각 /etc/hostname, /etc/hosts 에서 수정가능하다.

 

그래도 안되면 stop-all.sh한 후 /tmp./../dfs밑의 파일을 모두 지우고 hadoop namenode -format하여 주고 start-all.sh해주면 된다.

근데 서버 재기동하면 매번 이렇게 해줘야 하나???

--원인은 다음과 같다.. 그러므로 지우면 안된다면 다른곳을 저장소로 지정해줘야 함..

 -->  디폴트 속성을 그대로 두면, 서버를 리부팅할 때 지금까지 사용한 데이터가 날아가게 된다(대부분의 운영체제는 재시작할 때 /tmp를 날린다).

A personal place to organize information learned during the development of such Hadoop, Hive, Hbase, Semantic IoT, etc.
We are open to the required minutes. Please send inquiries to gooper@gooper.com.

위로