본문 바로가기

HaDoop...?

[정리중] HDFS block 생성 mehod 순서 HDFS에서 파일을 업로드 할 때(hadoop fs -copyFromLocal [src] [dst]) 내부적으로 어떻게 움직이는지 공부하고 있다.오늘 공부한 목록까지 정리한다. 일단. 말은 정리가 안 됐지만 필기한 자료를 적어보면..HDFS에 File추가시(업로드) Log에 보이는데 이때 실행되는 method(이하 함수)는 FSNamesystem.class에 있는 allocateBlock() 이다. 이 함수는 같은 클래스인 getAdditionalBlock() 함수에서 불려진다. getAddionalBlock() 함수는 NameNode.class에 있는 addBlock() 함수에서 사용한다. addBlock()은 DFSClient.class에 있는 locateFollowingBLock() 함수에서 사용한.. 더보기
hbase 설치 성공. 과 DFSClient: No node available for block 에러 확인 드디어 성공.. 좌측은 hadoop 우측은 hbase 구동 순서. 1. hadoop(hdfs,mapreduce) 2. zookeeper 3. hbase hbase 구동시 에러발생. LOG를 보니 DFSClient: No node available for block: file=/hbase/hbase.version 그리고 hbase 프로그램이 죽는다. 하지만 jps쳐보면 프로세스는 살아있다. 하나씩 종료를 시킨다. bin 안에 stop-hbase.sh 로 끄면 regionserver들이 안 꺼진다. 그리고 가끔 master가 ......... 하면서 hbase 안 꺼질때가 있다. 하지만 LOG를 보면 스레드는 종료시켰다. 마스터 끄는 방법 : hbase-damon.sh stop master regionser.. 더보기
HADOOP 프로그래밍!(2) 저번 게시물에서 xml 을 대충(?) 살펴보았다.이번에는 본격적으로 build.xml을 만들어 보겠다! build.xml에서 여러 가지 일을 수행한다. 다운도 받고 뭐도 하고 뭐도 하고.. 그 중 필요한 것만.. 실은 아는 것만 코드로 만들 것이다. 우리가 원하는 hdfs.jar 을 만들기 위해 필요한 과정을 살펴보겠다. 1. 초기화 ( 디렉터리 생성 ) 2. classpath 설정3. java 컴파일4. .jar 만들기이 정도다. 우선 큰 틀을 만들자vim build.xml 만들었으면 :w 저장한 번 하고!굳이 설명할 필요가 없겠지만 간단하게 보면 프로젝트 이름은 hadoop이고 ant 명령을 실행했을 때 기본적으로 실행되는 target name은 "compile" 이라는 target이 실행된다. 그리.. 더보기
HADOOP 프로그래밍! 제목이 좀 이상하다.음 일단 정리를 하자면하둡에서 HDFS 와 Map/Reduce 는 HADOOP_HOME(이하 HH) 밑에 hadoop-version-core.jar 파일 안에 같이 있다.그림으로 보면 이렇게 말이다. hadoop-version-core.jar 안에는 Map/Reduce인 JobTracker, TaskTracker 프로그램과 HDFS의 NameNode, DataNode 가 있는 것이다. ( 정확히 말하면 HDFS 안에는 세컨트 네임노드도 있지만.. )그래서 Map/Reduce 가 필요없는 시스템이면 자원낭비일 수 있다. 그래서 저 두 개를 나누는 컴파일 작업을 했다. 고로 hadoop-version-HDFS.jar 를 만드는 것이다! 물론 문제를 잡자면. 기껏 분리해도 몇 MB가 줄어드.. 더보기
INFO org.apache.hadoop.ipc.RPC: Server at namenode1/(IP):(port) not available yet, Zzzzz... 호롤롤롤롤롤롤롤롤롤롤롤로~ 멘붕이 오는구나 얼쑤 풍악을 울려라! 개객기 같은 아오우분투 진짜 싫다 너무 싫다 진짜로 싫다. - 해결만 보려면 맨밑. Hadoop 멀티 환경을 구축했다. 버츄얼 말고 리얼로 4대 가지고.OS는 Ubuntu 10.03이고 nameenode 1대datanode 3대 start-dfs.sh 을 실행시킨다.잘돌아간다!namenode에서도 jps로 NN 뜨고 (세컨드NN도 뜨고)datanode 들 에서도 jps로 DN가 뜬다! 잘 떠 !!근데 !! hadoop dfsadmin -report를 하면 안나온다.. node도 뭐도.. 어떻게?? 이렇게 hadoop dfsadmin -reportConfigured Capacity: 0 (0 GB)Present Capacity: 0 (0 GB.. 더보기
Hadoop 코딩 환경 설정 및 hadoop 컴파일 해보기 JDK와 ANT를 모두 설치하였다. 물론 Hadoop도 설치 된 상태이다.혹시 설치를 못 했을 경우http://gh0stsp1der.tistory.com/63 참고 1. hadoop 코딩 환경 설정.ctags 와 cscope를 통해 hadoop에서 메소드가 어디로 호출되는지 알 수 있다. ctags , cscope 설치yum -y install ctagsyum -y install cscopeOK 소스 디렉토리로 이동cd hadoop/src ctags -Rfind ./ -name *.java > cscope.filescscope (cscope 실행) 영어에 한계가 있기 때문에 Find this C symbol : ctags와 마찬가지로 C 심볼(변수, 함수, 매크로, 구조체)들을 찾는다.Find this .. 더보기
JDK, ANT 설치 Hadoop의 소스를 고치고 컴파일 하려면 JDK와 ANT가 필요하다.JDK 설치 방법. 1. JDK 다운로드 (필자는 JDK_6 version 사용)http://www.oracle.com/technetwork/java/javase/downloads/jdk6-downloads-1637591.html -> Linux 버전에 맞는 파일 다운 (필자는 jdk-6u33-linux-x64.bin 다운) 파일 이동mv /root/Desktop/jdk-6u33-linux-x64.bin /usr/local/ 권한 부여chmod 755 jdk-6u33-linux-x64.bin 설치./jdk-6u33-linux-x64.bin 설치중...Java(TM) SE Development Kit 6 successfully insta.. 더보기
hadoop test중 문제점 문제점hadoop을 가동중이다. 그러다가 설정파일(conf/ 밑에)을 고쳤다. 복제개수라던지.. 등등hadoop을 종료하고 hadoop namenode -format을 한다.그대로 실행하면 data의 namespaceID가 달라서 에러가 뜬다.그럴 경우 dfs.data.dir 파일을 지우고 다시 NN를 포맷한다.그러면 설정파일을 바꾸면 data 디렉토리를 삭제해야된다는 건데. 그러면 기존에 있던 데이터는 전부 날라간다...말이안된다 내가 잘못한건지 모르겠다.------------------------ 해결아아... 소스를 분석해봤다. NN가 실행 할 때 conf파일을 다시 한번 읽는다.format 할 때 읽는 것이 아니다. 고로 format을 할 필요가 없다. 고로 data도 지울 필요가 없다..가끔 s.. 더보기
hadoop 실습 examples datanode 소스만 보다가 기분전환겸 인터넷에 있는 실습을 보고 따라해봄. 싱글모드로 실행 [root@master hadoop]# hadoop fs -copyFromLocal bin dfsbin (bin 디렉터리를 dfsbin으로 hdfs에 옮김)[root@master hadoop]# hadoop fs -lsFound 1 itemsdrwxr-xr-x - root supergroup 0 2012-05-03 20:07 /user/root/dfsbin (ACL을 보면 맨앞에 d가 있음 디렉터리 자체로 옮겨짐) [root@master hadoop]# hadoop fs -ls dfsbin (디렉터리 열어보면 hadoop/bin에 있던 파일들이 다 들어있음)Found 14 items-rw-r--r-- 1 roo.. 더보기
Hadoop Multi 환경 구축! Hadoop Multi 구축!구축 환경 Master Slave Version Fedora 13 (x86_64) Ubuntu 10.04 (x86_64) IP 192.168.10.2 192.168.10.3 HOSTNAME master slave 1. Networking 설정, /etc/hosts 에 ip와 domain을 설정합니다. (master/slave 모두)[root@localhost]# vim /etc/hosts192.168.10.2 master192.168.10.3 slave 2. Networking 설정, hostname을 설정합니다. (master/slave 모두)Ubuntu hostname 설정 파일 위치 : /etc/hostnameFedora hostname 설정 파일 위치 : /etc/sy.. 더보기