본문 바로가기

오픈소스/mongodb

Mongo-Hadoop Integration http://www.slideshare.net/mixmax99/mongodb-hadoop-integrationhttp://www.slideshare.net/mongodb/hadoop-webinarhttps://github.com/mongodb/mongo-hadoop/wiki/Configuration-Reference Mongo hadoop input formatmongo.job.input.format=com.mongodb.hadoop.MongoInputFormat mongo.input.uri=mongodb://my-db:27017/enron.messages Read from MongoDB Read from BSON mongo.job.input.format=com.mongodb.hadoop.BSONFile.. 더보기
MongoDB Hadoop Connector 사용기 하둡 버전에 따라 맵리듀스 인터페이스가 다르기 때문에 Mongo Hadoop Connector 의 경우에도 컴파일을 별도로 해야만 한다. 아래에서는 최신버전을 가져왔기 때문에 SNAPSHOT 버전으로 빌드가 되었으나, tag 버전을 가져와서 빌드하는 것을 추천한다. gradle 이라는 조금은 특별한 빌드 도구를 사용해야 하는데, 윈도우 버전을 별도로 설치 후, github 을 통해서 connector 코드를 내려 받은 후, jar 파일을 build 한다.D:\workspace\mongo\mongo-hadoop> gradlew -Phadoop_version=0.23 jar D:\workspace\mongo\mongo-hadoop\core\build\libs mongo-hadoop-core-1.4.0-SNA.. 더보기
문서의 크기가 작으면 집계함수 성능이 올라갈까? 처음 호기심은 문서가 아주 큰 경우에 건 수가 얼마 되지 않아도 디스크 I/O 때문에 어쩔 수 없이 느려지게 된다. 그러면 문서가 아주 작고 100만건 정도 문서들의 집계함수는 빨라지는가? db.foo.createIndex({dt:1,did:1,ps:1}) var start = new Date()db.foo.aggregate([{$match:{dt:"20150629"}},{$project: {dt:1, did:1}},{$group:{_id:{dt:"$dt", did:"$did"}, cnt:{$sum:1}}}],{allowDiskUse:true})var end = new Date()print(end-start)8.110 secs 2~300mb disk i/o speed 만족스러울 만한 수준은 아니며, 우선.. 더보기
몽고디비 궁금한 점들 타임존이 다를때 ISODate 일자 별 집계 문제점한국은 GMT+9 이므로, "$dayOfMonth" 함수를 통해 집계하면 9시간 당겨 출력"$dateToString" 함수와 "$add" 함수를 통해 9시간을 더해 준 뒤에 집계실제 자바 프로그램 상에서 Date 함수를 사용하면 되기 때문에 문제는 없음단, 외부 입력일자가 없는 집계인 경우 Group By Month 는 문제가 됨d1 = ISODate("2015-06-12T23:00:00.000Z")d2 = ISODate("2015-06-13T00:00:00.000Z")d3 = ISODate("2015-06-13T01:00:00.000Z")d4 = ISODate("2015-06-13T02:00:00.000Z")d5 = ISODate("2015-06-13T.. 더보기