본문 바로가기

대학원 공부/computer science66

Linux : Google API 써보기 Google API 써서 로그인 환경 만들기 이번에 프로젝트를 진행하면서, Google API를 이용해서 로그인 환경을 만들어, 로그인하는 이름을 가지고 dir 구성하였다. 나중에 로그인 환경을 구축하는데 용이하게 사용가능할 것 같았다. 나중에 한 번 해보자 우선 Google API로 들어가서 프로젝트를 생성한다. 그 후, 사용자 인증 정보 만들기를 들어가서, 두 번째 OAuth 클라이언트 ID를 눌러준다. 아마 처음에는 OAuth 동의 화면에 설정이 안되어있을 것이다. 어플리케이션에 이름 적어준다. 그 밑에 승인된 도메인에 내가 주소로 걸어둘 도메인을 적어준다. 그 후 저장을 눌러준다. 그 다음 사용자 인증 정보 만들기를 들어가서 웹어플리케이션으로 정해준다. 여기서 만약 내가 다른 분야를 할 거면, 다.. 2019. 11. 26.
Big Data : Spark : SparkSession from pyspark.sql import SparkSession spark = SparkSession.builder .master("local[*]") .config("spark.driver.cores", 1) .appName("understanding_sparksession") .getOrCreate() --------------- spark.stop() SparkSession이란 Spark 2.0 버젼 모양을 가지고 있다. SparkSession은 여러가지 class들을 수행하기 위해 기반을 제공한다. 또한 method와 여러가지 class들을 제공한다. 사용자들은 SparkSession을 통해서 직접 fluent interface, 유동적인 interface를 구성하는데 도움을 주는, coding.. 2019. 11. 23.
Big Data : Spark : findspark package findspark 란? spark cluster가 생성되면, 이에 접근할 수 있는 지점이 필요한데, 이를 SparkContext라고 한다. 우리는 SparkContext를 통해 spark cluster에 접근해, 명령어를 전달, 결과를 전달 받는다. 우리는 SparkContext를 줄여 sc 라는 변수로 칭한다. SparkContext를 findspark 패키지로 찾아내며, pyspark.SparkContext 명령어로 스파크 접속지점을 특정한다. -> ('local', spark cluster의 이름) 을 실습을 통해 sys.argv로 입력받았다. -> export SPARK_HOME=/home/hadoop/spark 이것도 SPARK_HOME을 정해줌으로써 entry point를 알려준 것 impor.. 2019. 11. 23.
Linux : SSH 이해하기 SSH Protocol SSH 는 Secure Shell의 약자이다. 즉, 네트워크 상의 다른 컴퓨터에 로그인하거나 원격 시스템에서 명령을 실행하고 다른 시스템으로 파일을 복사할 수 있도록 해 주는 프로토콜이다. VPN을 구성하는 것보다 가격이 저렴하고 쉽게 연결할 수 있어 많이 사용된다. SSH 프로그램 중 내가 많이 쓰는 프로그램은 PuTTy 다. MacOS에는 OpenSSH 클라이언트와 서버가 내장되어 있기 때문에 바로 사용할 수 있다. SSH는 22번 포트 를 사용하며, 크게 다음의 3가지를 제공한다. 1. Authentication SSH는 public key와 private key를 사용하는 비대칭 암호방식을 사용합니다. 간단히 설명하면, public key와 private key가 모두 있어.. 2019. 11. 15.
git & github : branch # branch list 보여주기 git branch # git branch 생성 git branch branch_name # git branch 변경 git checkout branch_name # git branch 생성 및 변경 한번에 git checkout -b branch_name # git branch 삭제 git branch -d branch_name # branch 명 바꾸기 git branch -m "branch 이름" # branch 원격저장소 list git branch -r # branch 원격 + 로컬저장소 list git branch -a # git 로 github branch 가져오기 git checkout -t origin/branch_name # git 비교하기 git di.. 2019. 11. 11.
git & github : git add, commit 취소하기, commit message 수정 git add # add 하기 git add # add 모두하기 git add --all # add 예전에 커밋한적이 있는 파일만 git add -u # add 하면 변경사항이 보인다. git add -p # add 할 때, 해당글자, ML이 있으면 add git add ML* git commit # commit 하면서 내가 메모할 말 --> "제일 많이 쓴다!!!" git commit -m "내가 올리면서 메모할 말" # 모든 branch 에서 commit 했던 내용들 git branch -v git push # git 로 push (리모트 저장소) (리모트 브랜치) git push origin branch_name # git 로 github branch 삭제 git push origin --delet.. 2019. 11. 11.
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.
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.
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.