홍카나의 공부방

[Hadoop] MongoDB와 Hadoop 본문

Data Engineering/Hadoop

[Hadoop] MongoDB와 Hadoop

홍문관카페나무 2024. 5. 27. 21:02

 

 

 

 

몽고DB는 문서 기반의 NoSQL 데이터베이스로, 굉장히 유연한 모델을 가지고 있다. 어떤 내용도 구조화될 필요 없이 저장할 수 있으며, 원하는 모든 내용을 다 저장할 수 있다! 또한 Hadoop, Spark와 통합해서 사용하면 강력한 빅데이터 활용 도구로도 사용할 수 있다.

 

또한, 몽고DB에는 스키마를 적용하지 않는다. 자동으로 PK 역할을 하는 ID가 만들어지며, 원한다면 인덱스를 추가할 수 있다. 하지만 모든 NoSQL이 그렇듯이 Join은 RDBMS에 비해 효율적으로 할 수 없다. 스키마의 경우 아래 코드 예시처럼 구성할 수 있으며, 기타 다른 데이터 모델링 방법의 경우 공식문서의 가이드를 참고하면 좋다.

{
  "_id": "user123",
  "name": "홍카나",
  "email": "hongcana@example.com",
  "age": 26,
  "address": {
    "street": "서울시 영등포구",
    "city": "서울",
    "postalCode": "12345"
  },
  "phoneNumbers": ["010-1234-5678", "010-8765-4321"],
  "isActive": true
}

 

 

https://www.mongodb.com/ko-kr/docs/manual/data-modeling/

 

데이터 모델링 - MongoDB 매뉴얼 v7.0

데이터 모델링은 데이터베이스 내의 조직과 관련 엔터티 간의 링크를 나타냅니다. MongoDB의 데이터에는 유연한 스키마 모델이 있으며, 이는 다음을 의미합니다.단일 컬렉션 내의문서들은 동일한

www.mongodb.com

 

 


 

 

하둡 클러스터에 몽고DB 추가 방법

 

참고로, 글쓴이는 글을 작성하는 시점에서 HDP sandbox 2.6.5를 사용중이고, 우분투 Linux 20.04 기반 서버에 docker로 올린 HDP 2.6.5 샌드박스 컨테이너에 몽고DB를 추가함을 알린다.

 

(1) 먼저, docker exec로 내부 컨테이너로 접속한다. 이후 다음의 경로로 이동한다.

cd /var/lib/ambari-server/resources/stacks/HDP/2.6/services

 

 

(2) 그 다음, 아래의 Git 명령어로 Ambari - MongoDB 커넥터를 설치한다. (Ambari가 아닌 Hue 기반의 하둡 클러스터는 이 글에서 다루지 않는다.)

git clone https://github.com/nikunjness/mongo-ambari.git

 

(3) 그 다음 sudo ambari-server restart로 ambari를 재실행시키고, 재실행이 완료되면 Ambari 웹 GUI로 admin으로 로그인한다.

 

(4) 메인 페이지 좌측 탭 하단에서 [Actions] - [Add Service]를 누르고, MongoDB를 체크한다. 

 

 

 

(5) 이후 설정을 건드리지 않고, 설치를 계속한다.

 

(6) 설치를 완료한 이후, shell에서 mongo를 입력해서 몽고 쉘로 접속한다.

 

완료!

 

 


 

반응형