본문 바로가기

전체 글

[Google][Dataproc] Hive 이용해보기 1. 초기설정 클러스터 초기설정법을 모른다면 아래글을 참고하자 2023.03.20 - [데이터 사이언스] - Google Dataproc 설정하기 (클러스터 생성하기) demo라는 이름의 클러스터를 클릭하여 들어간다. 2. Demo를 클릭한 이후 이제 클러스터에 Job를 실행하라고 양식을 작성하게 된다. 작업 제출에 들어간다. 3. 작업 제출 클릭 후 세부설정 작업 ID : Job의 이름이다. 알맞게 이름을 지어주자. 작업유형 : Hive를 이용함으로 Hive로 설정해 주자. 쿼리 소스 유형 : 파일이 있다면 쿼리파일을 이용해도 되고, 코드를 복사 붙이기 한다면 쿼리 텍스트 그리고 밑에 제출을 누르면 작업 제출이 완료된다. 코드는 아래를 이용했다. 1_create-table.hql이다. https://g.. 더보기
[Hadoop] MapReduce 2.0 등장 배경, 특징 1. MapReduce 1.0의 한계 일괄처리(batch processing)만 지원 일괄처리 : 컴퓨터의 프로그램의 흐름에 따라 자료를 순차적으로 처리 데이터끼리 상호작용 하지 않는다. (Not interactive) MapReduce Job을 코딩하는게 복잡하다. 개발자 인력의 부족 Job이 사업 모델에 적합하지 않은 부분이 많음 기업에서 필요로 하는 특징들이 부족함 낮은 보안성 (security) 높은 가용성(high availability) 부족 2. MapReduce 2.0의 등장 JobTracker의 역할을 분할함 JobTracker : Apache Hadoop의 MapReduce 엔진에서 실행되는 데몬이다. JobTracker는 MapReduce Job을 관리 자원관리 (Resource ma.. 더보기
[Hadoop] MapReduce 최적화하기, 튜닝하기 1. MapReduce 최적화하기 Job이 실행되기 전에 최적화하기 데이터 전처리하기 (데이터를 변형하여 원하는 형태로 사용) ex) 특수문자 제거하기, 영어가 아닌 문자 제거하기 데이터를 로드할 때 최적화하기 압축비율 바꾸기 Job 부분의 map 부분 최적화하기 코드를 어떻게 잘 짜는지 Job 부분의 shuffle 최적화하기 Job 부분의 reduce 최적화하기 Job이 끝나고 난 뒤에 최적화 하기 2. 실행전에 고려해볼만한 최적화 파일 사이즈(File size) 압축(Compression) 암호화(Encryption) 3. 물리적 MapReduce 최적화 cluster configuration paremeter를 확인하여 다음을 확인한다. 사용되지 않는 자원이 있는가? 과도하게 사용되는 자원이 있는가.. 더보기
[Hadoop] MapReduce 기본개념, 정의, 특징, MapReduce 1.0 1. MapReduce 프로그래밍 패러다임 하나의 문제를 풀기 위해 설계되었다. 구글이 만들었다. 두 개의 부분으로 나뉨. (Map part, Reduce part) 2. Map 파트 데이터에 Map() 함수를 실행시킨다. 각 노드를 실행시킨다. (each node) 각 노드에 쌍의 결과가 나온다. 3. Reduce 파트 데이터에 Reduce() 함수를 실행시킨다. 어떤 노드에 실행시킨다. (some node) 어떤 노드에 쌍을 종합한다. 결과 : 합쳐진 리스트 4. 간단히 그림으로 이해하기 간단설명 예를 들어 3개의 서로 다른 Map Machine에 서른 다른 크기의 데이터가 들어간 모습이다. 데이터들이 Shuffle 되고, 같은 크기의 데이터로 Sort 되고, Reduce에서 데이터들이 합쳐진다. (.. 더보기
[파이썬][자료구조] Counter 설명, 예시, 문자열, 파일에서 알파벳 세기 1. Counter Counter는 dict의 서브클래스로 파이썬에서 해싱가능한 개체를 세기 위해 설계됐다. 객체를 key로 개수를 value로 저장하는 딕셔너리이다. Counter를 이용하기 위해서는 연속되거나, 반복 가능한 객체를 인자로 제공해야 한다. 2. Counter를 이용한 예시 from collections import Counter #문자열을 인자로 사용 Counter("mississippi") #리스트를 인자로 사용 Counter(list("mississippi")) Output Counter({'m': 1, 'i': 4, 's': 4, 'p': 2}) 3. set()을 이용해 1로 초기화하기 파이썬의 set은 unique 객체를 저장한다. (중복되지 않는) 아래 예제에서는 중복되는 알파.. 더보기
[프로그래머스][Python] 카펫 1. 문제설명 Leo는 카펫을 사러 갔다가 아래 그림과 같이 중앙에는 노란색으로 칠해져 있고 테두리 1줄은 갈색으로 칠해져 있는 격자 모양 카펫을 봤습니다. Leo는 집으로 돌아와서 아까 본 카펫의 노란색과 갈색으로 색칠된 격자의 개수는 기억했지만, 전체 카펫의 크기는 기억하지 못했습니다. Leo가 본 카펫에서 갈색 격자의 수 brown, 노란색 격자의 수 yellow가 매개변수로 주어질 때 카펫의 가로, 세로 크기를 순서대로 배열에 담아 return 하도록 solution 함수를 작성해주세요. 제한사항 갈색 격자의 수 brown은 8 이상 5,000 이하인 자연수입니다. 노란색 격자의 수 yellow는 1 이상 2,000,000 이하인 자연수입니다. 카펫의 가로 길이는 세로 길이와 같거나, 세로 길이보.. 더보기
[Google Cloud][Dataproc] VM 설정, Hadoop 파일 시스템 이용하기 1. 시작하기 전 클러스터를 만드는 설정이 필요함 그건 아래 링크를 참조하면 클러스터를 만들 수 있음 2023.03.20 - [데이터 사이언스] - Google Dataproc 설정하기 (클러스터 생성하기) 2. 시작화면 클러스터를 만들었다면 아래와 같은 화면일 것이다 그리고 화살표를 따라 demo를 클릭하면 클러스터 설정이 보일 것이다. 3. 클러스터 이름(demo) 클릭한 후 클러스터(demo)에 대한 설정이다. 여기서 작업하기 위해 VM 인스턴스에 들어간다. 4. VM 인스턴스 클릭 후 VM 인스턴스를 클릭한 후에 SSH에 들어가면 VM에 들어가게 된다. 그리고 SSH를 클릭하게 되면 아래와 같이 나온다. 5. Hadoop FileSystem 이용하기 간단한 예제 shakespeare.raw이용하기.. 더보기
[프로그래머스][Python] 영어 끝말잇기 1. 문제설명 1부터 n까지 번호가 붙어있는 n명의 사람이 영어 끝말잇기를 하고 있습니다. 영어 끝말잇기는 다음과 같은 규칙으로 진행됩니다. 1. 1번부터 번호 순서대로 한 사람씩 차례대로 단어를 말합니다. 2. 마지막 사람이 단어를 말한 다음에는 다시 1번부터 시작합니다. 3. 앞사람이 말한 단어의 마지막 문자로 시작하는 단어를 말해야 합니다. 4. 이전에 등장했던 단어는 사용할 수 없습니다. 5. 한글자인 단어는 인정되지 않습니다. 끝말잇기를 계속 진행해 나가다 보면, 3번 사람이 자신의 세 번째 차례에 말한 tank 라는 단어는 이전에 등장했던 단어이므로 탈락하게 됩니다. 사람의 수 n과 사람들이 순서대로 말한 단어 words 가 매개변수로 주어질 때, 가장 먼저 탈락하는 사람의 번호와 그 사람이 .. 더보기