본문 바로가기

전체 글346

Network : Background : 상식 1. CheckSum: 중복 검사의 한 형태로, 오류 정정을 통해 공간이나 시간 속에서 송신된 자료의 무결성을 보호하는 방법이다. 나열된 데이터를 특정한 계산을 하여, 그 값을 데이터와 함께 수신자에게 보내게 되고, 수신자는 체크섬 함수의 결과값을 통해 받은 데이터가 받는 데이터인지 확인하게 도와주는 함수이다. 2. checkpoint: database에서 내용을 변경하거나 추가하는 작업을 하기 전에, 그 변경을 취소하는 롤백을 할 수 있도록 체크포인트 지점을 지정해 두는 것을 의미한다. 만약 변경이 실패할 경우, 부분적으로 내용이 변경되어 일관성이 깨어지는 것을 방지하기 위해 스냅샷을 지정해둔 위치롤 롤백한다. -> snapshot은 과거 한 때 존재하고 유지시킨 컴퓨터 파일과 디렉토리의 모음입니다. .. 2019. 10. 31.
Big Data : Hadoop : lecture_2 : Hadoop_basics_2 Hadoop_basics_1에서는 Hadoop이 실제로 어떤 방식으로 연산하고 저장하며, RDBMS와 비교했을 때, big data를 다룰 때 어떤 이점이 있는지 설명하였다. 또한 연산을 할 때, MapReduce를 기본으로 사용하고 있다라고 설명하였다. 이번 포스팅에서는 HDFS, 실제로 Hadoop이 분산저장을 할 때, 어떤 방식으로 저장하는지를 적을 것이다. The Design and Concepts of HDFS Design of HDFS Data가 매우 크다. PB까지 커버린 data를 분산저장하고자 한다. Streaming Data를 access하는 효과적인 방법은 : write-once 하고 반복적으로 read한다. comodity hardware를 사용함으로써 fail이 자주 일어나기 때문.. 2019. 10. 31.
Java : public, private, default, protected https://mainia.tistory.com/5574 자바(Java) public, private, protected, default 접근 제어자 차이점은 자바(Java) public, private, protected, default 접근 제어자 차이점은 환경: Eclipse Mars 자바에는 변수와 함수, 클래스에 대한 접근을 제한하는 문법이 있습니다. 접근을 제한하는 이유는 객체가 가진 고유의.. mainia.tistory.com 여기 참고하기! 2019. 10. 31.
Java : wordcount 코드 정리 및 class들 정리 Class Text Text Class는 UTF-8 encoding을 이용하여 text를 저장한다. 이는 serialize, deserialize 하는 method를 제공하고, text들을 byte level 단위에서 비교한다. 또한 byte array를 string으로 바꿈 없이 string으로 바로 바꿔주는 method를 제공한다. 또한 encoded string의 길이를 계산한다. import java.io.IOException; // String을 Token 단위로 나눈다. import java.util.StringTokenizer; // configuration, path import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.. 2019. 10. 31.
Big Data : Hadoop : lecture_5 : Hadoop I/O Block vs Split Block vs Split Hadoop이 HDFS에 저장할 때, Physical , Logical split으로 나뉜다. Data Block이 Physical 적으로 나뉘어져있고, 이는 HDFS에 저장이 되어있다. 그리고 128MB이다. MapReduce에 input하는 split들은 logical로 나뉘어져있다. InputFormat의 class Recoder 우리가 API를 구성할 때, FileInputFormat을 쓰게 된다. input 값을 미리 HDFS에 저장을 해두면, 이는 block 단위로 저장이 된다. HDFS에 저장된 data를 input으로 받으려고 할 때, block에서 실제 input할 것만 골라서 해야한다. 즉 logical 주소를 알아야 하는데, 이를 .. 2019. 10. 30.
Big Data : Hadoop : lecture_7 : MapReduce Motivation MapReduce는 구글에서 개발한 대용량 데이터 처리를 위한 소프트웨어 프레임워크이다. MapReduce는 복수 개의 개인용 컴퓨터에서 데이터를 분산해서 처리할 수 있도록 설계되었다. MapReduce는 크게 Map, Reduce로 이루어져 있다. Map에서 받은 데이터를 사용자가 정의한 코드에 따라서 intermediate pair를 만들어 준다. 그 후에 가공된 pair를 Reduce 함수에서 만들어진 intermediate 키 값에 따라서 정리를 해준다. 이는 사용자 정의에 의해 다양한 방식으로 활용가능하기 때문에, 다양한 분야에서 활요하고 있다. Background MapReduce는 주어진 자원을 효율적으로 사용하고, 자유도 있게 사용할 수 있게 해주기 때문에, 빅데이터 처.. 2019. 10. 30.
linux : windows에서 .sh 파일 실행하기 #! python -m pip install --upgrade pip pip install tensorflow pip install numpy pip install pandas pip install BeautifulSoup pip install matplotlib 본래 .sh파일은 linux에서 실행파일이다. 실제로 내가 .sh 파일에 내용을 입력하고 실행파일을 돌리면 자동으로 install을 해준다. 굉장히 편리한 친구...ㅎㅎㅎ github에 올려두고 잘 쓰면 좋을것 같은 친구이다. 실행파일을 만드려면 (실행파일 이름).sh 을 해줘야 하며, 처음 시작할 때 #! 를 붙여줘야한다. 이는 실행파일임을 알려주는 구간이다. 그 이후에 내가 실행할 용어들을 적어주면 된다. 2019. 10. 29.
DeepLearning : basic_model Deep Learning 이란? DeepLearning에서 얘기하는 neuron, 뉴런이라고 불리는 unit이 단순하게 동작이 된다. 근데 어떻게 컴퓨터가 생각을 할 수 있을까? 신호 input이 있고 ( x ), 그 input에 weight 가 해당되는 시냅스가 신호를 받는다. 그리고 cell body에서 연산이 일어나고 통과되면서 bias가 더해진다. activation function에서 output이 나오게 된다. 이러한 과정들이 simple 단계에서는 신경망 구조가 simple하지만, Deep learning 구조에서는 신경망구조가 deep 해지면서 여러 복잡한 연산들이 추가가 된다. Deep Learning 구조 신경망 구조 : 단층 퍼셉트론 (Single Layer Perceptron) 단층.. 2019. 10. 28.
Computer Structure : CPU vs GPU 차이점 CPU CPU는(central processing unit)란 입력을 받은 명령을 해석/연산 한 후에, 결과값을 출력장치로 전달하는 컴퓨터의 주요 부품이다. CPU의 성능지표는 3가지로 나뉜다. 클럭(동작 속도)의 수치 : 높으면 단일 작업을 빠르게 처리하는데 유리하다. 코어(핵심 회로)의 수 : 멀티태스킹을 하거나 멀티코어 연산에 최적화된 프로그램을 구동하는데 이점이 있다. 캐시 메모리의 용량 : 크기가 큰 프로그램을 구동하거나 자주 하는 작업을 반복 처리할 때 작업 효율을 높일 수 있다 GPU GPU(graphic processing unit)은 병렬연산에 특화된 구조를 통한 3D그래픽 처리였지만, 현재는 범용작업에도 GPU로 연산이 가능하다. GPU의 성능기준은 CPU와 동일하다. CPU vs GP.. 2019. 10. 28.
Numpy : array_made Numpy는 Array를 다루는 라이브러리로 보통 Pandas와 같이 쓴다. numpy를 잘 이해하고, 잘 다룰줄 알아야 나중에 머신러닝 & 딥러닝에서 유용하게 쓰인다. 잘 알아두기!!!! import numpy as np # 1,2차원 생성 x = np.array([1,2,3,4]) y = np.array([[2,3,4],[1,2,5]]) print(x,y) print(type(x)) """ output: [1 2 3 4] [[2 3 4] [1 2 5]] """ ----------------------------------------- # np.arrange 함수로 생성하기 # 0-9까지 print(np.arange(10)) # 1-9까지 print(np.arange(1,10)) # np.arange(.. 2019. 10. 26.
Big Data : Hadoop : lecture_3 : YARN 오늘은 YARN이다! YARN의 구조 Yarn은 하둡의 cluster resource management system이다. Yarn은 분산저장&처리시스템을 보완해주고 MapReduce 작업의 효율을 높여준다. YARN은 cluster의 자원을 requesting과 working을 하기위해 API를 제공한다. 여기서 API는 Spark, MapReduce, 등등 분석할 수 있는 알고리즘, 연산을 말한다. 이 API들은 user code에 의해 바로 쓰지 않고 분산컴퓨팅 framework를 위한 condition을 제공한다. 위의 hadoop의 모델처럼 Storage Layer에 HDFS, HBase, Computing 에 YARN, Application에 Spark, MapReduce. Yarn은 크게 R.. 2019. 10. 26.
Big Data : Hadoop : lecture_2 : Hadoop_basic_1 Motivation 우리는 모든 data를 하나의 drive로 읽는데 오래걸린다. 따라서 multiple disk로 read를 할 것이다. (100개의 drive -> 1개의 data를 1/100으로 쪼개는 개념) 하지만, multiple disk로 읽으면 문제점이 존재한다. 하드웨어가 fail -> 이는 replication으로 보완 data를 combining 한다. -> MapReduce로 보완 RDBMS VS MapReduce ● Small portion으로 DB를 update 할 때, majority 로 DB를 update 할 때, !!! Small에는 relation을 생각하고, 소량의 데이터를 가진다. sort & merge가 기본이고, 자료구조가 갖춰져 있어 매번 기준에 부합하게 updat.. 2019. 10. 26.