Overview
Shuffle
- reduce가 실행되기 전에 같은 키를 가진 value를 list로 만들어준다.
Reduce
- key와 value list를 가지고 reduce를 한다.
- 같은 키의 value list에 있는 값을 더한다.
- 이 값으로 통계처리가 가능하다.
Hadoop의 기본 타입
- 전송, 저장하기 좋은 형태로 타입을 만들어 class로 지정하여 사용하고 있다.
Combiner
Map
- 한 노드에서 특정 키의 중복 값을 따로 처리하지 않고 결과를 수정하여 집계한다.
- 따라서 suffle의 오버헤드가 줄어든다. suffle의 과정에서 정렬도 필요하기 때문이다. 명백하게 합쳐주는 것이 좋다.
- 머신 단위에서 local하게 집계한다.
- map의 result size를 감소시킨다.
- 결과적으로 reduce의 일과 비슷하다.
- suffle 직전에 머신 별로 combiner가 수행(중간 집계)된다.
combiner class를 reduce class로 지정하겠다는 코드 한 줄만 추가하면 된다.
리눅스 가상머신 상태 저장하기
ssd에 저장되어 부팅이 아니라 마지막 상태 그대로 복원하게 된다
하둡 세팅하는 방법
1. 파일 시스템 포맷
(1) 디렉토리 삭제
$ \rm -fr /home/{user-id}/hadoop/tmp
(2) 포맷
$ hdfs namenode -format
2. hdfs 시작 (./hadoop/sbin)
$ start.dfs.sh
# jps
jps 명령어 실행, 현재 작동 중인 jps 목록 확인한다. 웹하드와 같은 역할이다.
hdfs 중지
$ stop.dfs.sh
ssh : 원격지 호스트에 접속하기 위해 사용되는 인터넷 프로토콜.
jps : 현재 작동 중인 자바 프로세스의 목록을 보여준다.
ssh pwd 없이 local host에 대해 pwd없이 로그인 할 수 있도록 세팅을 해야 함.
3. 홈 디렉토리를 만든다. (./hadoop/bin)
- user -> {user-name} 파일로 홈 디렉토리를 만든다.
$ hdfs dfs -mkdir /user
$ hdfs dfs -mkdir /user/{user-name}
- input을 만든 뒤 ls로 확인한다.
$ hdfs dfs -mkdir input
$ hdfs dfs -ls
- / 를 쓰지 않는 이유는 hdfs/home 폴더 밑에 input이라는 폴더를 만들겠다는 뜻이다.
4. 웹하드에 파일을 업로드한다.
$ hdfs dfs -copyFromLocal input/README.txt input
$ hdfs dfs -ls input
$ hdfs dfs -copytoLocal input/README.txt /tmp
$ ls -alF /tmp/README.txt
$ ./hds dfs -cat input/README.txt
5. 빌드 환경 설정하기
압축 풀기
tar -xvf xxx.tar
빌드를 위한 ant가 없는 경우
sudo apt install ant
6. yarn 연결하기 (~/hadoop/sbin)
$ start-yarn.sh
7. path 환경변수 설정하기
$ vi ~/.bashrc
마지막 줄에 아래의 내용을 추가한다.
export PATH = $PATH :~
'AI' 카테고리의 다른 글
설명가능 인공지능 (1) | 2024.06.14 |
---|---|
[AI] gradCam code 분석 (0) | 2024.06.14 |
[빅데이터] Hadoop (1) | 2024.06.14 |
[머신러닝] YOLO ver.3 code (0) | 2024.06.14 |
[머신러닝] object detection (0) | 2024.06.14 |
댓글