티스토리 뷰
실은 이것보다도 더 큰 이유는 몇일동안 Hadoop을 공부하면서 왜 서버를 내렸다 올리면 HDFS가 실행이 안 될까? 하는 의문을 가졌기 때문이다. 구글링을 해보고 책을 봐도 특별한 해답이 보이질 않았는데, 오늘 드디어 그 비밀을 알아냈다.
하둡 설치 폴더에서 hadoop을 보면 hadoop은 스크립트 파일이다. 특정 언어로 프로그래밍한 것이 아니라, 단순한 Linux Shell Script 라는 것이다. hadoop 명령을 그냥 치면 다음과 같이 hadoop 명령어들이 나오는데, 해답은 저 명령어 안에 있었다.
그래서 오늘은 hadoop 명령어들을 한번 정리해 보도록 하겠다.
Usage: hadoop [--config confdir] COMMAND
where COMMAND is one of:
namenode -format format the DFS filesystem
secondarynamenode run the DFS secondary namenode
namenode run the DFS namenode
datanode run a DFS datanode
dfsadmin run a DFS admin client
mradmin run a Map-Reduce admin client
fsck run a DFS filesystem checking utility
fs run a generic filesystem user client
balancer run a cluster balancing utility
fetchdt fetch a delegation token from the NameNode
jobtracker run the MapReduce job Tracker node
pipes run a Pipes job
tasktracker run a MapReduce task Tracker node
historyserver run job history servers as a standalone daemon
job manipulate MapReduce jobs
queue get information regarding JobQueues
version print the version
jar <jar> run a jar file
distcp <srcurl> <desturl> copy file or directories recursively
archive -archiveName NAME -p <parent path> <src>* <dest> create a hadoop archive
classpath prints the class path needed to get the
Hadoop jar and the required libraries
daemonlog get/set the log level for each daemon
or
CLASSNAME run the class named CLASSNAME
Most commands print help when invoked w/o parameters.
그림과 함께 보도록 하자. 우리의 이해를 더 높여줄 것이다.
아래 그림은 http://hadoop.apache.org 에 있는 HDFS 아키텍처이다.
hadoop namenode -format
말 그대로 namenode을 포맷한다. hadoop은 기본적으로 namenode라는 저장공간을 가지고 있으며, 그곳에 디렉토리를 생성하기도 하고, 파일을 업로드하기도 한다. 그런데 이 명령어를 실행하면 namenode 안의 모든 내용들이 삭제된다. 그러니 처음 Hadoop을 설치했을때만 사용해야 한다.
hadoop secondarynamenode
하둡은 분산파일 시스템이라고 했다. namenode가 하나만 존재할리가 없다. master 에 존재하는 namenode 말고,
그외의 slave 에 존재하는 namenode를 클라이언트가 접속해 사용할 수 있도록 Running 시킨다.
hadoop namenode
아래 분석이 내용이 틀리다는 사실을 오늘 알아냈다. namenode 포맷을 하면 /tmp 폴더에 hadoop namenode가 생성이 되는데 이 폴더는 서버를 내렸다가 올리면 사라진다. 그러므로 서버를 shutdown시키면 안되는 것이다.
이 namenode 명령어는 namenode를 Running 시키는 명령어인데, start-all.sh나 start-dfs.sh를 실행하면 자동으로 함께 실행된다. 전에 서버를 내렸다가 올렸을때 namenode가 실행되지 않은 이유는 namenode 폴더가 없었기 때문이였다.
서버를 내렸다가 올리면 hdfs가 실행이 되지 않는 이유는 바로 이 명령어 때문이였다.
서버를 재시작 했을 경우에는 namenode가 서버가 종료되면서 같이 종료가 되는지 서버를 시작하면 자동으로 올라오지 않는다. 그렇기 때문에 이 명령어를 실행시켜 꼭 master server의 namenode을 Running 시켜줘야 한다. 이 명령어가 바로 그 명령어다.
hadoop datanode
이 명령어는 실 데이터를 저장하는 datanode를 Running 시키는 명령어이다. 이 명령어는 start-all.sh나 start-dfs.sh를 실행하면 자동으로 실행이 된다.
hadoop dfsadmin
dfsadmin은 DFS Admin Web UI에서 확인할 수 있는 내용들을 linux command로 hdfs server 정보를 확인할 수 있는 명령어이다. 이 명령어에는 다양한 옵션들이 존재하는데 요건 다음 번 포스팅에서 작성하도록 하겠다.
hadoop mradmin
mradmin 명령어는 Service, Queues, UserGroup, SuperUserGroup, Node등의 정보를 다시 refresh 하는 기능들로 구성이 되어 있다.
hadoop fsck
fsck 명령어는 DFS filesystem을 체킹할 수 있는 Utility인데, 해당 Path의 파일을 move하거나 삭제, 파일 목록을 확인하는 등등의 7가지 관련 옵션들이 존재한다.
hadoop fs
우리가 가장 많이 사용하는 명령어가 바로 이 fs 명령어일 것이다. fs 명령어는 파일에 대한 모든 system 명령어를 제공한다.
그래서, 명령어 설명도 제일 잘 되어 있다. 그러므로 여기서는 설명을 생략하도록 하겠다.
o Hadoop Shell Commands : http://hadoop.apache.org/common/docs/r0.17.2/hdfs_shell.html
o Hadoop 파일시스템 명령어 정리 : http://blog.acronym.co.kr/370
hadoop balancer
이 명령어는 hadoop cluster간의 balancing을 맞추기 위한 명령어이다.
hadoop fetchdt
fetchdt 명령어는 NameNode로부터 delegation 토큰 파일을 회수한다. 사전에는 delegation이 대표단, 파견단 이런 뜻으로 나오는데 대표 토큰 파일을 말하는것인지도 모르겠다.
hadoop jobtracker
MapReduce job Tracker node를 Running 시키는 명령어로 start-all.sh 나 start-mapred.sh 를 실행하면 자동으로 실행된다.
hadoop pipes
이 명령어는 Job을 실행시키기 위해 directory path나 jar file, java class file 등을 연결시켜 주는 명령어이다. pipes 명령어에는 이와 관련된 10개의 옵션들이 있다.
hadoop tasktracker
MapReduce task Tracker node를 Running 시키는 명령어로 start-all.sh 나 start-mapred.sh 를 실행하면 자동으로 실행된다.
hadoop historyserver
standalone 데몬의 history server를 Running 시키는 명령어인데 이 명령어 역시 start-all.sh나 start-mapred.sh를 실행하면 자동으로 실행된다.
hadoop job
현재 실행되고 있는 mapreduce job의 상태를 확인한다든가 kill 시킨다든가 job list를 확인할 때 쓰는 명령어로 관련 옵션이 13개의 command 옵션이 존재한다.
hadoop queue
job을 실행할때 사용하는 queue의 정보를 조회해 온다.
hadoop version
hadoop version은 버전 정보를 보여준다.
hadoop jar <jar>
우리가 자바로 프로그래밍한 jar 파일을 실행할 때 사용하는 명령어이다.
hadoop distcp <srcurl> <desturl>
hdfs://A:8020/user/foo/bar 식으로 생긴 srcurl에서 desturl로 파일을 복사하는 기능인데 목적지 URL로 Overwrite 할 수 있으며, 삭제도 할 수 있다. 이외에도 다양한 옵션들이 존재한다.
hadoop archive -archiveName NAME -p <parent path> <src>* <dest>
이 명령어 좀 복잡한데 하둡의 아카이브를 생성하는 명령어란다.
hadoop classpath
하둡에 설정되어 있는 관련 클래스패스들을 보여준다.
hadoop daemonlog
이건 하둡의 데몬의 log을 남길때 log 레벨을 설정하거나 정보를 확인할 수 있다.
hadoop CLASSNAME
이 명령어는 자바로 프로그래밍한 자바 클래스 파일을 실행시켜준다고 했는데 잘 안된다. 오류가 발생한다. 요건 나도 잘 모르겠다. 이걸 어떻게 실행하는건지 알아냈다. 다음번 포스팅에서 그 비밀을 알려주도록 하겠다.
이상으로 23개의 Hadoop 명령어를 살펴보았다. 제일 좋은건 이렇게 남이 써 놓은 글만 보지 말고 직접 실행해 보고 눈으로 확인해 보길 바란다. 그렇지 않으면 내것이 되지 않기 때문이다.
'Cloud' 카테고리의 다른 글
Putty를 활용한 Ubuntu VM Instance 접근하기 (0) | 2012.10.09 |
---|---|
Hadoop HDFS 사용자 생성 파일 테스트 (0) | 2012.09.10 |
Stand-Alone Hadoop 환경설정 (2) | 2012.08.27 |
VM Ubuntu에 Hadoop(Stand-Alone) 설치하기 (2) | 2012.08.23 |
홈클라우드가 관심 가져야 할 Dirty Electricity에 대해 (0) | 2012.08.08 |
- Total
- Today
- Yesterday
- 네트워크
- 우분투
- 레드햇
- Redhat
- 김미경
- 파이썬
- cpu
- command
- sdn
- 쿠버네티스
- install
- neutron
- NOVA
- 하둡
- Network
- 후기
- 오픈스택
- 명령어
- 클라우드
- Java
- OVN
- 오픈쉬프트
- 컨테이너
- ubuntu
- openstack
- 설치
- 뉴트론
- Python
- 세미나
- Swift
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |