본문 바로가기
반응형

Hadoop18

[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.
[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] : 하둡, 맵리듀스 프로젝트 IP 별 호출 빈도 수 분석하기 access_log 파일로부터 URL을 호출한 IP별 빈도수를 분석한다. Access_log에 저장되는 항목들은 전세계 공통이다. 주요 항목 구성으 IP주소 - 접속시간 - 통신방법 - 통신프로토콜 - 전송코드이다. cd /data/file gzip -d access_log hadoop fs -put /data/file/access_log /access_log 파일 압축을 풀어주고 hadoop으로 옮겨준다. 코드는 아래 링크에서 확인한다. https://ohju96.notion.site/IP-5f41cf74fc6846a6ab8b652c7c2c6634 IP 별 호출 빈도수 분석하기 access_log 파일로부터 URL을 호출한 IP별 빈도수를 분석한다. ohju96.notion.site 빌드를 다시 해서 .. 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] : 맵리듀스 기본 개념, 특징, 주요 처리 과정과 프로젝트 설명 맵리듀스 기본 개념 하둡 핵심 코어 기술 중 하나이다. 분산된 다양한 노드들의 작업을 통해 처리하는 기술이다. 각 노드에 분산되어 있는 데이터를 하나의 노드에 저장된 것 같이 처리할 수 있다. 맵리듀스는 Map과 Reduce로 구성되어있다. 맵리듀스 특징 자동으로 분산 및 병렬 처리 수행 장애 허용(Fault Tolerance) 개발자에 적합한 처리 기술 맵리듀스는 Java로 개발되었다. 맵리듀스 프로그래밍도 Java로 개발한다. 맵리듀스 주요 처리 과정 Map 싱글 HDFS 블록들에 대해 각 Map 작업이 수행된다. Map 작업들은 대체로 블록이 저장된 노드에서 실행된다. Shuffle and Sort 모든 Mapper에서 Shuffle and Sort 작업이 실행된다. 모든 Map 작업들이 종료될 때.. 2022. 4. 26.
[TIL] : 177 일일 배움을 위한 Today I Learned ! 소경관 카카오 주소 API를 가져와서 적용했다. 너무 잘 만들어져서 내가 그닥 터치할 게 없었다. 2022.04.21 - [Project/소경관] - [소경관] : 카카오 주소 API 사용하기 Hadoop 하둡 본격 실습 전에 미리 셋팅을 해뒀다. 서버는 총 3대이다. 셋팅 모두 마치고 리소스매니저까지 띄우고 종료했다. 2022.04.21 - [Data Base/Hadoop] - [Hadoop] : CentOS에 하둡 설치하기 2022.04.21 - [Data Base/Hadoop] - [Hadoop] : 하둡 디렉토리 구조 파악하기 2022.04.21 - [Data Base/Hadoop] - [Hadoop] : 하둡 저장 디렉토리 생성 및 권한 부여하기.. 2022. 4. 21.
[TIL] : 176 일일 배움을 위한 Today I Learned ! 소경관 - Hadoop 하둡 실습 셋팅을 진행하고 있다. Notion에서 먼저 체크하고 실행하고 정상 동작을 확인하고 넘어가고 있다. 2022.04.20 - [Data Base/Hadoop] - [Hadoop] : 하둡을 위한 CentOS 설치 및 환경 셋팅 2022.04.20 - [Data Base/Hadoop] - [Hadoop] : master Server, Slave Server1, 2 설정하기 2022.04.20 - [Data Base/Hadoop] - [Hadoop] : 하둡 계정 생성하고 권한 주기 2022.04.20 - [Data Base/Hadoop] - [Hadoop] : 하둡 외부 접속 및 SSH 생성 2022.04.20 - [Data.. 2022. 4. 20.
[TIL] : 44 일일 배움을 위한 Today I Learned ! 알고리즘 파이썬으로 백준 알고리즘을 풀었습니다. 2021.12.09 - [Algorithm/백준] - [백준] : 10950번 Python,파이썬 풀이 2021.12.09 - [Algorithm/백준] - [백준] : 8393 Python,파이썬 풀이 Hadoop 자주 사용하는 명령어와 간단한 정의에 대해서 자문 자답으로 12문제 정도 진행했습니다. 2021.12.09 - [Data Base/Hadoop] - [Hadoop] : Hadoop 자문 자답 12제 소경관 프로젝트 진행이 어떻게 되고 있는지 기록하였습니다. 2021.12.09 - [Project/소경관] - [소경관] : 데이터 베이스 설계에 대한 고민 2021. 12. 9.
[Hadoop] : Hadoop 자문 자답 12제 1. 다음 gz로 압축된 로그 파일에 존재하는 이미지 호출에 대해 하둡분산파일시스템에 업로드하는 명령어를 작성하시오. - 이미지 파일 확장자 : jpeg, jpg, png, gif - 업로드되는 파일명 : /img/log - 로그파일 : /access_log.gz 💡 대소문자 구분) zcat access_log.gz | grep -E 'JPEG|JPG|PNG|GIF' | hadoop fs -put - /img/log 대소문자 구분없음) zcat access_log.gz | grep -Ei 'JPEG|JPG|PNG|GIF' | hadoop fs -put - /img/log 2. 다음 gz로 압축된 로그 파일에 10.250 대역의 IP 호출에 대해 하둡분산파일시스템에 업로드하는 명령어를 작성하시오. - 업로.. 2021. 12. 9.
[T.I.L] : 24 일일 배움을 위한 Today I Learned ! 웹 서버 배포 (하둡, Hadoop) 이클립스에서 코딩한 프로젝트를 War 파일로 내보내어 하둡에서 서버를 실행시키고 실시간으로 로그를 받아 왔습니다. 추가로 메시지를 입력해 실시간 로그를 찍는 것 까지 진행했습니다. 2021.11.18 - [Data Base/Hadoop] - [Hadoop] : 웹 서버 배포(1부) [Hadoop] : 웹 서버 배포(1부) 웹 서버 배포 스프링 프레임워크 등 웹 프로젝트의 배포 방법은 보통 war 파일로 프로젝트를 압축하여 웹 서버에 파일을 업로드 합니다. war 파일은 압축효율 0%의 순하게 파일을 묶은 압축파일입 ohju.tistory.com 2021.11.18 - [Data Base/Hadoop] - [Hadoop.. 2021. 11. 18.
[Hadoop] : 웹 서버 배포(3부) 데이터 수집 환경설정 Flume에서 자주 사용되는 예제입니다. vi로 flume-netcat을 만들어 줍니다. # The configuration file needs to define the sources, # ths channels and the sinks. # Sources, chnnels and sinks are defined per agent, # in this case called 'agent' agent.sources = s1 agent.channels = c1 agent.sinks = k1 agent.sources.s1.type = netcat agent.sources.s1.bind = localhost agent.sources.s1.port = 10001 agent.sources.s1.ch.. 2021. 11. 18.
[Hadoop] : 웹 서버 배포(2부) 웹 접속 포트 변경 8080 포트에서 10000 포트로 변경합니다. server.xml 파일 내용을 수정해 줍니다. vi server.xml 편집 모드를 통해 server를 편집해 줍니다. 위에 8080포트는 변경이 가능합니다. 포트 번호를 10000으로 변경해 줬습니다. 이 부분은 https에서 ssl 인증서가 사용된 톰켓 서버라고 보면 됩니다. 아파치와 충돌하면 안 되기 때문에 정해준 것 입니다. 웹 서버 웹 애플리케이션 서버 ws was 아파치 톰켓 nginx 간단하게 보면 웹 서버와 웹 애플리케이션 서버에서 아파치와 톰켓이 나누어 집니다. 여기서 웹 서버는 html, css, js 등을 실행할 목적으로 사용되고 웹 애플리케이션 서버는 말 그대로 애플리케이션을 돌아가게 하기 위해 만들어진 것 입니다.. 2021. 11. 18.
[Hadoop] : 웹 서버 배포(1부) 웹 서버 배포 스프링 프레임워크 등 웹 프로젝트의 배포 방법은 보통 war 파일로 프로젝트를 압축하여 웹 서버에 파일을 업로드 합니다. war 파일은 압축효율 0%의 순하게 파일을 묶은 압축파일입니다. - war 파일명은 반드시 ROOT.war (대소문자 구분)으로 생성해야 합니다. tar 압축과 유사합니다. War 파일을 압축하는 방법입니다. 우클릭하여 익스포트해 줍니다. 바탕화면에 ROOT.war 파일을 생성해 줍니다. ROOT.war 파일이 정상적으로 바탕화면에 익스포트 되었습니다. war 파일을 WinSCP를 통해 옮겨줍니다. 파일이 정상적으로 들어왔습니다. cp ROOT.war /usr/local/tomcat/webapps/ cd /usr/local/tomcat/webapps/ 복사를 해주고 확.. 2021. 11. 18.
[T.I.L] : 03 일일 배움을 위한 Today I Learned ! 하둡에서 플룸 셋팅과 딥러닝 마무리를 했습니다. 플룸은 텍스트 형태의 데이터를 수집하기 위해 사용되는 빅데이터 기술로 일반적으로 로그 수집에 사용됩니다. 윈도우는 공식적으론 지원하지 않고 있고 리눅스를 통해 사용할 수 있습니다. 2021.10.28 - [Data Base/Hadoop] - [Hadoop] : Flume ( 플룸 ) 셋팅 및 실행 [Hadoop] : Flume ( 플룸 ) 셋팅 및 실행 Flume ( 플룸) - 텍스트 형태의 데이터를 수집하기 위해 사용하는 빅데이터 기술입니다. - 일반적으로 로그 수집에 사용됩니다. 예를 들면 톰켓에서 주기적으로 생성되는 웹 로그 분석에 많이 사용 ohju.tistory.com - 딥러닝은 마무리로 데이터 .. 2021. 10. 28.
반응형