• 카테고리

    질문 & 답변
  • 세부 분야

    데이터 엔지니어링

  • 해결 여부

    미해결

여러가지 질문드립니다.

23.01.14 12:59 작성 조회수 172

2

안녕하세요^^

강의를 1회독 마무리하고 2회독 시작 전에 내용을 정리하고 있는데, 강의들을때는 넘어갔던 것들 중에 이해가 안가는 것들이 많네요ㅠ. 구굴링을 해봐도 이해가 안가는 내용을 질문드립니다.

질문이 좀 많습니다.

1. 소프트웨어 아키텍처 그림에서 플럼이 배치데이터를 하둡에 보낸다고 되어있는데, 정확히는 플럼이 보낸 데이터를 HDFS가 블록화 및 복제하여 분산된 x86 컴퓨터들에 저장하는 것인가요?

2_1. HBase의 HFile에 있던 데이터가 HDFS에 저장될때 128mb 단위로 블록화 및 복제되어 분산 저장되는건가요?

2_2. 빠른 데이터 억세스를 위해 HBase가 가지고 있다면 모르겠지만 데이터들이 결국 HDFS에 저장된다면, HBase는 왜 설치하는건지 모르겠습니다.

2_3. 2번째 질문과 비슷한 내용인데, 둘다 데이터를 분산저장한다면 HBase와 HDFS가 비슷한거 같은데, 어떤 차이가 있는 건가요?

2_3. 카산드라 및 몽고DB를 HBase 대신 사용할 수 도 있는건가요?

2_4. HBase도 DBMS로써 SQL을 활용한 데이터의 CRUD가 가능한가요? 아니면 맵리듀스 프로그래밍을 해야하는건가요.

3. Map/Reduce는 따로 설치하지 않았습니다. 그럼 Map/Reduce는 따로 설치하는 프로그램이 아닌 분산데이터 처리 방식, 즉 각 프로그램에서 함수로 구현해서 실행하는 것 정도로 이해하면되나요?

4_1. Managed 데이터를 만들때, 사용자가 하이브에 SQL문 입력 → 하이브는 이를 맵리듀스 코드로 변환하여 HDFS에 명령을 내림 → HDFS는 분산서버의 CPU에 명령을 내리고 그 처리결과를 합쳐 하이브에 반환 → 이를 사용자에 반환하는 것으로 이해했습니다. 이게 맞나요?

4_2. 맞다면 파일럿프로젝트에서는 Managed table들이 저장되어 있는 데이터마트라는 저장공간(서버)이 따로 존재하는 것이 아니고 그때그때 결과 테이블을 출력해주는 건가요?

4_3. 실무에서는 데이터마트만을 위한 서버를 따로 구축하나요?

답변 1

답변을 작성해보세요.

2

안녕하세요! 빅디 입니다.

먼저 파일럿 프로젝트 완료에 수고 많으셨습니다. ^^

그리고 아래 좋은 질문들도 감사 하고요~

답변중 이해 안되시는 부분이 있으면 회신해 주세요!! -빅디 드림

 

1. 소프트웨어 아키텍처 그림에서 플럼이 배치데이터를 하둡에 보낸다고 되어있는데, 정확히는 플럼이 보낸 데이터를 HDFS가 블록화 및 복제하여 분산된 x86 컴퓨터들에 저장하는 것인가요?

>> 네~ 맞습니다. x86 서버 하드디스크의 파일시스템에 저장이 되고, 이를 다시 HDFS에서 논리적은 파일 시스템으로 관리하게 됩니다.

 

2_1. HBase의 HFile에 있던 데이터가 HDFS에 저장될때 128mb 단위로 블록화 및 복제되어 분산 저장되는건가요?

>> 네~ 맞습니다.

 

2_2. 빠른 데이터 억세스를 위해 HBase가 가지고 있다면 모르겠지만 데이터들이 결국 HDFS에 저장된다면, HBase는 왜 설치하는건지 모르겠습니다.

>> HBase에서 HDFS로 내려간 파일들은 HBase <--> HDFS간 데이터 스트림라인들을 항상 연결해 놓습니다. 그래서 단순 HDFS의 GET 보단 속도가 빠르게 됩니다. 하둡의 분산컴퓨팅을 파워를 기반으로 대규모 No-SQL이 필요할땐 HBase를, 그외엔 몽고DB 및 카산드라 등을 많이 선호 합니다.

 

