728x90
반응형

빅데이터 41

스파크 튜토리얼 - (3) RDD

RDD RDD는 Resilient Distributed Dataset의 약자입니다. 직역하면 탄력 분산 데이터셋이 되겠습니다. 이는 분산되어 존재하는 데이터들의 모임, 즉 클러스터에 분배되어 있는 데이터들을 하나로 관리하는 개념이라고 생각하면 편할 것 같습니다. 스파크의 모든 데이터 타입들은 RDD를 기반으로 만들어져 있고, 데이터끼리의 연산들은 RDD의 연산으로 이루어져 있습니다. RDD는 HDFS의 파일과 같이 변경이 불가능한, 즉 쓰기가 불가능한 데이터입니다. RDD 연산 RDD는 두가지 연산으로 이루어져 있습니다. Transformation Action Transformation 트랜스포메이션은 RDD끼리의 연산입니다. 이전 포스팅에서 사용했던 filter메소드 역시 트랜스포메이션의 일종입니다. ..

스파크 튜토리얼 - (2) 주피터 노트북 설정

주피터 노트북 주피터 노트북은 파이썬을 개발할 때 가장 많이 쓰이는 에디터중 하나일 것입니다. 예전에는 IPython이라고 하는 이름으로 출시가 되었었죠. Python커널을 사용해 짧은 코드를 돌리고 결과를 그 화면에서 바로 볼 수 있고, 마크다운을 사용해 노트나 보고서 형식으로 작성할 수 있어서, 프로토타이핑이나 보고서 형식의 코드 작성에 유용합니다. 주피터 노트북 설정 저는 VirtualBox를 사용하였기 때문에, 외부 접속이 필요해서 다음 설정을 해주었습니다. 먼저 다음 커맨드를 실행해 config파일을 생성해 줍니다. # jupyter notebook --generate-config 그리고 해당 파일을 열어줍니다. # vi ./.jupyter/jupyter_notebook_config.py 아래 ..

스파크 튜토리얼 - (1) 스파크 로컬모드 설치

스파크 아파치 스파크는 하둡 맵리듀스의 단점을 보완하고자 개발된 플랫폼 입니다. 메모리 베이스로 데이터를 처리하기 때문에 파일기반인 하둡보다 빠르고, DAG를 이용한 데이터의 흐름을 먼저 계산하기 때문에 복잡한 계산을 할 때 역시 하둡의 맵리듀스보다 빠른 경우가 많습니다. 환경설정 저는 VirtualBox에 linux OS (CentOS 7)를 별도로 깔아 사용하였습니다. 또한 Python역시 기존 OS에 설치되어있는 3.6버전을 사용하였습니다. 자바 설치 스파크는 JVM기반인 Scala로 만들어져 있습니다. 따라서 스파크에서 무언가를 하려면 Java가 설치되어있어야 합니다. 자바는 다음 링크에서 다운받아 설치해주시면 됩니다. (링크는 java 8버전 입니다.) https://www.oracle.com/..

하둡 2.0 튜토리얼 - (11) 스쿱 데이터 임포트

데이터 저는 지난번 hive 포스팅에서 설정해 두었던 로컬 기기의 MySQL서버를 사용하겠습니다. 그리고 데이터는 하둡 1.0에서 사용했던 carriers.csv파일을 사용합니다. 이 데이터에 관련된 정보는 아래의 포스팅에서 찾아보실 수 있습니다. https://jyoondev.tistory.com/57 carrier.csv파일을 조금 다른식으로 고쳤습니다. 아래 파이썬 스크립트를 이용하면, ","를 모두 지우게 되고, 컬럼 사이를 \t를 사용해 나누게 됩니다. with open("carriers.csv", 'r') as in_file, \ open("carriers_new.csv", 'w') as out_file: for line in in_file.readlines()[1:]: line = line...

하둡 2.0 튜토리얼 - (10) 아파치 스쿱 설치

아파치 스쿱 하이브가 하둡에 있는 파일을 SQL을 사용해 접근하게 해주는 인터페이스 역할을 했다면, 스쿱은 기존에 있던 RDB에서 하둡으로 파일을 끌어오거나 내보내주는 역할을 하는 시스템입니다. 비지니스 로직 측면에서 보면, 하둡과 같은 시스템이 기존에 있던 RDB들에 있는 데이터를 고려를 안할 수가 없기 때문에 RDB에서 데이터를 가져오거나, 하둡에 있는 데이터들과 조인을 해 분석을 하는 측면에서 꼭 필요한 시스템입니다. 스쿱 설치 먼저 스쿱을 설치하기 위해 다음 링크에서 다운로드를 받겠습니다. http://mirror.apache-kr.org/sqoop/1.4.7/sqoop-1.4.7.bin__hadoop-2.6.0.tar.gz > wget http://mirror.apache-kr.org/sqoop..

