728x90
반응형

하둡 에코시스템 7

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

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

스파크 튜토리얼 - (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..

728x90
반응형