본문 바로가기

[Data Engineering]

(26)
[Hadoop/기록] 8. Hadoop map-reduce (WordCount / Python) [How abount python] 동일한 WordCount 예제를 이번에는 python으로 작성해 보도록 한다. 먼저 리눅스에 python을 설치해 준다. (공부중인 영상을 참고했는데, 매번 인스턴스 벽돌만 만져서 그런가 역대급 깔끔 설치;;) sudo apt update sudo apt-get install python-is-python3 1. Java는 한 파일에 다 담았지만 python은 mapper와 reducer를 따로 작성해본다. 먼저 mapper를 작성하고, 실행권한을 추가한다. mapper 파일의 역할은 다음과 같다. 단순히 잘라...준다. 2. 다음은 reducer 파일이다. reducer 또한 들어오는 라인의 tab을 기준으로 첫번째 것만 잘라서, int형으로 변환하고, 만약 word..
[Kafka] Intro. + AWS에 Kafka 브로커 생성하기 [하나씩 배우고 싶은데, 프로젝트는 기다려주질 않고...] 아파치 카프카 애플리케이션 프로그래밍 with 자바 - YES24 아파치 카프카 애플리케이션 개발을 위한 「실전 가이드」아파치 카프카란 무엇일까? 카프카 애플리케이션은 어떻게 만들까? 데이터 파이프라인을 만들기 위해 어떤 카프카 라이브러리를 사용 www.yes24.com 추천시스템 프로젝트를 시작하면서 내가 써보고 싶었던 것은 FastAPI, AWS S3(Object Storage), 그리고 빅데이터 아키텍쳐였다. 앞의 두개는 금방 배우고 적용했는데, 그나마 제일 베이스가 많았던 빅데이터 아키텍쳐는... 역시 쉽지않다. 알아야 할게 너무 많아!!! Spark..ML..
[Sqoop] Avro File [Avro File]
[Sqoop] Parquet File [Parquet File] Apache Parquet Apache Parquet is a columnar storage format available to any project in the Hadoop ecosystem, regardless of the choice of data processing framework, data model or programming language. parquet.apache.org Parquet(파케이)는 빅데이터를 저장하는 방식(파일포멧) 중 하나이다. 빅데이터 에코 시스템에서 유명한데, 데이터를 효율적으로 저장할 수 있다. 그렇다면 Parquet의 장점은 무엇일까? 간단하게 세가지 정도를 꼽아볼 수 있다. 빠르게 읽을 수 있다 압축률이 좋다 특정 언어,프레임워크에 종..
[Sqoop] Warehouse / Target Dir [ Warehouse / Target Dir ] Warehouse Dir 기본적으로, Sqoop 명령어의 결과는 warehouse dir에 저장이 된다. Table이름으로 Sub - Directory가 생성된다. sqoop import \ > --connect jdbc:mysql://localhost:3306/retail_db \ > --username root \ > --password admin123 \ > --table customers \ > --warehouse-dir /user/new-warehouse-dir Target Dir -target-dir라는 명령어를 사용하면 Sqoop의 아웃풋을 다른 곳(Specific)으로 리다이렉트 시킬 수 있으며, Sub-Dir는 생성되지 않는다. sqoop..
[Sqoop] Sqoop-Intro [Apache Sqoop이란 무엇인가] GitHub - apache/sqoop: Mirror of Apache Sqoop Mirror of Apache Sqoop. Contribute to apache/sqoop development by creating an account on GitHub. github.com BigData Ingesion에서 대표적으로 사용하는 툴 중에 Apach sqoop이 있다. 데이터 파이프라인을 만들어보면서 Sqoop을 접할 기회가 꽤 있었는데, 이번에는 Sqoop에 대해 정리하고자 한다. 스쿱은 클라우데라에서 개발했으며, 현재 아파치 오픈소스 프로젝트로 공개되어 있다. 간단하게 핵심만 말하자면, 스쿱(sqoop)은 관계형 데이터베이스와 하둡 에코시스템 간의 데이터 변환을 가..
[Hadoop/기록] 7. Hadoop map-reduce (WordCount / Java) Apache Hadoop 3.3.1 – MapReduce Tutorial hadoop.apache.org --> [map-reduce 예제 실행과정]1. Hadoop home을 기준으로, 데이터를 넣을 input 폴더를 생성하고, 폴더안에 리눅스 시스템에 있던 아무 텍스트파일이나 집어넣는다.  예제는 wordcount이므로, 나는 NOTICE.txt 파일을 사용했다.  2. 하둡 폴더에는 share/hadoop/mapreduce 폴더로 들어가면 다음과 같이 다양한 예제파일들, 정확히는 Jar 실행파일 들을 확인할 수 있다. 그중에서 hadoop-mapreduce-examples-3.2.2 파일을 실행시켜보자. 커맨드는 다음과 같다.  그러면 내부에 Sourc..
[Hadoop/기록] 6. Hadoop Read/Write Architecture [Read/Write Architecture] Read Architecture는 Write Architecture의 반대로 흘러가는 개념이므로, Write Architecture 중심으로 기록하도록 한다. (깊이 공부해보고 작성한것이 아님을 감안!!) 아래 그림은 Hadoop에 Write 과정을 나타내는 다이어그램이다. 언어는 크게 중요한 부분이 아니므로 대략적인 흐름을 기억하려 한다. 먼저 기록하려는 파일이 있다고 가정해본다. 이 파일은 크기가 256MB이하라서 2개의 128MB의 Block으로 나누어진다. 이를 block a, b라고 하자. Application은 요청(file write request')을 통해 HDFS Client로 파일을 쓰겠다고 말한다. HDFS Client은 write req..
[Hadoop/기록] 5. Hadoop Architectures 훑기 [HDFS v1.x ~ v3.x Architecture] HDFS ver1.0 이던 시절, 당시의 HDFS의 구조는 위와 같다. Dataflow를 간단히 설명하자면 다음과 같다. 1. 요청이 HDFS Client로 들어온다 -> 2. HDFS Client는 namenode에서 파일에 대한 메타데이터를 불러온다. 이때 메타데이터는 namespace, filename을 의미한다. -> 3. HDFS는 이 정보를 바탕으로 데이터 노드에서 읽어내고자 하는 데이터를 읽어낸다. -> 4. 만약 namenode가 수정되면 secondary node의 edit file을 수정한다. 모든 시스템은, 발생한 문제를 해결하고 고도화 하는 과정에서 발전하기 마련이다. HDFS 1.0버전에서 발생한 주된 문제중 하나는 Sing..
[Hadoop/기록] 4. 하둡 User Common commands user-commands [user-commands] 하둡의 common-commands 는 user-command와 administrator-command로 나뉘어진다. 그 중 사용자 명령어인 user-command에 대한 기록이다. 마찬가지 특별하지 않은 cmd는 별다른 코멘트를 달지 않았다. (archive) : 파일 시스템 디렉토리를 위해 로드맵을 그린다. *.har파일로 압축되며, 메타데이터와 데이터 파일들을 가지고 있다. 하둡 HDFS는 작은 사이즈의 파일이 많아지면 네임노드에서 이를 관리하는데 어려움이 발생한다. 따라서 블록사이즈 정도로 파일을 유지해주는 것이 좋은데, 이를 위해서 하둡은 파일을 묶어서 관리하고, 사용할 수 있는 하둡 아카이브를 제공한다. hadoop archive -arch..