본문 바로가기
반응형

하둡35

[TIL] : 272 일일 배움을 위한 Today I Learned ! 코딩 테스트 30일 챌린지 알고리즘 한 문제를 풀었다. 이번에는 프로그래머스에 있는 2단계 문제 중 소수 찾기를 풀어봤다. 2022.06.25 - [챌린지/코딩 테스트 30일 챌린지] - [코딩 테스트 30일 챌린지] : 14 하둡 기존에 학습한 하둡을 다시 살펴봤다. 정의와 잡을 실행하려는 명령어를 찾아봤다. 스프링 인프런 강의를 듣고 있는 중이다. CS 스터디 아침에 스터디가 있어서 발표를 했다. 운영체제 파트를 발표했고 다음 주는 데이터베이스 파트를 공부해 가면 될 것 같다. 오늘은 2명이 참여하지 못 해서 나 포함 2명이 진행했다. 우리 스터디의 총 인원은 4명이다. 2022. 6. 25.
[TIL] : 210 일일 배움을 위한 Today I Learned ! 소경관 프로젝트를 앞으로 어떻게 만들지 고민 좀 했다. Python 코드도 좀 적고 테스트하고 오늘은 자료를 많이 찾아봤다. 2022.05.24 - [Project/소경관] - [소경관] : 차량 번호판 인식 로직 고민 Hadoop 저번에 한 압축 풀기를 마저 정리하고 하이브 사용을 위해 간단하게 설치와 환경 변수 설정을 진행해 주었다. 진도는 더 나갔는데 복습은 이 정도로 한다. 2022.05.24 - [Data Base/Hadoop] - [Hadoop] : 하둡 시퀀스 파일 압축 풀기 2022.05.24 - [Data Base/Hadoop] - [Hadoop] : Hive 다운로드 및 환경 변수 설정 2022.05.24 - [Data Base/Hado.. 2022. 5. 25.
[Hadoop] : Hive 폴더 구조 및 Hive 데몬 실행 cd /usr/local/hive/conf sudo mv hive-env.sh.template hive-env.sh hive-env.sh에서 하둡 설치 위치 및 하둡의 사용 메모리 설정을 한다. sudo vim hive-site.xml hive-site.xml을 생성한다. hive.cli.prit.header true 데이터 조회할 때, 조회되는 컬럼 정보를 표현할지 여부, RDBMS의 컬럼명을 생각하면 된다. cd /usr/local/hadoop/sbin/ start-all.sh hadoop 계정으로 하둡을 실행한다. 2022. 5. 24.
[Hadoop] : 하둡 시퀀스 파일 압축 풀기 package hadoop.MapReduce.seq; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.fs.Path; import org.apache.hadoop.io.SequenceFile; import org.apache.hadoop.io.compress.SnappyCodec; import org.apache.hadoop.mapreduce.Job; import org.apache.hadoop.mapreduce.lib.input.FileInputFormat; import org.apache.hadoop.mapreduce.lib.input.SequenceFileInputFormat; import org.apache.hadoop... 2022. 5. 24.
[TIL] : 205 일일 배움을 위한 Today I Learned ! hadoop 시퀀스 파일 압축과 시퀀스 파일 별로 단어별 빈도수를 체크하는 로직을 다시 검토하고 적용했다. 2022.05.19 - [Data Base/Hadoop] - [Hadoop] : 시퀀스 파일별로 단어별 빈도수 세기 2022.05.19 - [Data Base/Hadoop] - [Hadoop] : 시퀀스 파일 압축 소경관 어제 thymeleaf를 마무리 하는 중이다. 잘 안 되서 일단 오늘 까지 해결을 해 보고 어렵다 싶으면 내일 학교에서 선배한테 조언을 좀 얻을 생각이다. 2022. 5. 19.
[Hadoop] : 시퀀스 파일 압축 하둡분산파일시스템에 저장된 데이터는 압축하여 저장이 가능하다. 맵리듀스 처리를 효율적으로 하기 위해 시퀀스 파일로 생성한다. 분석 및 처리의 빈도수 높지 않는 파일은 압축하여 저장하면, 하둡분산파일시스템의 저장소 양은 확보된다. 압축에 사용되는 압축 알고리즘은 SnappyCodec를 활용 SnappyCodec 맵리듀스 분석 대상 및 결과에 대한 압축을 위해 개발된 압축 방식 하둡에서만 사용 가능 Gzip과 유사한 압축 알고리즘 사용 다른 압축 알고리즘에 비해 상당히 빠른 압축 및 해제 시간을 가짐 블럭 단위 압축을 위해 사용 블럭 단위 압축을 하는 이유 압축 방법은 라인별 압축을 수행하는 ‘레코드단위 방식’일정 레코드를 묶어 ‘블록별 압축하는 블록단위’로 구분된다. 압축 효율성은 블록단위에 비해 레코드단.. 2022. 5. 19.
[Hadoop] : 시퀀스 파일별로 단어별 빈도수 세기 시퀀스 파일은 RecordReader 객체가 읽기 쉽게 만든 구조로 기존 맵리듀스 잡을 통해 실행이 가능하다. 이전 실습에서 수행한 ‘단어별 빈도수 세기’ 잡을 통해 실행이 가능하다. (아래 링크 참고) 2022.04.26 - [Data Base/Hadoop] - [Hadoop] : 맵리듀스를 활용해서 단어별 빈도수 분석, 단어 세기 hadoop jar mr.jar hadoop.MapReduce.wc.WordCount /result20/part-m-00000 /result21 정상적으로 실행된 맵리듀스 잡과 단어 빈도수 결과이다. 2022. 5. 19.
[TIL] : 203 일일 배움을 위한 Today I Learned ! Hadoop 맵과 시퀀스 프로그래밍을 진행했다. 압축이나 시퀀스 파일별로 단어 빈도수 체크하는 로직도 완성했지만 아직 정리가덜 되어서 우선 공부한 내용만 올려본다. 2022.05.17 - [Data Base/Hadoop] - [Hadoop] : Map 프로그래밍 2022.05.17 - [Data Base/Hadoop] - [Hadoop] : SequenceFile 프로그래밍 Redis ZSet을 사용하여 CRUD를 간단하게 진행하고 있다. 이것을 다 마치면 MongoDB와 연동해서 사용하는 것에 대해서도 공부할 예정이다. 2022.05.17 - [Data Base/Redis] - [Redis] : Zset 타입에 JSON 구조 저장 및 값 저장한 값 가져.. 2022. 5. 17.
[Hadoop] : SequenceFile 프로그래밍 RecordReader 객체가 생성될 때 Map을 나눈다. RecordReader를 더 엄밀히 말 하면 LineRecordReader로 라인별로 Key와 Value를 나누고 Mapper를 호출한다. 아래 세 가지가 가장 많이 사용되는 InputFormat이다. FileInputFormat KeyValueTextInputFormat SequenceFileInputFormat 시퀸스 파일이란? 효율적인 맵리듀스 수행을 위해 생성된 파일 형태 맵리듀스는 64mb 단위로 블록을 나눠서 하둡분산파일시스템에 저장한다. 저장되는 파일의 블록단위가 64mb보다 작은 경우 하둡분산파일시스템에 낭비되는 데이터 공간 및 맵리듀스 실행시 성능 저하가 발생한다. 파일 구조는 key,value 형태로 구현된다. 맵 형태 시퀀스 .. 2022. 5. 17.
[Hadoop] : Map 프로그래밍 맵 프로그래밍은 맵리듀스에서 리듀스를 사용하지 않고 맵만 사용할 때 사용되는 프로그래밍 방식이다. 이미지 프로세싱, 파일 포멧 변경, 분석 대상 샘플링, ETL(Extract, Transform, Load) : 추출, 변환, 로드(저장) 등에 사용한다. 맵 프로그래밍은 리듀서를 사용하지 않기 때문에 생성되는 리듀서 객체는 존재하지 않는다. 맵리듀스의 카운터를 이용한다. 카운터는 맵리듀스에 정보 표현을 위해 사용하는 객체이다. package hadoop.MapReduce.maponly; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.fs.Path; import org.apache.hadoop.mapreduce.Job; impor.. 2022. 5. 17.
[TIL] : 196 2022.05.10 - [Data Base/Hadoop] - [Hadoop] : Combiner, 컴바이너 일일 배움을 위한 Today I Learned ! Hadoop 컴바이너 이론을 체크해 보고 컴바이너를 활용한 IP 분석과 사용 전, 후 속도 비교하는 로직을 만들어 체크해 봤다. 코드는 깃 허브에 있다. Redis 레디스에 Set 형식의 값을 JSON으로 넣는 코드 등 여러 활용을 해서 값을 넣어봤다. 마찬가지로 아직 따로 정리는 하지 않아 포스팅은 없으나 깃허브에서 확인이 가능하다. 2022. 5. 10.
[Hadoop] : Combiner, 컴바이너 Mapper는 많은 양의 데이터를 자주 생성한다. Mapper에서 생성된 데이터는 반드시 Reduce를 거쳐 처리되는데 Mapper에서 생성되는 데이터가 많을 수록 네트워크 부하는 증가된다. 이때, 네트워크 부하를 줄여 처리 성능을 향상시키기 위해서 컴바이너를 사용한다. 컴바이너는 보통 미니 리듀서(mini-Reducer)라고 보면 된다. Mapper 결과를 그룹화하여 다시 처리하는데 컴바이너로부터 나온 결과를 Reduce에서 전달한다. Combiner는 Reducer와 동일하게 사용한다. Key와 List 형태의 값을 가지고 출력 결과는 Key와 value의 쌍으로 구성된다. 보통 Reducer의 메소드를 활용하여 사용한다. 하지만, 컴바이너는 모든 맵리듀스 구성에 사용 가능한 것은 아니다. 합계와 같.. 2022. 5. 10.
[TIL] : 194 일일 배움을 위한 Today I Learned ! 알고리즘 알고리즘 나동빈 유튜버 강의를 보고 있다. 그리디부터 천천히 알려줘서 좋다. 조금 더 공부해 보고 책을 추가로 구매할지 생각해 봐야겠다. 하둡 ResultCount2를 완성하고 있다. 오늘은 드라이버 부분을 코딩했다. 깃허브에서 확인할 수 있다. 2022. 5. 8.
[TIL] : 189 일일 배움을 위한 Today I Learned ! Redis 레디스를 사용하면서 값을 불러오고, 저장하고 리스트에 담는 프로젝트를 만들었다. 소스 코드는 깃 허브를 참고하면 된다. Hadoop 하둡 프로그래밍을 공부하고 있다. 분산 처리하는 간단한 예제 몇 가지를 만들어 봤다. 2022.05.03 - [Data Base/Hadoop] - [Hadoop] : ToolRunner 사용하기 2022.05.03 - [Data Base/Hadoop] - [Hadoop] : 맵리듀스 제어 함수, setup, cleanup 2022.05.03 - [Data Base/Hadoop] - [Hadoop] : URL 전송 결과가 성공인 요청 분석하기 2022. 5. 3.
[Hadoop] : URL 전송 결과가 성공인 요청 분석하기 하둡의 로그는 log4j를 사용한다. access_log는 서버에 요청된 모든 url을 기록한다. 전송 성공 : 200 전송 실패 : 200이 아닌 모든 값 400 경우 URL을 찾을 수 없다는 오류 setup, cleanup 함수를 활용한다. package hadoop.MapReduce.success; import hadoop.MapReduce.tool.WordCount2; import hadoop.MapReduce.tool.WordCount2Mapper; import hadoop.MapReduce.tool.WordCount2Reducer; import lombok.extern.log4j.Log4j; import org.apache.hadoop.conf.Configuration; import org.a.. 2022. 5. 3.
[Hadoop] : ToolRunner 사용하기 툴러너는 맵리듀스에 필요한 사용자 정의 변수 등을 활용하기 위해 사용한다. 맵리듀스 전체 전역 변수 활용에 사용. 툴러너를 통해 정의한 Configuration 객체는 Mapper, Reducer 객체에서도 사용이 가능하다. Mapper와 Reducer는 setup과 cleanup 함수를 통해 활용 툴러너? 기존 드라이버 파일에 환경설정 관련 내용을 감싸서 처리한다. 기존 드라이버 파일에 환경설정 관련 내용을 감싸서 처리한다. 툴러너 관련 import 자바 객체 import org.apache.hadoop.conf.Configured; (클래스) import org.apache.hadoop.conf.Configuration; (클래스) import org.apache.hadoop.util.Tool; (인.. 2022. 5. 3.
[TIL] : 184 일일 배움을 위한 Today I Learned ! Hadoop 하둡으로 간단한 프로젝트를 진행했다. 2022.04.28 - [Data Base/Hadoop] - [Hadoop] : 맵리듀스 버전 별 차이 2022.04.28 - [Data Base/Hadoop] - [Hadoop] : 하둡, 맵리듀스 프로젝트, 3글자 이상인 단어만 빈도 수 분석해보기 2022.04.28 - [Data Base/Hadoop] - [Hadoop] : 하둡, 맵리듀스 프로젝트 IP 별 호출 빈도 수 분석하기 소경관 csv 파일 처리에 대해 고민하고 있다. 정보처리기사 시험이 얼마 남지 않아 책으로 공부하고 있다. 2022. 4. 28.
[Hadoop] : 맵리듀스 버전 별 차이 하둡의 기능 개선으로 인해 필수 핵심 코어인 맵리듀스 API도 변경이 된다. 맵리듀스 API는 Old API와 New API로 구분이 된다. 1.x 버전을 MRv1이라 표현하고 2.x 버전을 MRv2라고 표현한다. 검색할 때 확실히 체크할 수 있는 게 패키지 명이 mapreduce.*면 2.xx대 버전, mapred.*면 1.xx대 이다. 객체 명도 좀 바뀌었다. 2.x 버전에서 생긴 setup과 cleanup 생겨다. 각각 맵이 실행하기 전에 실행되는 함수, 맵 함수가 완전히 끝나고 난 뒤에 실행이 되는 함수이다. 이렇게 관점, 시점에 따른 프로그래밍이 가능하게 바뀌었다. https://ohju96.notion.site/f6d35a9fd82c4a5c8d9f311fff2cefe9 2022. 4. 28.
[TIL] : 182 일일 배움을 위한 Today I Learned ! Hadoop 하둡의 맵리듀스를 사용해서 글자를 카운팅하는 작은 프로젝트를 만들어봤다. 2022.04.26 - [Data Base/Hadoop] - [Hadoop] : 맵리듀스 기본 개념, 특징, 주요 처리 과정과 프로젝트 설명 2022.04.26 - [Data Base/Hadoop] - [Hadoop] : 맵리듀스를 활용해서 단어별 빈도수 분석, 단어 세기 2022. 4. 26.
[Hadoop] : 맵리듀스를 활용해서 단어별 빈도수 분석, 단어 세기 아래 링크에서 확인이 가능하다. https://ohju96.notion.site/1d16c6f74f7246e28aabe7c23a82681d 맵리듀스 실습 단어별 빈도수 분석 (단어 세기) ohju96.notion.site 2022. 4. 26.
[Hadoop] : 맵리듀스 기본 개념, 특징, 주요 처리 과정과 프로젝트 설명 맵리듀스 기본 개념 하둡 핵심 코어 기술 중 하나이다. 분산된 다양한 노드들의 작업을 통해 처리하는 기술이다. 각 노드에 분산되어 있는 데이터를 하나의 노드에 저장된 것 같이 처리할 수 있다. 맵리듀스는 Map과 Reduce로 구성되어있다. 맵리듀스 특징 자동으로 분산 및 병렬 처리 수행 장애 허용(Fault Tolerance) 개발자에 적합한 처리 기술 맵리듀스는 Java로 개발되었다. 맵리듀스 프로그래밍도 Java로 개발한다. 맵리듀스 주요 처리 과정 Map 싱글 HDFS 블록들에 대해 각 Map 작업이 수행된다. Map 작업들은 대체로 블록이 저장된 노드에서 실행된다. Shuffle and Sort 모든 Mapper에서 Shuffle and Sort 작업이 실행된다. 모든 Map 작업들이 종료될 때.. 2022. 4. 26.
반응형