본문 바로가기

오픈소스/mongodb

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-SNAPSHOT.jar 


이제 위의 파일을 이용해서 Hadoop v1 기준으로 MongoDB Connector 사용이 가능하다.

단, tag 버전으로 빌드를 하는 경우 0.23 버전으로 빌드가 되지 않으므로 유의해야 한다.


더불어 java-mongo-driver 를 컴파일 할 차례인데, 메모리는 충분한 것 같은데 아래와 같은 오류로 빌드가 안 되며, Java 는 1.7 이상이시란다.

* Error:

Error occurred during initialization of VM

Could not reserve enough space for object heap

Could not create the Java virtual machine.

* Warning:

JDK 1.7 is minimal requirement for building the driver. You have 1.6.


gradle docs 페이지를 참고하여 gradle.properties 파일을 아래와 같이 변경 후 빌드 시도

gradle.properties

org.gradle.daemon=true

org.gradle.java.home=D:\\Program Files\\Java\\jdk1.8.0_40

org.gradle.jvmargs=-Xms256m -Xmx512m

D:\workspace\mongo\mongo-java-driver> gradlew check


check 는 말 그대로 빌드가 아니라 체크임... 아래의 오류를 뱉어냄

* What went wrong:

Execution failed for task ':bson:checkstyleMain'.

> Checkstyle rule violations were found. See the report at: file:///D:/workspace/mongo/mongo-java-driver/bson/build/reports/checkstyle/main.xml


* Try:

Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.


그냥 gradlew -q jar 실행하면 됨

D:\workspace\mongo\mongo-java-driver> gradlew check

D:\workspace\mongo\mongo-java-driver\mongo-java-driver\build\libs

mongo-java-driver-3.1.0-SNAPSHOT.jar