하둡 2.0 튜토리얼 - (9) 하이브 QL

하이브 QL 하이브는 하둡에 있는 파일(데이터)들을 SQL을 사용해 조회하고 분석할 수 있게 해줍니다. 지난 포스팅에서 설치한 하이브로 기본적인 데이터 조회를 해보도록 하겠습니다. 데이터베이스 만들기 먼저 데이터베이스를 만들어보겠습니다. hive명령어로 실행한 뒤 다음 MySQL을 입력해 항공 데이터베이스를 생성합니다. (테이블에 대한 Comment는 제외했습니다.) hive> CREATE TABLE airline_delay(Year INT, Month INT, DayOfMonth INT, DayOfWeek INT, DepTime INT, CRSDepTime INT, ArrTime INT, CRSArrTime INT, UniqueCarrier STRING, FlightNum INT, TailNum STR..

하둡 2.0 튜토리얼 - (8) 하이브 MySQL 메타스토어

MySQL 메타스토어 MySQL 설치 MySQL설치법은 운영체제마다 다르고, 다른곳에도 자료가 많으니 따로 정리하지 않겠습니다. 저는 호스트 기기에 MySQL을 따로 설치하였습니다. MySQL config 수정 아래 방법은 호스트 기기 리눅스 기준입니다. /etc/mysql/mysql.conf.d/mysqld.cnf 파일을 열어 아래 부분을 수정해줍니다. 이는 localhost를 사용하지 않고 외부 접속을 허용하는 것입니다. (위의 부분 앞에 #를 사용해 주석처리 해준것입니다.) #bind-address = 127.0.0.1 혹시 방화벽에 의해 포트가 막힐수도 있으니, 해당 문제는 포트를 열어 해결해 주시기 바랍니다. 위를 수정하셨으면 mysql을 재시작합니다. > /etc/init.d/mysql res..

하둡 2.0 튜토리얼 - (7) 아파치 하이브 설치

하이브 하둡은 자바 기반으로 되어있습니다. 그리고 파이썬이나 루비와 같은 스크립트 언어로도 접근이 가능합니다. 하지만 보통 데이터를 만지는 사람들은 기존 RDBMS를 만지던 데이터 분석가들이나 DBA에 익숙한 사람들일 것입니다. 이러한 문제 때문에 페이스북에서 하이브를 개발하게 되었고, 지금은 아파치의 정식 프로젝트가 되었습니다. 설치 하이브를 설치해 보도록 하겠습니다. 다음 링크로 설치하거나 아래 wget으로 설치하신 뒤 scp로 doop01기기로 전송하겠습니다. https://archive.apache.org/dist/hive/hive-2.1.1/apache-hive-2.1.1-bin.tar.gz > wget https://archive.apache.org/dist/hive/hive-2.1.1/apa..

하둡 2.0 튜토리얼 - (6) 얀 명령어

Yarn 얀은 하둡 2.0에서 새로 도입된 시스템으로 Yet Another Resource Manager의 약자입니다. 하둡 1.0에서 클러스터의 마스터노드가 모든 기기들의 리소스 관리를 했지만, 이것이 부족하다고 판단되어 개발된 시스템입니다. 또한 하둡 1.0에서의 마스터노드에 장애가 나면 모든 HDFS의 워커노드 및 데이터노드를 사용할 수 없게 되기 때문에 취약점이 발생합니다. 마스터노드의 장애로 인해 모든 시스템이 쓸모 없어져버리는 것을 SPOF (Single Point of Failiure)라고 합니다. 리소스매니저 얀은 리소스매니저라는 시스템을 내부적으로 사용합니다. 리소스매니저는, 또 컨테이너라는 개념을 활용하는데 이 컨테이너는 리소스의 집합체 입니다. 시스템 입장에서의 리소스란 당연히 CPU..

하둡 2.0 튜토리얼 - (5) 워드카운트

하둡 예제 실행 이번 포스팅에서는 하둡에서 기본적으로 제공하는 기본 예제인 워드카운트를 실행해보도록 하겠습니다. 홈디렉토리 생성 먼저 doop계정에 대한 홈 디렉토리를 생성해주겠습니다. 다음 커맨드를 실행해보시면 . 디렉토리가 없다고 나올것입니다. > hdfs dfs -ls 하둡2에서는 계정에 대한 디렉토리를 사용자가 따로 생성해주어야 합니다. 다음 커맨드들을 차례로 실행시커 홈 디렉토리를 만들어주겠습니다. > hdfs dfs -mkdir /home > hdfs dfs -mkdir /home/doop 그리고 다시 -ls 를 실행하면 이제 홈 디렉토리가 생성되었고, 아무 파일/디렉터리가 없기떄문에 아무 로그도 나오지 않을 것입니다. 예제 대상 파일 저장 이제 예제의 대상이 되는 파일을 hdfs로 넣어주겠습..

728x90
반응형