2_3. 2번째 질문과 비슷한 내용인데, 둘다 데이터를 분산저장한다면 HBase와 HDFS가 비슷한거 같은데, 어떤 차이가 있는 건가요?

>> 분산저장만 놓고 보면 차이가 없지만, 하둡(HDFS)은 큰 파일을 블록으로 나누어 디렉토리에 분산저장하고, 대규모 데이터를 안정적으로 저장/처리 하는데 최적화 되어 있습니다.

반면 HBase는 작은 메세지를 Row Key 기반의 컬럼 패밀리 테이블에 분산저장 합니다. 요건 빠른 저장/조회 성능을 높이기위해 다양한 데이터모델(Key-Value, 컬럼패밀리, 다큐먼트, 그래프 등)을 갖어가는 No-SQL DB 만의 특징 입니다.

 

2_3. 카산드라 및 몽고DB를 HBase 대신 사용할 수 도 있는건가요?

>> 위에 2_2 답변에서 말씀 드렸듯이 대신 할 수 있습니다.

 

2_4. HBase도 DBMS로써 SQL을 활용한 데이터의 CRUD가 가능한가요? 아니면 맵리듀스 프로그래밍을 해야하는건가요.

>> HBase 단독으로는 SQL 질의를 할 수 없습니다. 대신 Hive, Spark-SQL, 피닉스(Phoenix) 등을 이용합니다. 파일럿 프로젝트에선 Hive를 이용 하고 있고요~

 

3. Map/Reduce는 따로 설치하지 않았습니다. 그럼 Map/Reduce는 따로 설치하는 프로그램이 아닌 분산데이터 처리 방식, 즉 각 프로그램에서 함수로 구현해서 실행하는 것 정도로 이해하면되나요?

>> Map/Reduce 코어는 하둡에 내장 되어 있습니다. 하둡이 처음 나왔을땐 Java로 Map/Reduce 코딩을 직접해서 HDFS에 저장된 데이터를 추출 및 가공 처리를 했습니다. 이때 작성한 Map/Reduce 프로그램이 실행 될때마다, 데이터가 저장되어 있는 하둡의 데이터 노드로 이동(배포) 되어 작동하는 특징이 있다는 것을 이해 하는것이 아~주 중요합니다.

 

4_1. Managed 데이터를 만들때, 사용자가 하이브에 SQL문 입력 → 하이브는 이를 맵리듀스 코드로 변환하여 HDFS에 명령을 내림 → HDFS는 분산서버의 CPU에 명령을 내리고 그 처리결과를 합쳐 하이브에 반환 → 이를 사용자에 반환하는 것으로 이해했습니다. 이게 맞나요?

>> 네~ 맞습니다. 이해하기 어려운 내용인데 정확히 알고 계시네요...^^

추가로 Managed 데이터를 만들때만이 아닌, Hive SQL 실행시 기본적으로 작동하는 메커니즘 입니다.

 

4_2. 맞다면 파일럿프로젝트에서는 Managed table들이 저장되어 있는 데이터마트라는 저장공간(서버)이 따로 존재하는 것이 아니고 그때그때 결과 테이블을 출력해주는 건가요?

>> 요건 아닙니다. 저장공간은 HDFS가 되고, 하이브 테이블마다 HDFS에 고유경로가 매핑 됩니다. 이때 매핑정보 및 테이블의 스키마 정보등은 하이브 메타스토어에서 관리합니다.

 

4_3. 실무에서는 데이터마트만을 위한 서버를 따로 구축하나요?

>> 네~ 맞습니다. 데이터마트는 규모/활용도/접근성(보안) 등에 따라 별도의 독립적인 마트를 구축 하기도 합니다. 예를들은 고객마트, 상품마트, 거래마트, 분석마트, AI마트, 행동이력마트, 리스크관리마트 등 다양하게 구성 될 수 있습니다.

 

gilmo1234님의 프로필

gilmo1234

질문자

2023.01.18

네 잘 알았습니다. 답변 감사드립니다^^