일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- C
- hadoop2
- C언어
- yarn
- 그래프이론
- 주식분석
- 텐서플로
- RNN
- Sort
- LSTM
- 하둡2
- GRU
- scrapy
- 코딩더매트릭스
- 선형대수
- HelloWorld
- NumPy
- collections
- hive
- 파이썬
- effective python
- graph
- 하이브
- 딥러닝
- python
- Java
- 알고리즘
- tensorflow
- recursion
- codingthematrix
- Today
- Total
목록DataBase (26)
EXCELSIOR
맵리듀스로 조인을 구현하려면 몇십 줄의 클래스를 작성해야하지만, 하이브를 이용하면 쿼리문을 통해 간단하게 조인을 할 수 있다.단, 다음의 제약사항이 있다.하이브는 EQ조인만 지원한다. EQ조인은 두 테이블 대상으로 동일성을 비교한 후, 그 결과를 기준으로 조인하는 것이다. 이 조인에서는 조인 서술자로 등호(=)만 사용할 수 있다.하이브는 FROM 절에 테이블 하나만 지정할 수 있고, ON 키워드를 사용해 조인을 처리해야 한다.이번 포스팅에서는 교재에 나와있는대로 하이브의 조인 기능을 사용해 항공 운항 지연 데이터와 항공사 코드 테이블을 조인해 볼 것이다. 먼저, 항공사 코드 데이터를 저장하기 위한 테이블을 생성한다. (항공사 코드 데이터는 http://stat-computing.org/dataexpo/2..
1. 데이터 업로드 하이브는 로컬 파일 시스템에 있는 데이터와 HDFS에 저장도니 데이터를 모두 업로드 할 수 있다. 여기서는 항공운항통계 데이터 파일을 업로드 하겠다. (항공운항데이터는 http://stat-computing.org/dataexpo/2009/에서 다운로드 받을 수 있다.) 하이브 CLI에서 다음과 같이 LOAD DATA를 입력한다. OVERWRITE INTO 절은 중복된 데이터가 있어도 무시하고 입력한다는 의미이다. PARTITION 절은 파티션 키인 delayYear 값을 2008로 설정해 데이터를 입력하는 설정이다. 앞에 포스팅한 글에서 테이블을 생성할 때 파티션을 설정했는데, 데이터를 업로드할 때 PARTITION절을 설정하지 않으면 LOAD DATA 실행 시 오류가 발생한다. h..
1. 하이브QL (HiveQL)하이브는 하이브QL 이라는 SQL문과 유사한 언어를 제공한다. 대부분의 기능은 SQL과 유사하지만 다음과 같은 차이점이 있다.하이브에서 사용하는 데이터가 HDFS에 저장되는데, HDFS가 한 번 저장한 파일은 수정할 수 없기 때문에 UPDATE와 DELETE는 사용할 수 없다. 또한, INSERT도 비어 있는 테이블에 입력하거나 이미 입력된 데이터를 덮어 쓰는 경우에만 가능하다. 따라서 하이브QL은 "INSERT OVERWRITE"라는 키워드를 사용한다.SQL은 어떠한 절에서도 서브쿼리를 사용할 수 있지만 하이브QL은 FROM 절에서만 서브 쿼리를 사용할 수 있다.SQL의 뷰는 업데이트할 수 있고, 구체화된 뷰 또는 비구체화된 뷰를 지원하지만 하이브QL의 뷰는 읽기 전용이며..
1. 하이브 페이스 북에서 개발한 하이브는 하둡에 저장된 데이터를 쉽게 처리할 수 있는 데이터웨어하우스(DW) 패키지 이다. 1)하이브 아키텍처하이브의 클라이언트는 커맨드 라인 인터페이스(Command Line Interface: CLI), 하이브 서버, 웹 인터페이스로 구성된다. 하이브 서버의 경우 JDBC, ODBC, 쓰리프트로 개발된 클라이언트가 하이브 서비스를 이용할 수 있게 쓰리프트 서비스를 제공한다.하이브는 메타스토어(Metastore)라는 저장소를 만들어 하둡에서 처리된 메타데이터의 구조를 메타스토어에 저장한다. 하이브는 오라클, MySQL 등 JDBC를 지원하는 모든 데이터베이스를 이용해 메타스토어를 구축할 수 있다. 드라이버는 사용자가 입력한 하이브QL문을 해석한다. 하둡과 연결되어 하이..
1. HDFS에 파일 저장하기/usr/local/hadoop2/에 있는 'NOTICE.txt' 파일을 HDFS에 저장한다. 하둡2는 하둡1과는 달리 /user 디렉터리도 관리자가 직접 생성해야 한다. hadoop 명령어의 fsshell은 사용 중지됐기 때문에 hdfs의 dfs 옵션을 이용한다. bin/hdfs dfs -mkdir /user bin/hdfs dfs -mkdir /user/root ## 반드시 /user/xxxx root -> conf 디렉터리 생성 bin/hdfs dfs -put NOTICE.txt /user/root/conf ## NOTICE.txt 파일 저장 2. wordcount 예제실행 #입력값은 conf/ 출력값은 output폴더(자동생성)에 저장 bin/yarn jar share..
1. 프로토콜 버퍼 설치 (Protocol Buffer) : 프로토콜 버퍼는 데이터를 연속된 비트로 만들고, 이렇게 만들어진 비트를 해석해 원래의 데이터를 만들 수도 있ㄷ. 현재 다양한 시스템이 이기종 혹은 내부 프로세스 간의 통신에 프로토콜 버퍼를 사용하고 있으며, 하둡2도 내부 데몬 간의 데이터 통신을 위해 프로토콜 버퍼를 적용했다. 하둡2에서 사용하는 프로토콜 버퍼 버전은 protobuf-2.5.0이다. 프로토콜 버퍼는 버전 간의 상호호환성을 지원하지 않으므로 다른 버전을 설치하지 않도록 주의해야 한다. 설치 파일을 내려받은 뒤 (/usr/local 디렉터리에 다운받았다고 가정) cd /usr/local tar xvfz protobuf-2.5.0.tar.gz cd protobuf-2.5.0 ./co..
1. 하둡1 - 네임노드의 문제점1) 네임노드가 정상적으로 동작하지 않을 경우 모든 클라이언트가 HDFS에 접근할 수 없다. 2) 네임노드의 파일 시스템 이미지에 문제가 생길 경우에도 HDFS에 저장된 데이터를 조회할 수 없다. 파일 시스템 이미지에 HDFS의 디렉터리 구조와 파일 위치가 모두 보관돼 있어서 이정보가 유실될 경우 블록에 접근하기 위한 통로가 없어지기 때문이다. 3) 네미노드의 에디트로그에 문제가 생길경우에도 데이터가 유실될 확률이 높다. 네임노드는 HDFS에 대한 데이터 갱신 내역을 에디트로그에 저장하고, 파일 시스템 이미지를 메모리에서 관리한다. 그리고 보조네임노드는 체크포인팅 작업을 통해 에디트로그를 파일 시스템 이미지에 갱신한다. 2. 하둡2 - 네임노드 HA1) 저널노드HDFS에 ..
1. 얀(YARN)의 등장배경 - YARN = Yet Another Resource Negotiator 이다. 이를 번역하면 "(또 다른) 리소스 협상가"라고 할 수 있다. ① 맵리듀스의 단일 고장점(Single Point of Failure, SPOF)잡트래커는 모든 맵리듀스 잡의 실행 요청을 받고, 전체 잡의 스케줄링 관리와 리소스 관리를 담당한다. 그래서 클라이언트가 맵리듀스 잡을 실 행하려면 반드시 잡트래커가 실행 중이어야 하며, 태스크트래커가 실행 중이라도 잡 트래커가 돌아가고 있지 않다면 맵리듀스 잡 실행이 불가능하다. ② 잡트래커의 메모리 이슈잡트래커는 메모리 상에 전체 잡의 실행정보를 유지하고, 이를 맵리듀스 잡 관리에 활용한다. 이렇게 메모리에 많은 정보를 유지하다 보니 잡트래커도 자연스..