Building the main Guest Additions Modules [Fail]
이 문제가 발생하는 이유는 제일 최소화 옵션으로 설치했을 가능성이 농후한데...
kernel 소스가 없어서 발생하는 문제이다.
간단히 해결할 수 있는데
# yum install gcc kernel-devel kernel-devel-$(uname -r)
위의 명령으로 kernel 소스를 받아서 설치하고 난뒤 다시
게스트 확장을 설치하면 제대로 잘 설치가 된다~
미션 써세스~
이걸 몰랐을 땐 수동으로 일일이 빌드해서 찾아서 설치했는데 정말 편리하구나
sudo perl -MCPAN -e "install String::CRC32"
String::CRC32 모듈이 필요하면 저렇게 하면 알아서 잘 설치해준다..
EV, AE, 등등 다 저렇게 설치했음 쉬웠을 것을.. ㅠ 일일이 Makefile 수정하면서 설치다 했더니 저걸 발견..
요즘 너무 많은 언어를 짬뽕으로 사용하다보니 문법이 헷갈릴때가 있다.
C, java, perl, ruby.... 게다가 스크립트까지.. 에혀
좀 쉬고 싶네..
sudo perl -MCPAN -e "install String::CRC32"
String::CRC32 모듈이 필요하면 저렇게 하면 알아서 잘 설치해준다..
EV, AE, 등등 다 저렇게 설치했음 쉬웠을 것을.. ㅠ 일일이 Makefile 수정하면서 설치다 했더니 저걸 발견..
요즘 너무 많은 언어를 짬뽕으로 사용하다보니 문법이 헷갈릴때가 있다.
C, java, perl, ruby.... 게다가 스크립트까지.. 에혀
좀 쉬고 싶네..
YCSB는 Mongodb를 싫어하는 것 같다.
일단 위의 문제로 인하여 많은 사람들이 노가다를 하고 있는데 ...
버전이 업그레이드 되면서 ObjectID를 체크하는 부분이 변경되어서 24byte를 맞추도록 되었는 것인지
원래 그랬던 것인지 정확한 history는 알 수 없지만...
어쨋든 문제는 MongoDbClient.java의 read, update, insert , delete 함수 내에 아래 코드 때문이다.
간단히 설명하자면 아래 코드는 _id 키에 ObjectId를 key 문자열로 생성해서 넣어주는 것인데
이게 ObjectId 객체가 안에서 받은 값을 24글자가 맞는지, 알파벳이나 숫자의 연속으로 이루진 것인지 조사를 한다.
조건에 해당되지 않으면 미친 에러를 방출
결론은...아래와 같이 변경해주고 다시 컴파일 ant clean : ant : ant dbcompile-mongodb
그럼 이제 에러가 나지 않고~ 잘될 것이다.
read, update, insert, delete 모두 수정해주자..
여기서 또 주의할 것이.. insert만 제길 DBObject q 로 선언안하고 DBObject r로 선언되어있다. 복사해서 붙여넣기 할 때 조심하자..
Before - DBObject q = new BasicDBObject().append("_id", new ObjectId(key));
After - DBObject q = new BasicDBObject(); q.put("user", key);
조만간 YCSB를 이용한 mongodb 성능테스트에 대한 글을 포스팅 해봐야겠군...