Hive에서 하둡(dfs)명령 실행

 

·       Version : Hive

 

하이브(Hive)에서 하둡(dfs) 명령을 수행할 있다. 하이브에서 하둡 명령어를 사용하는 방법은 dfs 사용하고 마지막에 세미콜론(;) 입력한다.

dfs -ls /;

 

 

하이브에서 dfs 명령을 사용하는것이 배시쉘에서 hadoop dfs 동일한 명령을 사용하는것보다 효율적이다. 하이브는 현재 프로세스에서 명령을 수행하는 반면, 배시쉘을 사용할때에는 새로운 jvm 인스턴스를 구동하여 명령을 실행하기 때문이다. 아래와 같이 -help 사용하면 dfs에서 제공하는 도움말을 있다.

 

 

 

 

 

2020-05-18 / Sungwook Kang / http://sungwookkang.com

 

 

Hadoop, Big Data, 하둡, 빅데이터, 데이터분석, Hive, 하이브, 하둡 쿼리, 하이브쿼리, hive query

'SW Engineering > Hadoop' 카테고리의 다른 글

Hive에서 하둡(dfs)명령 실행  (0) 2020.05.19
ZooKeeper 옵저버와 CLI  (0) 2020.05.19
Hive에서 쉘 명령 실행  (0) 2020.05.18
ZooKeeper 클라이언트 요청 처리  (0) 2020.05.18
ZooKeeper 멀티 서버 구성  (0) 2020.05.17
ZooKeeper 리더선출과 데이터 ACID 정책  (0) 2020.05.14

ZooKeeper 옵저버와 CLI

 

·       Version : Zookeeper

 

주키퍼는 리더가 모든 서버에 쓰기 요청을 보내고 과반수 이상의 응답을 받은 처리한다. 주키퍼 서버에 연결되는 클라이언트수가 많으면, 서버를 확장하여 읽기에 대한 부하분산이 가능하다. 하지만 서버가 늘어날 경우, 쓰기 연산 발생시 전체 서버에 대해서 응답을 기다려야 하기 때문에, 그만큼 성능 저하가 발생할 있다. 이러한 문제를 해결하기위해 옵저버 개념이 도입되었다.

옵저버는 투표에 참여하지 않는 서버를 뜻한다. 리더는 쓰기 요청을 받고 서버로 쓰기에 대한 응답을 보내고 받을때, 옵저버 서버에는 보내지 않는다. 그리고 일반 서버의 투표에 의한 정상 처리인 경우, 쓰기 요청을 옵저버로 보내 옵저버의 로컬 메모리에 데이터를 기록한다. 서버가 옵저버로 동작하게 하려면 옵저버 서버의 환경설정에 아래와 같은 값을 입력한다.

peerType=observer

 

그리고 모든 서버의 환경 설정에 옵저버 서버의 정보를 추가하여 투표 요청을 하지 않도록 한다. 아래 예시는 192.168.0.2 서버가 observer 서버라는 정보를 환경 설정에 등록한 것이다.

Server.1:192.168.0.2:2181:3181:observer

 

주키퍼는 CLI(Command Lind Interface)기반의 프로그램을 제공한다. 클라이언트 쉘을 실행하려면 아래와 같은 명령을 입력 한다.

bin.zkCli.sh ?server 127.0.0.1:2181

 

아래표는 CLI 명령어와 설명이다.

command

Description

connect host:port

주키퍼 서버에 접속한다.

get path

노드에 저장된 데이터를 보여준다.

ls path

노드의 자식 노드 목록을 조회한다.

set path data

노드의 데이터를 수정한다.

delquota [-n|-b] path

노드의 사용 용량 설정 정보를 삭제 한다.

quit

쉘을 종료 한다.

printwatches on|off

와처에서 받은 이벤트 정보를 콘솔에 출력할지 여부를 설정한다.

create [-s][-e] path data acl

노드를 생성한다. -s옵션은 순차노드를 생성, -e 임시노드를 생성한다.

stat path

패스의 상태 정보를 조회한다.

close

주키퍼 접속을 종료한다.

ls2 path

ls stat명령을 동시에 수행시킨 내용을 보여준다.

history

수행한 명령어 목록을 보여준다.

listquota path

패스에 설정된 용량 설정 정보를 보여준다.

setAcl path acl

패스에 권한을 설정한다.

getAcl path

패스의 ACL 목록을 조회한다.

sync path

패스에 sync 명령을 보낸다.

redo cmdno

쉘에서 이전에 실행했던 명령을 다시 실행한다.

addauth scheme auth

현재 오픈되어 있는 쉘의 주키퍼 연결에 인증 정보를 추가한다.

delete path

패스를 삭제한다.

 

 

 

2020-05-18 / Sungwook Kang / http://sungwookkang.com

 

 

Hadoop, Big Data, 하둡, 빅데이터, 데이터분석, 주키퍼, Zookeeper, 분산 코디네이션

'SW Engineering > Hadoop' 카테고리의 다른 글

