본문 바로가기

전체 글323

Git 용어 간단 정리 - 작업 폴더(working directory) = 작업이 발생하는 폴더 - staging area = 작업 폴더에서 작업한 변경 내용을 git 저장소에 컴밋하기 전에 올려두는 공간 (중간 저장소) - 로컬 저장소(local repository) = 내 PC에서 관리하는 git 저장소 - 원격 저장소(remote repository) = GitHub와 같이 로컬 저장소를 업로드 하는 저장소 로컬 -> 원격 - add = 작업폴더에서 수정한 파일들을 staging area에 1차적으로 저장하는 과정 - commit = staging area에서 점검을 마친 파일들을 로컬 저장소에 저장하는 과정 + 그 과정을 거쳐 원격 저장소에 전송되기 위해 로컬 저장소에 저장되어 있는 파일들 - push = 로컬에서 작업.. 2022. 9. 3.
빅데이터 부트캠프 43일차 Flume - 분산 환경에서 대량의 스트리밍 데이터(로그 데이터 등)를 효율적으로 수집하는 Java 기반 오픈소스※ 로그 데이터(Log Data) = 서버에서 이루어지는 모든 작업에 대한 정보를 담고 있는 데이터- 외부 이벤트 발생시, 해당 데이터를 수집하여 Agent를 통해 원하는 저장소로 전송해줌- 빅데이터를 서버 컴퓨터에서 온전히 감당하기에는 무리가 있기 때문에 Flume을 통하여 데이터를 실시간으로 대용량 저장소로 전송하는 것이 주 목적 - 하나의 Agent는 Source, Channel, Sink로 구성- Source = 웹 서버로부터 로그 데이터 수집(출입문)- Channel = Source에서 받은 로그 데이터를 Sink로 전달하는 통로,- Sink = HDFS로 로그 데이터 전달 (나가는 .. 2022. 9. 2.
빅데이터 부트캠프 42일차 # 셀프 주유소 가격 분포 그래프 import pandas as pd from glob import glob # glob: 파일 목록을 뽑을 때 사용하는 모듈 import matplotlib.pyplot as plt import seaborn as sb from matplotlib import font_manager, rc xls_files = glob('C:/oil/지역*.xls') print(xls_files) busan_raw = [] for file in xls_files: raw = pd.read_excel(file, header=2) busan_raw.append(raw) busan_table = pd.concat(busan_raw) # concat: 동일한 인덱스나 컬럼을 가지고 있는 경우에.. 2022. 9. 1.
Greedy Algorithm (그리디 알고리즘) - 나중에 미칠 영향에 대해서는 고려하지 않은 채 현재의 상황에서 당장 좋은 것만 고르는 알고리즘 - 다른 알고리즘에 비하여 속도가 빠른 편이지만 최적해를 찾을 수 없는 가능성이 높음 ex) 가장 큰 순서대로, 가장 작은 순서대로 2022. 8. 31.
Page Replacement Algorithm (페이지 교체 알고리즘) 정의 - 빈 프레임이 없을 경우 희생(삭제) 당할 프레임을 고르는 알고리즘 종류 - FIFO(First In First Out) 알고리즘 : 가장 먼저 들어온 페이지 교체 (Queue와 비슷) ※ Queue는 FIFO 알고리즘을 사용한 한 자료구조 - OPT(Optimal)알고리즘 : 앞으로 가장 오랫동안 사용되지 않을 페이지 교체 - LRU(Least Recently Used)알고리즘 : 가장 오랫동안 사용되지 않은 페이지 교체 - LFU(Least Frequently Used)알고리즘 : 참조 횟수가 가장 작은 페이지 교체 - MFU(Most Frequently User)알고리즘 : 참조 횟수가 가장 많은 페이지 교체 - NUR(Not Used Recently) 알고리즘 : 최근에 사용하지 않은 페이.. 2022. 8. 31.
빅데이터 부트캠프 41일차 Pig 명령어 2- SUBTRACT(A,B) = 릴레이션 A의 데이터를 반환하는데 B와 같은 것이 있는것은 null로 변환하여 반환 (차집합)- SUM = 지정한 속성의 합계 반환- IN = 데이터의 속성과 조건을 입력하여 해당 속성에서 조건을 만족하는 데이터만 반환  - TOKENIZE = 지정한 문자열 기준(기본값은 빈칸)으로 각각의 문자열 데이터들을 분리하여 반환 (PigStorage와 유사)- TextLoader = 속성의 이름과 데이터 타입을 지정하지 않고 데이터 출력 (스키마 존재 X)- TOP(출력할 개수, 기준 속성, 적용할 릴레이션) = 지정한 속성을 기준으로 상위 데이터를 지정한 개수만큼 출력  (Top을 사용하기 위해서는 릴레이션을 사전에 그룹화를 해야함)- TOMAP(속성1,속성2).. 2022. 8. 31.
빅데이터 부트캠프 40일차 Pig- 대규모의 데이터를 쉽게 분석할 수 있도록 스크립트 수준의 언어를 제공하는 오픈소스 라이브러리 (Hadoop 기반)- Hadoop 상에서 구동하면 스크립트가 내부적으로 MapReduce로 수행- Pig가 설치되어 있다면 pig로 실행 (종료 명령은 quit)※ Linux는 따로 Pig를 설치해줘야하며 Horton에는 Pig가 설치되어있어 바로 사용가능- Pig가 실행되면 자동으로 Linux에서 Hadoop으로 접속- Pig로 Hadoop을 접속하면 hadoop fs를 적을 필요없이 Hadoop에서 리눅스 명령어 사용가능- Pig에서 ls 실행시 안에 데이터 타입이 나오는데 dir = 디렉터리 폴더, r 1 =  파일- Pig로 cat 실행시 다시 명령어 입력창으로 돌아오려면 ; 입력후 엔터- m.. 2022. 8. 30.
빅데이터 부트캠프 39일차 (Java) ※ Python은 데이터 타입 변환시 int(a)와 같이 입력하지만 Java는 반대로 (int)a로 입력 // console에서 데이터 입력받아 텍스트 파일로 저장 import java.io.FileWriter; import java.io.IOException; import java.util.*; import java.io.*; public class FileWriterEx { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); // 콘솔을 통하여 입력 가능하게 FileWriter fout = null; try { fout = new FileWriter("C:\\test\\news.txt"); // news... 2022. 8. 29.
빅데이터 부트캠프 39일차 (Hadoop) MapReduce - map = 소스를 쪼개어 key:value 맵을 여러갱 생성 - reduce = 여러 map 값들을 하나의 결과값으로 만듦 ※ 컴파일의 편리성을 위해 maven 설치 (리눅스는 sudo install apt maven, Horton은 yam install maven) Hadoop WordCount 예제 - 단어의 개수를 파악할 때 사용 Hadoop TopN 예제 - 해당 텍스트에서 빈도수가 높은 단어들의 목록을 파악할 때 사용 2022. 8. 29.
빅데이터 부트캠프 38일차 (Hadoop) Hadoop 명령어 기본 - Hadoop은 기본적으로 명령어 입력 시 hadoop fs를 먼저 입력 - hadoop fs을 입력하지 않고 명령어를 입력하면 Hadoop이 아닌 Linux에 명령을 실행하는 것 - hadoop fs -ls = 홈 디렉터리 조회 - hadoop fs -ls -R / | grep test = 하위 디렉토리를 포함해서 test라는 문자가 파일명에 속한 파일들 목록 출력 - hadoop fs -mkdir = 디렉터리 생성 - hadoop fs -rm = 파일 삭제 - hadoop fs -put [복사할 파일이 있는 경로(리눅스)] [복사하여 붙여넣기할 경로(하둡)] = 리눅스에 있는 해당 파일을 hadoop의 지정 파일에 복사 - hadoop fs -get [복사할 파일이 있는 경.. 2022. 8. 26.
빅데이터 부트캠프 38일차 (Java) Buffer - 데이터를 한 곳에서 다른 한 곳으로 전송하는 동안 일시적으로 그 데이터를 보관하는 임시 메모리 - 입출력 속도 향상에 도움 - BufferedReader = 버퍼를 이용한 입력 - BufferedWriter = 버퍼를 이용한 출력 - Buffer flush = 버퍼에 남아 있는 데이터를 출력시켜 버퍼를 비우는 동작 Socket - TCP/IP 네트워크를 이용하여 쉽게 통신 프로그램을 작성하도록 지원 하는 기반 기술 - 서버 소켓과 클라이언트 소켓 두 종류가 존재 - 소켓끼리 데이터를 주고 받음 2022. 8. 26.
빅데이터 부트캠프 37일차 네이버 뉴스 기사 크롤링 (단어 빈도수 분석 후 그래프로 시각화) import sys import requests from bs4 import BeautifulSoup from newspaper import Article # 사용자가 지정한 URL에서 텍스트를 추출 from konlpy.tag import Okt from collections import Counter from collections import OrderedDict # 입력된 데이터들의 순서를 기억하는 딕셔너리 클래스 import matplotlib import matplotlib.pyplot as plt URL_BEFORE_KEYWORD = "https://search.naver.com/search.naver?where=news&sm=.. 2022. 8. 25.
빅데이터 부트캠프 36일차 Java의 파일 단위 - WorkSpace - Project - Class - Library - Package = Class들의 묶음 다형성 - 같은 이름의 메소드가 클래스나 객체에 따라 다르게 동작 - 메소드 오버라이딩 = 상위 클래스의 메소드를 하위 클래스마다 다르게 구현 - 메소드 오버로딩 = 같은 이름이지만 다르게 작동하는 여러 메소드 생성자 함수 - Java는 파이썬의 __init__과는 다르게 생성자 함수명을 클래스명과 같도록 설정해야 함 - 생성자 함수는 return 데이터 타입 설정 X - this = 파이썬 __init__의 self와 같은 역할 ※ 비교 연산자 사용시 String 타입 데이터는 ==이 아니라 반드시 .equals()로 비교해야 함 // 고객의 이름과 나이, 통장 잔액을 .. 2022. 8. 24.
빅데이터 부트캠프 35일차 JAVA 입력 기본 - 파이썬 input = 자바 Scanner(System.in) - 파이썬과 다르게 ' '(작은 따옴표)에 텍스트 입력하면 안되고 ""(큰 따옴표)에만 입력해야 함 - 변수를 정의할때 해당 변수 입력하기 전에 변수의 데이터 타입을 입력해줘야 함 ex) int a = 5, char i = "a" - scanner.next(일반 텍스트), scanner.nextInt(정수), scanner.nextDouble(실수), scanner.nextBoolean(참&거짓)의 수에 따라 입력할 수 있는 변수의 수가 정해짐 ex) scanner.next가 3개, scanner.nextInt가 2개 입력되어 있으면 명령 실행 후 변수 입력시 5개의 변수 입력 가능 - Java는 주석처리 #으로 안되고 .. 2022. 8. 23.
빅데이터 부트캠프 34일차 import sys # 변수와 함수를 직접 제어 from bs4 import BeautifulSoup # HTML과 XML 파싱에 사용 import urllib.request # 간편한 HTTP 요청 처리를 위해 사용 from urllib.parse import quote TARGET_URL_BEFORE_PAGE_NUM = 'http://news.donga.com/search?p=' TARGET_URL_BEFORE_KEWORD = '&query=' TARGET_URL_REST = '&check_news=1&more=1&sorting=3&search_date=1&v1=&v2=&range=3' # 기사 검색 페이지에서 기사 제목에 링크된 기사 본문 주소 받아오기 def get_link_from_news_ti.. 2022. 8. 22.