728x90
반응형

빅데이터/하둡 2 11

하둡 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로 넣어주겠습..

하둡 2.0 튜토리얼 - (4) 하둡 실행

하둡 실행 하둡을 실행하기 위해서는 앞서 했던 설정파일들을 오타 없이 잘 작성하셔야 합니다. (저는 한글자 오타 때문에 고생을 많이 했습니다.) 무언가 실행이 잘 되지 않을때는 꼭 로그파일들을 확인하시기 바랍니다. 하둡을 실행하기 위한 프로세스는 다음과 같습니다: 주키퍼 포맷 3개의 저널노드 실행 Active 네임노드 실행 Standby 네임노드 실행 주키퍼 장애 컨트롤러 (zkfc)실행 데이터노드 실행 얀 클러스터 실행 히스토리서버 실행 alias등록 먼저 하둡 실행 및 운영을 위해 미리 편리한 alias들을 등록해두겠습니다. .bashrc 파일을 열어 다음과같은 alias들을 등록해줍니다. alias hadoop="~/hadoop/sbin/hadoop-daemon.sh" alias hdfs="~/ha..

하둡 2.0 튜토리얼 - (3) 하둡 설치

하둡 설치 아래 튜로리얼은 hadoop 1.x와 관련된 파일인 hadoop디렉토리와 hadoop-data디렉토리를 삭제한 뒤 진행됩니다. 하둡 2.7 다운로드 먼저 하둡2의 특정 버전을 다운로드 받겠습니다. 하둡은 이미 3.x이상의 버전이 출시되고 있기 때문에 특정 버전들만 공식적으로 나와있습니다. 우리가 다운로드할 2.7.2버전은 2.7.6버전으로 stable release되어있고 2.7.2버전은 아카이브 되어있습니다. 따라서 아래 링크를 통해 다운받아 주겠습니다. https://archive.apache.org/dist/hadoop/common/hadoop-2.7.2/hadoop-2.7.2.tar.gz 직접 링크로 다운받으셔도 되고 wget명령어를 이용하셔도 됩니다. > wget https://arc..

하둡 2.0 튜토리얼 - (2) 주키퍼 설치

하둡 High Availability 하둡2부터는 High Availability (이하 HA)라는 용어를 사용합니다. High Availability란 하나의 네임노드와 보조네임노드를 설정하는것이 아닌, 두개의 네임노드를 설정하는 방법입니다. 이는 Active-Stanby방법으로 두번째 네임노드가 Active네임노드에 장애가 생기면, Stanby상태에 있다가 Active한 상태로 되는 방식입니다. 주키퍼 (Zookeeper) 주키퍼는 이 두개의 네임노드를 이용한 HA를 가능하게 하는 분산 코디네이터입니다. 하둡은 주키퍼를 통해 어떤 네임노드가 Active인지 혹은 Stanby인지를 저장합으로서 네임노드들을 관리합니다. 하둡 설정에 의해 주키퍼는 기본적으로 3대가 설정되어 있어야 합니다. 주키퍼 사용자 ..

728x90
반응형