일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- python
- java
- airflow
- NoSQL
- Windows
- 정규표현식
- HDP
- ambari
- jupyter
- HDFS
- re
- HBase
- slack
- docker
- yarn
- Kafka
- execution_date
- 람다 아키텍처
- Namenode
- MapReduce
- LDAP
- Example DAG
- SlackWebhookOperator
- Scala
- HIVE
- hadoop
- Lambda architecture
- Service
- slack app
- 빅데이터
- Today
- Total
IT 삽질기
Hadoop 데이터 직렬화와 RPC(Remote Procedure Call) 본문
오늘은 데이터 직렬화, RPC에 대해 간단하게 알아보고 hadoop에서 어떻게 사용하는지 장점은 무엇인지에 대해 알아보로고 한다.
데이터 직렬화란?
직렬화(serialization)
데이터를 네트워크로 전송하기 위해 구조화된 객체를 바이트 스트림으로 전환하는 과정
역직렬화(deserialization)
데이터를 전달받은 쪽에서 바이트 스트림을 객체로 전환하는 과정
직렬화의 장점
CSV, XML, JSON등의 형식은 알아보기 쉽다는 장점이 있지만, 데이터 구조상 파싱하는 시간이 오래 걸리는 단점이 있음
이를 binary로 변경하면 사람이 읽기에는 어렵지만 파싱 시간이 짧아지기 때문에 성능상 이득을 볼 수 있는데, 데이터가 작은 경우에는 큰 문제가 없을 수 있지만 빅데이터 시스템에서 사용하는 경우 많은 데이터과 큰 용량의 데이터를 처리해야 하기 때문에 문제가 발생할 수 있음
RPC(Remote Procedure Call)
Hadoop에서는 노드 사이의 프로세스 간 통신을 RPC방식을 이용합니다. RPC란 원격에 있는 프로시저를 호출하는 것을 말하는데, local에 호출하고자 하는 프로시저가 존재하지 않아도 원격 서버에 있는 프로시저를 실행하는 것을 말합니다.
서버 client-server 개념 생각하시면 조금 더 편하게 이해할 수 있을 것이라 생각되는데, client에는 서버에 실행하고자 하는 procedure을 요청하고 server는 요청 받은 procedure를 실행하여 결과를 반환해줍니다.
hadoop에서는 NameNode에 데이터가 어디에 있는지 요청하는 경우 이런 RPC가 사용되며, HDFS 데이터 읽기/쓰기에 관한 내용은 아래의 글을 참고
2019.06.09 - [BigData/Hadoop] - HDFS 데이터 읽기/쓰기
글의 내용에서 NameNode에 RPC요청을 보낸다고 되어 있는데, 요청을 하는 쪽에서 NameNode에 있는 프로시저를 호출하여 결과를 전달받는 방식으로 이러한 과정에서 직렬화/역직렬화 방식을 사용합니다.
Hadoop RPC의 장점
RPC를 이용하며 하둡이 얻는 장점은 무엇일까
- 간결성 : 간결한 포맷을 사용하여 hadoop에서 중요한 자원인 네트워크 대역폭을 절약
- 고속화 : 프로세스간 통신은 분산 시스템을 위한 백본을 형성하여 오버헤드가 작아야하는데 이를 가능하게 함
- 확장성 : 새로운 요구사항을 만족시키기 위해 변경이 필요하며 프로토콜의 발전도 직관적이여야 함
새로운 인자가 추가되어도 모두 잘 작동해야함
- 상호운영성 : 다양한 언어로 작성된 클라이언트를 지원
RPC에 대한 개념을 모두 이해하고 작성한 글이 아니기에 잘못된 정보가 있을 수 있으며, 잘못된 내용에 대해 알려주시면 수정하도록 하겠습니다.
참고자료
https://hamait.tistory.com/175
https://hub1234.tistory.com/26
'BigData > Hadoop' 카테고리의 다른 글
Hadoop Kerberos 인증과정 (0) | 2021.06.27 |
---|---|
Yarn NodeManager BindException(Close_wait) (0) | 2021.06.25 |
Hadoop MapReduce 기본 동작방식 (0) | 2021.05.20 |
YARN 스케줄링 (0) | 2021.04.19 |
Apache Hadoop 관련 폐기 프로젝트(2021.04) (0) | 2021.04.15 |