Lyft는 미국 센프란시스코에 본사를 둔 교통 네트워크 회사로, 미국 200개 도시에서 운영되고 있다. Lyft 모바일 응용 프로그램을 이용해서 자동차 운송을 요청할 수 있는 Lyft 소프트웨어를 개발해서 운영하고 있다. 또한 운전자는 음식을 배달하거나 승객을 수송함으로써 수입을 얻을 수 있다. 승객은 iOS 혹은 안드로이드 기반의 Lyft 앱을 다운로드 해서 가입 후 사용해야 한다. 이때 유효한 전화번호를 입력하고 결제 방법(신용 카드, Google Wallet 혹은 페이팔 계정)이 필요하다. 승객은 근처의 운전자에게 탑승을 요청 할 수 있다. 운전자가 확인되면, 앱은 운전자의 이름, 과거 승객에 의한 등급, 운전자와 차의 사진을 보여준다. 여기에 더해서 운전자와 승객은 자신의 고향, 음악 선호도 등 개인 정보를 오픈하도록 권장 할 수 있다. 이 정보는 운전자와 승객이 커뮤니케이션 하는데 도움을 줄 것이다. 미션(운송)이 끝나면, 비용을 지불하게 되고 팁을 제공 할 수도 있다.
Hadoop쪽은 관심 밖이였다. 딱히 사용해야 할 일이 없어서였다. 요즘 데이터 수집/처리 쪽 업무를 하게 되면서, 자연스럽게 하둡을 봐야하게 생겼다. 실제 써먹는 걸 목표로 실용적 관점에서 접근하려 한다.가장 유명한 아파치(Apache) 프로젝트 중 하나일 것이다. 안정적이고 확장 가능한 분산 컴퓨팅 구축을 위한 오픈 소스 소프트웨어다. 주요 모듈은 아래와 같다. Hadoop YARN Hadoop MapReduce
하둡은 3가지 설치모드가 있다. 1. Standalone 1. Pseudo distributed 1. Full distributed 버츄얼박스(VirtualBox)를 이용해서 Full distirubed 모드로 설치하기로 했다.하둡 설치환경은 아래와 같다. 호스트 운영체제 VirtualBox 5.1.6 게스트 운영체제 $ sudo apt-get install default-jdk$ javac -versionssh와 rsync를 설치한다.$ sudo apt-get install ssh rsync에서 2.7.3을 다운로드 했다. 링크를 클릭하면 다운로드 사이트 목록이 나온다. wget을 이용해서 다운로드 했다. 하둡은 /usr/local/haddop 디렉토리에 설치하기로 했다.
를 끝냈다고 가정하고 진행한다.대량의 데이터를 HDFS에 저장한 다음, 맵리듀스를 이용 HDFS로 부터 데이터를 읽어서 처리하는게 하둡의 기본 기능이다. 다른 다양한 소프트웨어들은 이 두개의 핵심기능의 응용들이다. HDFS(Hadoop distributed file system)은 확장성 및 뛰어난 이식성을 가진 자바 기반의 분산 파일 시스템이다. POSIX와 호환되지 않는 단점이 있기는 하지만 다른 파일 시스템과 비슷한 쉘 명령과 자바 API를 제공한다. 하둡 클러스터는 명목상으로 하나의 namenode와 하나의 datanode를 가지고 있지만, 그 중요도 때문에 중복해서 구성 할 수 있다. 각 데이타노드는 HDFS를 위한 블럭 프로토콜을 이용해서 네트워크를 통해서 데이터 블럭을 서비스한다. 파일 시스템 통신으로는 TCP/IP 소켓을 사용한다. 클라이언트들은 RPC를 이용해서 서로 통신한다.
YARN은 HDFS와 함께 하둡의 가장 중요한 구성요소다. YARN은 자원관리, 작업의 스케쥴링과 모니터링의 기능을 가진 별도의 데몬이다. 일종의 분산 커널이라고 볼 수 있다. 기본 아이디어는 RM(ResourceManager)과 애플리케이션별로 AM(ApplicationMater)을 구성하는 거다.RM은 하둡 클러스터를 구성하는 모든 응용 프로그램을 위해서 자원의 사용을 조정하는 일을 한다. NM(NodeManager)는 각 노드에 설치가 되서 컨테이너와 컨네이터가 사용하는 자원(cpu, memory, disk, netwok)을 모니터링해서 RM에 리포팅 하는 일을 하는 에이전트 프로그램이다.
이 책의 목표는 컴퓨터 과학자처럼 생각하는 법을 가르치는 것이다. 이 사고 방식은 수학, 엔지니어링 자연과자들이 어떻게 세상을 바라보고 문제를 푸는지에 대한 것이다. 수학자와 마찬가지로 컴퓨터 과학자들은 특정 언어를 이용해서 자신의 아이디어(특히 계산)를 표현하고 다른 컴퓨터 과학자들과 공유한다. 또한 엔지니어와 마찬가지로 어떤 것을 디자인하고, 단위 구성요소들을 만들고 이것들을 조립해서 어떤 시스템을 만들어 낸다. 때때로(혹은 많은 경우) 이미 만들어진 구성물들을 가져와서 균형있게 조립해서 새로운 시스템을 만들기도 한다. 과학자와 마찬가지로 그들은 복잡한 시스템의 동작을 관찰하고, 가설을 세우고 결과를 예측한다.
값(Value)은 숫자나 문자로 프로그램의 가장 기본이 되는 요소다. 지금까지 우리가 본 값은 1,2와 "Hello, World!"다.이 값들은 각각 고유한 타입을 가진다. 예를 들어 1,2와 같은 숫자는 integer 이고 "Hello, World!"와 같은 문자열은 string 타입에 해당된다. 개발자와 인터프리터는 따움표로 묶여 있는 것을 보고, string 타입의 값인지를 알 수 있다. 어떤 경우에는 인터프리터가 값의 타입을 알려주기도 한다. 인터프리터가 개발자에게 값의 타입을 알려주는 것은 파이선 언어의 특징이다. C, C++ 같은 언어들은 개발자가 값의 타입을 명확히 결정해서 (인터프리터 혹은 컴파일러)에게 알려줘야만 한다.
그동안 다양한 파이선 내장 타입을 사용해왔다. 이제 새로운 타입을 만들 차례다. 2차원 공간에 점을 표시하는 Point 라는 유형을 만들어보자.수학에서 점의 위치는 주로 좌표로 나타낸다. 예를 들어 (0,0)은 원점을 나타내며 (x,y)는 원점에서 오른쪽으로 x, 위쪽으로 y의 위치에 있다는 것을 나타낸다.파이선에서 point를 표현하는 몇 가지 방법들이 있다. 1. 좌표를 두개의 변수 x, y에 저장 한다.
44 POSTS HERE
Lyft
Lyft는 미국 센프란시스코에 본사를 둔 교통 네트워크 회사로, 미국 200개 도시에서 운영되고 있다. Lyft 모바일 응용 프로그램을 이용해서 자동차 운송을 요청할 수 있는 Lyft 소프트웨어를 개발해서 운영하고 있다. 또한 운전자는 음식을 배달하거나 승객을 수송함으로써 수입을 얻을 수 있다. 승객은 iOS 혹은 안드로이드 기반의 Lyft 앱을 다운로드 해서 가입 후 사용해야 한다. 이때 유효한 전화번호를 입력하고 결제 방법(신용 카드, Google Wallet 혹은 페이팔 계정)이 필요하다. 승객은 근처의 운전자에게 탑승을 요청 할 수 있다. 운전자가 확인되면, 앱은 운전자의 이름, 과거 승객에 의한 등급, 운전자와 차의 사진을 보여준다. 여기에 더해서 운전자와 승객은 자신의 고향, 음악 선호도 등 개인 정보를 오픈하도록 권장 할 수 있다. 이 정보는 운전자와 승객이 커뮤니케이션 하는데 도움을 줄 것이다. 미션(운송)이 끝나면, 비용을 지불하게 되고 팁을 제공 할 수도 있다.
Hadoop
Hadoop쪽은 관심 밖이였다. 딱히 사용해야 할 일이 없어서였다. 요즘 데이터 수집/처리 쪽 업무를 하게 되면서, 자연스럽게 하둡을 봐야하게 생겼다. 실제 써먹는 걸 목표로 실용적 관점에서 접근하려 한다.가장 유명한 아파치(Apache) 프로젝트 중 하나일 것이다. 안정적이고 확장 가능한 분산 컴퓨팅 구축을 위한 오픈 소스 소프트웨어다. 주요 모듈은 아래와 같다. Hadoop YARN Hadoop MapReduce
Hadoop 설치
하둡은 3가지 설치모드가 있다. 1. Standalone 1. Pseudo distributed 1. Full distributed 버츄얼박스(VirtualBox)를 이용해서 Full distirubed 모드로 설치하기로 했다.하둡 설치환경은 아래와 같다. 호스트 운영체제 VirtualBox 5.1.6 게스트 운영체제 $ sudo apt-get install default-jdk$ javac -versionssh와 rsync를 설치한다.$ sudo apt-get install ssh rsync에서 2.7.3을 다운로드 했다. 링크를 클릭하면 다운로드 사이트 목록이 나온다. wget을 이용해서 다운로드 했다. 하둡은 /usr/local/haddop 디렉토리에 설치하기로 했다.
HDFS
를 끝냈다고 가정하고 진행한다.대량의 데이터를 HDFS에 저장한 다음, 맵리듀스를 이용 HDFS로 부터 데이터를 읽어서 처리하는게 하둡의 기본 기능이다. 다른 다양한 소프트웨어들은 이 두개의 핵심기능의 응용들이다. HDFS(Hadoop distributed file system)은 확장성 및 뛰어난 이식성을 가진 자바 기반의 분산 파일 시스템이다. POSIX와 호환되지 않는 단점이 있기는 하지만 다른 파일 시스템과 비슷한 쉘 명령과 자바 API를 제공한다. 하둡 클러스터는 명목상으로 하나의 namenode와 하나의 datanode를 가지고 있지만, 그 중요도 때문에 중복해서 구성 할 수 있다. 각 데이타노드는 HDFS를 위한 블럭 프로토콜을 이용해서 네트워크를 통해서 데이터 블럭을 서비스한다. 파일 시스템 통신으로는 TCP/IP 소켓을 사용한다. 클라이언트들은 RPC를 이용해서 서로 통신한다.
YARN
YARN은 HDFS와 함께 하둡의 가장 중요한 구성요소다. YARN은 자원관리, 작업의 스케쥴링과 모니터링의 기능을 가진 별도의 데몬이다. 일종의 분산 커널이라고 볼 수 있다. 기본 아이디어는 RM(ResourceManager)과 애플리케이션별로 AM(ApplicationMater)을 구성하는 거다.RM은 하둡 클러스터를 구성하는 모든 응용 프로그램을 위해서 자원의 사용을 조정하는 일을 한다. NM(NodeManager)는 각 노드에 설치가 되서 컨테이너와 컨네이터가 사용하는 자원(cpu, memory, disk, netwok)을 모니터링해서 RM에 리포팅 하는 일을 하는 에이전트 프로그램이다.
Python
손떼고 있던 파이썬을 다시 시작한다.
Think Python
원문 원저자 라이센스 1. 1. 1. 1. Interface 인터페이스 디자인 1. Conditionals Conditionals 과 재귀 1. Fruitful Fruitful functions 1. Iteration 이터레이션 1. Strings 스트링 1. wordplay wordplay 예제 1. list 리스트 1. 1. tuples 튜플 1. dataStructure 데이터 스트럭처 1. files 파일 다루기 1. 1.
프로그램의 길
이 책의 목표는 컴퓨터 과학자처럼 생각하는 법을 가르치는 것이다. 이 사고 방식은 수학, 엔지니어링 자연과자들이 어떻게 세상을 바라보고 문제를 푸는지에 대한 것이다. 수학자와 마찬가지로 컴퓨터 과학자들은 특정 언어를 이용해서 자신의 아이디어(특히 계산)를 표현하고 다른 컴퓨터 과학자들과 공유한다. 또한 엔지니어와 마찬가지로 어떤 것을 디자인하고, 단위 구성요소들을 만들고 이것들을 조립해서 어떤 시스템을 만들어 낸다. 때때로(혹은 많은 경우) 이미 만들어진 구성물들을 가져와서 균형있게 조립해서 새로운 시스템을 만들기도 한다. 과학자와 마찬가지로 그들은 복잡한 시스템의 동작을 관찰하고, 가설을 세우고 결과를 예측한다.
VAriables, expressions and statements
값(Value)은 숫자나 문자로 프로그램의 가장 기본이 되는 요소다. 지금까지 우리가 본 값은 1,2와 "Hello, World!"다.이 값들은 각각 고유한 타입을 가진다. 예를 들어 1,2와 같은 숫자는 integer 이고 "Hello, World!"와 같은 문자열은 string 타입에 해당된다. 개발자와 인터프리터는 따움표로 묶여 있는 것을 보고, string 타입의 값인지를 알 수 있다. 어떤 경우에는 인터프리터가 값의 타입을 알려주기도 한다. 인터프리터가 개발자에게 값의 타입을 알려주는 것은 파이선 언어의 특징이다. C, C++ 같은 언어들은 개발자가 값의 타입을 명확히 결정해서 (인터프리터 혹은 컴파일러)에게 알려줘야만 한다.
클래스와 객체
그동안 다양한 파이선 내장 타입을 사용해왔다. 이제 새로운 타입을 만들 차례다. 2차원 공간에 점을 표시하는 Point 라는 유형을 만들어보자.수학에서 점의 위치는 주로 좌표로 나타낸다. 예를 들어 (0,0)은 원점을 나타내며 (x,y)는 원점에서 오른쪽으로 x, 위쪽으로 y의 위치에 있다는 것을 나타낸다.파이선에서 point를 표현하는 몇 가지 방법들이 있다. 1. 좌표를 두개의 변수 x, y에 저장 한다.