저번주는 MapReduce를 Streaming 방식으로 작성된것을 실행해 보았따. Writing An Hadoop MapReduce Program In Python을 보면 WordCount 예제가 Python으로 작성되어 있다. 또 URL을 통해 해당 URL을 제목을 가져오는 Python 예제도 있다. 그런데,, 하나의 노드로 마스터와 네임노드를 구성해서 할 경우에는 잘 되었는데,, 막상 15노드로 Hadoop 클러스터를 구성하고 실행을 하는데,, Map 작업의 결과는 잘 나오는데 Reduce에서 결과 레코드가 모두 0 즉, 결과가 없다. 뭐가 잘못되었는 전혀 감이 오지 않아서Streaming을 포기하고 결국 Java로 하기로 했다. 그래서 오늘은 깔끔하게 Streaming을 잊고,,, 저번에 잠깐 살펴..
그냥 머리속에서 좋은거야~~라고만 생각했는데,, 저번 PlatformDay에서 한재선 박사님의 발표를 듣고는 Multi-Step MapReduce Programming이라는 단어와 Reusing Intermediate Data에서 실질적으로 저렇게 쓰이면 좋겠구나,,,라는 생각을 해 보았다. 뭐 사람들에게 이론적으로 아무리 말을 해도 감이 오지 않으니,, 그렇다고 WordCount와 Sort를 가지고는 너무 약하고,,, 한박사님의 발표에 쓰인 웹서버 로그를 ML로 클러스터링까지 하면야 딱 좋겠지만,,이라고 생각하던 차에 아마존에서 비슷한 웹서버 로그에 대한 예제(Running Hadoop MapReduce on Amazon EC2 and Amazon S3)를 찾았다. 나온지는 꽤 되었지만,,, 난 처음 ..
어제 오늘 Hadoop Cluster를 설정을 하고는 MapReduce 예제들을 돌려보고 있다.(jetty 웹서버가 인터넷에 연결이 되지 않으면 뭔 j2ee 네임스페이스를 찾을 수 없다고 에러를 내는 바람에 이거 찾느라고 어제 하루는 다 보내 버렸다.) 우선 RandomWriter를 통해서 30GB의 입력데이터로 사용할 데이터를 생성했다. 1GB씩 총 30개가 생성되었다. RandomWriter를 통해 생성된 데이터 총 1538초 약 26분정도의 시간이 소요되었다.(테스트는 총 3대의 DataNode에서 수행,,) 이 입력데이터를 가지고 역시 예제 Sort를 수행하였다. 처음에는 Map과 Reduce의 갯수를 지정하지 않고 다음과 같이 기본 명령만을 주고 수행하였다. $ bin/haddop jar had..
Map-Reduce나 HDFS를 지금하는 일들에 잘 써먹으면 좋을것 같다는 생각은 이전부터 가지고 있었지만, 나 혼자서 사용해서는 그 효과를 충분히 발휘 할 수 없기에 ㅋㄷㅋㄷ 우선 Hadoop을 2대의 컴퓨터에서 테스트 해봤다. 비교적 탄탄하게 잘 돌아는 간다는,,, ^^ Map 수행 Reduce 수행 wordcount 예제,,, ^^ Hadoop 구성은 여기를 보고 참고,, ^^ Running Hadoop On Ubuntu Linux (Multi-Node Cluster) Running Hadoop On Ubuntu Linux (Single-Node Cluster)
구글이 어떻게 수많은 데이터를 저장하고 처리하는지, 과연 이것을 어떻게 생물학의 데이터 처리에 활용할지에 대한 힌트를 얻고자 한다면 여기 PlatformDay 컨퍼런스에서 찾을실 수 있을겁니다. 솔직히 말씀드리면 당장은 자신이 하고 있는 연구에 적용해서 능수능란하게 사용하실 여건은 되지 않을것이지만, 충분한 아이디어는 얻을 수 있을것입니다. PlatformDay (출처 : NEXR 블로그) 다양하고 방대한 생물학 데이터를 여러가지 기계학습(machine learning) 기법을 통해 어떻게 처리해야 하는지에 대해 집단지성 프로그래밍 책을 통해 학습하고, 대량의 데이터의 기계학습을 위한 대용량저장/처리 방법을 PlatformDay에서 아이디어를 얻는다면 참 좋을것 같습니다.(말이 참 매끄럽지 않네,,,^^..
바로 이전 글에서 대용량 컴퓨팅 즉 클러스터 컴퓨팅환경을 Yaohoo와 Google에서 연구자들에게 제공한다고 했었다. 대용량 컴퓨팅환경, 좀 더 세분화한다면 여러대의 컴퓨터를 묶어서 사용하는 클러스터 환경과 Bioinformatics 연구를 한번 짚고 넘어가 보려고 한다. 클러스터 컴퓨팅환경을 사용하는 가장 일반적인 예는 바로 처리하고자 하는 일을 나누어서 하는 것이 가장 손쉬운 클러스터 컴퓨터를 이용하는 방법이다. 24개의 chromosome에 대응하는 어떠한 데이터가 있다고 가정할 때 한 대의 컴퓨터로 24개의 chromosome 데이터를 처리할때에 24시간의 시간이 걸린다고 한다면 24대의 컴퓨터에 이러한 작업(job)을 분배한다면 1시간에 끝마칠 수 있다. 바로 linear하게 속도를 향상 시킬..