Hive에서 하둡(dfs)명령 실행  (0) 2020.05.19
ZooKeeper 옵저버와 CLI  (0) 2020.05.19
Hive에서 쉘 명령 실행  (0) 2020.05.18
ZooKeeper 클라이언트 요청 처리  (0) 2020.05.18
ZooKeeper 멀티 서버 구성  (0) 2020.05.17
ZooKeeper 리더선출과 데이터 ACID 정책  (0) 2020.05.14

Hive에서 명령 실행

 

·       Version : Hive

 

하이브(Hive)에서 간단한 배시 (bash shell) 명령을 수행할 있다. 더이상 쉘을 수행하기 위해서 하이브 CLI 빠져나갈 필요가 없다. 하이브에서 쉘을 실행하는 방법은 ! 뒤에 명령어를 입력하고, 명령어 마지막에 세미콜론(;) 입력한다. 아래 예시는 간단히 에코로 문자를 반환하는 것과, 현재 경로를 표시한다.

! /bin/echo “Hello”;

! pwd;

 

 

명령을 실행할때, 사용자 입력이 필요한 명령은 실행해서는 안된다. 파이프와 파일 글로빙(globbing) 동작하지 않는다. 예를들어 ! ls *.hql 명령은 *.hql 이름을 가지는 하나의 파일만 찾아줄뿐, .hql 확장자를 가진 모든 파일을 찾아서 보여주지는 않는다.

 

 

2020-05-17 / Sungwook Kang / http://sungwookkang.com

 

 

Hadoop, Big Data, 하둡, 빅데이터, 데이터분석, Hive, 하이브, 하둡 쿼리, 하이브쿼리, hive query

'SW Engineering > Hadoop' 카테고리의 다른 글

Hive에서 하둡(dfs)명령 실행  (0) 2020.05.19
ZooKeeper 옵저버와 CLI  (0) 2020.05.19
Hive에서 쉘 명령 실행  (0) 2020.05.18
ZooKeeper 클라이언트 요청 처리  (0) 2020.05.18
ZooKeeper 멀티 서버 구성  (0) 2020.05.17
ZooKeeper 리더선출과 데이터 ACID 정책  (0) 2020.05.14

ZooKeeper 클라이언트 요청 처리

 

·       Version : Zookeeper

 

주키퍼의 모든 서버는 클라이언트로 부터 읽기, 쓰기 요청을 받을 있다. 읽기 요청은 클라이언트가 접속한 서버의 로컬 데이터를 이용한다. 쓰기 요청을 받은 서버는 리더 서버로 리다이렉트 한다.

 

 

리더는 새로운 트랜잭션아디이(zxid) 생성한 모든 팔로워에게 쓰기 요청을 보낸다. 쓰기 요청을 받은 서버는 자기의 로컬 트랜잭션 로그 파일에 처리 내역을 저장하지만 실제 메모리에는 반영하지 않고, 리더로 ACK 신호를 보낸다. 리더는 과반수 이상의 팔로워로부터 ACK 신호를 받으면 메모리에 반영하라고 하는 커밋 신호를 보낸다. 커밋 신호를 받은 팔로워는 자신의 메모리에 쓰기 요청된 정보를 반영한다. 팔로워 클라이언트로 부터 요청을 받은 서버는 클라이언트로 처리 결과를 보낸다. 아래 그림에서 순서를 쉽게 확인할 있다.

 

 

 

 

주피커는 이벤추얼한 정합성을 가지고 있는데, 동일 데이터에 대해 쓰기나 읽기가 서로 다른 클라이언트에서 서로 다른 주키퍼 서버에 접속하면 읽기 연산을 수행하는 클라이언트에는 반영되기 전의 데이터가 읽혀질 가능성이 크다. 그래서 강한 정합성을 필요로 하는 애플리케이션이나 기능에서는 sync() 메소드를 이용하여 해결할 있다. Sync() 메소드는 파라미터로 전달된 패스에 대해 모든 주키퍼 서버가 처리 중인 쓰기 연산을 로컬 메모리에 모두 반영하는것을 보장하는 메소드다.

 

주키퍼 서버에 장애가 발생하면 클라이언트 측에서는 Disconnected 이벤트가 발생하고, 클라이언트 라이브러리에서는 자동으로 다른 서버로 접속을 시도한다. 주키퍼 클라이언트는 자신이 실행한 최종 트랜잭션 아이디(zxid) 메모리에서 관리한다. 주키퍼 서버는 자신의 트랜잭션아이디보다 값을 가지고 있는 클라이언트의 접속 요청은 거절한다.

 

 

 

2020-05-17 / Sungwook Kang / http://sungwookkang.com

 

 

Hadoop, Big Data, 하둡, 빅데이터, 데이터분석, 주키퍼, Zookeeper, 분산 코디네이션

'SW Engineering > Hadoop' 카테고리의 다른 글

ZooKeeper 옵저버와 CLI  (0) 2020.05.19
Hive에서 쉘 명령 실행  (0) 2020.05.18
ZooKeeper 클라이언트 요청 처리  (0) 2020.05.18
ZooKeeper 멀티 서버 구성  (0) 2020.05.17
ZooKeeper 리더선출과 데이터 ACID 정책  (0) 2020.05.14
Zookeeper 세션(Session)  (0) 2020.05.13

+ Recent posts