hadoop의 DataNode 버그

Hadoop의 DataNode에서 여러개의 볼륨을 사용할 경우 하나의 볼륨에만 문제가 있어도 데이터 노드 자체가 죽어버려 정상적인 디스크에 있는 데이터까지 모두 복구 작업이 진행된다. 소스를 보니 다음 코드처럼 구현되어 있으니 당연히... /* Check if there is no disk space and if so, handle the error*/ protected void checkDiskError( ) throws IOException { try { data.checkDataDir(); } catch(DiskErrorException de) { handleDiskError(de.getMessage()); } } private void handleDiskError(String errMsgr) { LOG.warn("DataNode is shutting down.\n" + errMsgr); shouldRun = false; try { namenode.errorReport( dnRegistration, DatanodeProtocol.DISK_ERROR, errMsgr); } catch(IOException ignored) { } }
크리에이티브 커먼즈 라이센스
Creative Commons License

Posted by 김형준


왕 삽질 후에 성공한 hicc 화면

HICC(Hadoop Infrastructure Care Center)는 chukwa의 서브 모듈로 탑재 되어 있으며 하둡 클러스터를 모니터링 하는 화면을 제공한다.
지난번에 한번 실패하고 이번에 다시 도전해서 성공... 지난번에도 성공헀었는데 화면단에서 조회 조건에서 GMT+0 기준으로 데이터 조회하고 있는 바람에 데이터가 나타나지 않았다는 ㅋㅋㅋ

사용자 삽입 이미지

크리에이티브 커먼즈 라이센스
Creative Commons License

Posted by 김형준


Hadoop NameNode 이중화 해결?

아래 기사 내용중에 자체적으로 해결했다고 되어있습니다.

http://in.sys-con.com/node/1323620

Appistry explains that the native HDFS architecture is built around a single metadata repository called the NameNode and because the NameNode isn't easily clustered, it represents a single point of failure and a bottleneck for the entire system. CloudIQ Storage fixes that limitation.
크리에이티브 커먼즈 라이센스
Creative Commons License

Posted by 김형준


MapReduce 특허

구글이 MapReduce 특허권을 받았다고 합니다.

http://patft.uspto.gov/netacgi/nph-Parser?Sect1=PTO1&Sect2=HITOFF&d=PALL&p=1&u=%2Fnetahtml%2FPTO%2Fsrchnum.htm&r=1&f=G&l=50&s1=7,650,331.PN.&OS=PN/7,650,331&RS=PN/7,650,331

http://gigaom.com/2010/01/19/why-hadoop-users-shouldnt-fear-googles-new-mapreduce-patent/

특허에 대해서 걱정할 필요는 없다고 하는데 그 기술을 이용해서 솔루션 만드는 회사에서는 많이 꺼림직 하겠네요... 특히 구글의 경쟁사가 되는 회사라면 더...
Hadoop을 원천 기술로 사용하고 있는 Yahoo를 인수하려고 하는 MS의 입장도 조금은 이상해지네요...
크리에이티브 커먼즈 라이센스
Creative Commons License

Posted by 김형준


hadoop 0.20 MapReduce도 바뀌었네요.

Hadoop 0.20 잠깐 봤는데 MapReduce 클래스가 모두 바뀌었네요. 기존에는 org.apache.hadoop.mapred 패키지였는데 org.apache.hadoop.mapreduce 라는 패키지가 만들어져 있고 기존의 org.apache.hadoop.mapred 패키지 대부분 클래스는 deplicate 되었습니다.
Mapper 클래스도 기존의 configuration(), map(), close()가 아니라 setup(), map(), cleanup()으로 바뀌었네요.
기타 많이 바뀌었지만 일단 hadoop-0.20과 호환 가능하도록 Neptune의 MapReduceUtil 클래스를 조정해야 겠습니다.
아직 1.0은 아니라고 하지만 너무 심한 변화네요.
크리에이티브 커먼즈 라이센스
Creative Commons License

Posted by 김형준


Lucene, Nutch, Hadoop으로 이름을 날리고 최근에는 Avro라는 프로젝트를 진행하고 있는 Doug Cutting이 Yahoo를 떠나 Cloudera로 옮긴다고 합니다. 참고하세요.

