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 김형준


neptune 이슈 처리

새로운 업무를 시작한지 3개월 남짓 지났네요...이제 업무 우선순위도 좀 파악되고 시스템의 전체적인 구성도 파악이 되네요. 지난 3달 동안 너무 정신없이 지낸 것 같습니다.
12월부터는 neptune에서 그동안 처리 못하고 있던 이슈와 새로운 기능을 추가하는 것을 시작해야 할 것 같습니다.
12월에는 다음 내용을 처리할 예정입니다.
- 데이터 파일 압축 기능 제공: 한두군데 운영해 본 결과 저장되는 데이터량이 워낙 커서 압축 기능을 제공하지 않으면 스토리지 낭비가 너무 심한 것 같습니다. 그래서 최우선 순위로 작업할 예정입니다.
- 이미 만들어져 있는 Tablet을 n개로 분리하는 API 필요: 이 기능은 Uploader 기능과 밀접한 관계를 가지고 있는데 한번에 많은 데이터를 neptune에 입력하는데에는 Uploader가 제격인데 아직 기능적으로 많이 부족합니다. 이 이슈 처리하면서 Uploader의 개선 및 예제도 몇가지 만들 예정입니다.
일단 12월은 이정로 워밍업을 한 다음에 내년에는 본격적으로 다음 내용을 진행할 예정입니다.
- hive query와 neptune과의 연동: neptune에 저장된 데이터를 이용하여 분석 작업 등을 수행하거나 기존 파일을 neptune에 저장할 때 마다  매번 프로그램 만드는 것이 번거로운데 hive 등의 query와 비슷하게 qurery 기반으로 처리 가능하도록 만들 예정입니다.
이외에 시간 날때마다 버그 사항으로 나온 다음 건들에 대해서도 처리할 예정입니다.
- MinorComaction 후 Cache 컬럼 데이터 get 오류
- NeptuneMaster에서 metrics 활성화시 ArrayIndexBoundary Exception 발생
- MinorCompaction 작업 시 파일에 저장하지 못할 경우 기존 메모리로 rollback이 안됨
- put, get 처리 통계 화면 별도 분리
- 웹 메인화면에서 메모리 부족한 경우 표시
크리에이티브 커먼즈 라이센스
Creative Commons License

Posted by 김형준


No SQL Pattern

No SQL 관련해서 잘 정리된 블로그네요...

http://horicky.blogspot.com/2009/11/nosql-patterns.html

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

Posted by 김형준


NoSQL 비교 자료

NoSQL 비교 자료입니다. 결론은 MongoDB하고 Tokyo Tyrant가 현재까지는 쓸만하다고 하네요. neptune이 비교 대상이 들어가지 못한 것이 못내 아쉽네요. ㅋ


http://github.com/igal/ruby_datastores/raw/master/2009-11-14%20Non-relational%20data%20stores%20for%20OpenSQL%20Camp.pdf

MongoDB and Tokyo Tyrant are useful now. CouchDB has promise, but is too slow currently.
Non-relational databases have shown their worth at larger sites when used cleverly.
Non-relational databases will continue to improve performance, stability & features.
Relational databases are still a great choice: fast, powerful and proven. With caching, denormalization, rework (e.g. Drizzle) & better replication, they will continue to be competitive.

크리에이티브 커먼즈 라이센스
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 김형준


neptune-1.4.0 릴리즈

neptune-1.4.0을 릴리즈 하였습니다.

다운로드: http://dev.naver.com/projects/neptune/download

1. 기능 추가
[#3332] Bigtable에서의 Memory Cache 기능
[#3121] Metrics에 ganglia 지원
[#3055] Tablet balacer 기능

2. 기능 개선
[#3411] MultiVersion query에서도 사용자 정의 Filter 사용 가능해야함
[#3197] hadoop 미 실행시 tabletserver startup이 안되어야 함
[#3144] 포맷시 ChangeLog image 파일은 dfs에서 삭제되지 않음
[#3071] TabletInfo에 start row key 추가
[#2960] NTable의 tablet lookup cache hit 비율 높히기
[#2943] changelog verifier가 실패한 경우 처리
[#2939] Web 관리자 화면에서 Tablet의 change log replica 서버 목록 보는 기능
[#2862] Tablet Split 처리시 put lock 시간 최소화
[#2802] CellFilter내에 start CellKey, end Cell Key 지정 기능
[#2702] NBlobInputStream open시 permission에러인 경우도 txTimeout까지 대기
[#2671] changelog server가 tablet server보다 많은 경우 changelog server의 할당 정책

3. Bug fix
[#3382] 웹UI에서 ChangelogServer가 Live와 Dead 둘 다 나타납니다.
[#3196] Cell 클래스내 버그
[#2938] NeptuneMaster만 restart 되었을 때 TabletServer의 Tablet 갯수가 0으로 표시
[#2762] DirectUploader에서 Cell의 null value 지정
[#2535] IO operation is timed out 180 sec due to timed out waiting for rpc response
[#2473] IO operation is timed out 180 sec

* 1.4에서 ROOT, META 테이블에 저장되는 데이터가 변경되었습니다.
1.3 사용자는 1.4 로 업그레이드시 반드시 업그레이드 절차에 따라 업그레이드 해야 합니다.

그동안 버그 찾아주시거나 다양한 요구사항 주신분들 모두 감사합니다.

크리에이티브 커먼즈 라이센스
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 김형준


Configuration 객체

Hadoop, HBase, Neptune 등에서 공통적으로 사용되고 있는 클래스가 Configuration 클래스입니다. Hadoop은 Configuration, HBase는 HBaseConfiguration, Neptune은 NConfiguration 입니다. 이들 각각의 클래스는 클래스 패스 상에 있는 xml 파일을 읽어 환경 변수를 메모리로 로딩하는 기능을 수행하는 클래스입니다.
Hadoop을 이용하는 프로그램은 주로 배치 작업인 경우가 많기 때문에 Configuration 객체를 생성하기 위해 파일을 로딩하는데 성능상의 문제가 큰 이슈가 되지 않습니다.
하지만 Neptune이 HBase와 같이 실시간 트랜젝션 처리를 수행하는 시스템의 경우 이런 작업이 성능에 큰 영향을 줄 수 있습니다. Configuration 정보를 얻기 위해 xml파일을 오픈하여 parsing 하는데만 수십 ms 이상이 소요되기 때문에 수 ms의 트렌젝션 시간을 지원해야 하는 시스템의 경우 잘못 사용하게 되면 성능에 문제가 발생합니다.
따라서 Neptune, HBase 등을 사용할 경우 Configuration 객체는 특별한 경우가 하니라면 한번만 생성하여 재 사용하는 것이 좋습니다.
여기서 특별한 경우한 트렌젝션의 종류에 따라 Configuration의 값이 틀려져야 하는 경우를 의미합니다. 그럴 경우에도 미리 생성해 놓고 공유하는 것이 좋습니다.
크리에이티브 커먼즈 라이센스
Creative Commons License

Posted by 김형준


다음 기사 참고하세요.

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

Posted by 김형준


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