일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- graph
- HelloWorld
- tensorflow
- python
- hadoop2
- scrapy
- C
- NumPy
- 알고리즘
- LSTM
- 텐서플로
- 파이썬
- GRU
- 선형대수
- hive
- C언어
- 주식분석
- effective python
- recursion
- 딥러닝
- Sort
- collections
- 하둡2
- 코딩더매트릭스
- Java
- yarn
- 그래프이론
- 하이브
- RNN
- codingthematrix
- Today
- Total
목록하둡2 (7)
EXCELSIOR
이번 포스팅에서는 하둡2를 완전 분산 모드로 설치하면서 네임노드 HA를 구성해본다. 우선 완전분산모드로 설치하기 위해서는 최소 3대이상의 서버가 필요하다. 그 이유는 네임노드 HA 구성에 필요한 저널노드가 적어도 3대 이상의 서버에서 실행돼야 하기 때문이다. 다행히 최근에 VirtualBox에다가 CentOS 7을 설치하고 연결하는 것을 다른팀 분한테 배워서 Ubuntu 1대, CentOS 3대 총 4대의 서버를 구성했다. VirtualBox에 가상머신 설치는 다음에 포스팅 하겠다. 위 네 대의 서버는 JDK 설치, hadoop 실행 계정 생성, SSh 인증과 같은 기본적인 환경설정이 완료돼 있어야 한다. 1. 하둡 실행 계정 생성root 계정으로 하둡을 설치할 수 있지만(실은 이때까지 root계정으로 ..
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. 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)잡트래커는 모든 맵리듀스 잡의 실행 요청을 받고, 전체 잡의 스케줄링 관리와 리소스 관리를 담당한다. 그래서 클라이언트가 맵리듀스 잡을 실 행하려면 반드시 잡트래커가 실행 중이어야 하며, 태스크트래커가 실행 중이라도 잡 트래커가 돌아가고 있지 않다면 맵리듀스 잡 실행이 불가능하다. ② 잡트래커의 메모리 이슈잡트래커는 메모리 상에 전체 잡의 실행정보를 유지하고, 이를 맵리듀스 잡 관리에 활용한다. 이렇게 메모리에 많은 정보를 유지하다 보니 잡트래커도 자연스..