http://www.cloudera.com/blog/2009/08/10/doug-cutting-joins-cloudera/
크리에이티브 커먼즈 라이센스
Creative Commons License

Posted by 김형준


로그 수집 시스템 scribe

hadoop과 같이 분산된 환경에서는 hadoop 자체의 로그와 사용자가 실행시킨 Job의 로그를 보거나 분석하는 것이 짜증날때가 많습니다. 현재 hadoop의 웹 모니터링 도구에서 제공하는 것만으로는 한계가 있습니다. 이런 문제를 해결하기 위해 hadoop 프로젝트에서는 서브프로젝트로 chukwa(http://www.jaso.co.kr/332) 라는 것이 있습니다.
Facebook에서도 분산된 환경에서 로그 수집 기능을 제공하는 scribe라는 시스템을 공개하였습니다. scribe는 log4x의 사용자 정의 Appender를 만들어 특정 서버로 로그를 보내는 방식을 이용하고 있습니다.
자세한 내용은 다음 URL을 참고하세요.
http://developers.facebook.com/scribe/
http://www.cloudera.com/blog/2008/10/28/installing-scribe-for-log-collection/
크리에이티브 커먼즈 라이센스
Creative Commons License

Posted by 김형준


다음 기사 참고하세요.

http://www.informationweek.com/news/showArticle.jhtml?articleID=218501405&subSection=News
크리에이티브 커먼즈 라이센스
Creative Commons License

Posted by 김형준


HadoopDB라는게 나왔네요.

HadoopDB라는 이름으로 논문 + 오픈소스가 나왔습니다.

http://news.idg.no/cw/art.cfm?id=9D2C109A-1A64-6A71-CE90BD44D98F12B1

http://dbmsmusings.blogspot.com/2009/07/announcing-release-of-hadoopdb-longer.html

http://db.cs.yale.edu/hadoopdb/hadoopdb.pdf


크리에이티브 커먼즈 라이센스
Creative Commons License

Posted by 김형준


부하 상황에서 hadoop

최근 Neptune의 부하 상황에 대해 지속적으로 테스트를 수행하고 있습니다. 부하 상황에서 다양한 오류가 발생하고 있는데 많은 부분이 Hadoop의 원인으로 나타나고 있습니다. hadoop을 단순히 MapRedude 작업용으로만 사용할 때에는 발생하지 않던 문제들이 실시간 Multi Thread 환경에서 사용되면서 다양한 문제가 나오고 있습니다.
그중 하나가 BlockReport 시간이 오래 걸리는 문제입니다. 다음 이슈에서 확인할 수 있습니다. https://issues.apache.org/jira/browse/HADOOP-4584
DataNode가 1시간 주기로 자기가 가지고 있는 모든 block 정보를 읽어 NameNode로 전송하는데 이 시간이 10분 이상 소요될 때도 있습니다. 문제는 이 시간 동안 다양한 lock이 발생하면서 NameNode에서는 해당 DataNode가 죽은 것으로 판단하기도 하고 DataNode 자체에서는 디렉토리 생성, 파일 읽기 작업 등에 문제가 발생하기도 합니다.
두번째 문제는 Hadoop의 DataNode가 동시에 서비스 가능한 Block의 갯수의 제한입니다. default 값은 256개입니다. 파라미터로 수정 가능하지만 hadooop-default.xml 에는 나와 있지 않고 소스에서 찾아야 합니다. Property 이름은 "dfs.datanode.max.xcievers" 입니다. 무작정 늘릴 수는 없고 허용 가능한 Socket 갯수 정도로 지정하면 됩니다.
일단 Neptune에서는 이런 문제에 대해 Neptune의 성능을 조금 다운그레이딩 하는 차원에서 해결할려고 합니다. Hadoop을 수정할 수는 없으니까요...

마지막으로 이런 문제들이 주로 DataNode가 수행되는 노드에 hdfs를 사용하는 프로그램(TabletServer 등)을 수행했을 때 많이 발생하였습니다.
사용한 Hadoop 버전은 0.19.0 입니다.
크리에이티브 커먼즈 라이센스
Creative Commons License

Posted by 김형준


« Previous : 1 : 2 : 3 : 4 : 5 : ... 12 : Next »