20230112
오늘 배운 우분투 하둡 연결하기
정리 블로깅이다.
현재 목표는
Virtual Box를 사용해서
name (Master Node)
data1 (Second Master Node)
data2 (Node)
data3 (Node)
총 4개의 가상 환경(Linux)를 설치한다.
그리고 각 Node의 네트워크를 설정했다.
- 각 Address 192.xxx.xx.101,102,103,104
- Netmask : 24로 통일
- Gateway : 192.xxx.xx.x로 통일
- DNS: xxx.xxx.xx.x로 통일
Address만 끝에 숫자를 구별하여 나눠줬다.
그리고 외부파일(window)과 리눅스 내부 경로와
연결 해줄 공유 폴더를 하나 만들었다.
✨ Java ppa Apt
우분투는 JAVA 기반으로 만들어 졌기에
Java ppa APT 추가를 해줘야 한다.
sudo add-apt-repository ppa:openjdk-r/ppa
sudo apt-get install openjdk-8-jdk
그리고 gedit ~/.bashrc를 통해
우분투의 자바 패스를 정해준다.
✨ SSH 패키지 설치
SSH는 Secure Shell의 약자로
공개키 기반의 암호 방식을 사용해 원격지
시스템에 접근하여 암호화된
메세지를 전송할 수 있는 기능이다.
즉, namenode가 datanode에 접근 시키기 위해
설정해준다.
🔥 SSH 키를 생성
- ssh-keygen -t rsa -f ~/.ssh/id_rsa
🔥 생성한 키 등록
- cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
네임노드와 데이터노드 접근을 용이하기 위해 hosts 파일을 수정
name
data1
data2
data3
https://archive.apache.org/dist/hadoop/core/hado
위의 사이트를 통해 하둡 파일 압축 해제
아래 파일을 연다는 코드를 써준다.
op-3.2.2/hadoop-3.2.2.tar.gz
tar.gz ▶ 리눅스 압축 파일 형태
열린 압축 파일을 ls로 조회하고
하둡 시스템이 실행할때의 설정을
아래의 파일에 추가해 준다.
hadoop-env.sh
export JAVA_HOME=/usr/lib/jvm/java-8-openjdkamd64
위의 파라미터는
하둡 실행시
자바 패스를 설정해주는 과정이다.
core-site.xml
mapred-site.xml
mapreduce에 관련된 파라미터를 정해준다.
yarn-site.xml
리소스 매니저 Web-ui 주소
중간단계 파일 및 로그를 저장할 경로를 정의해준다.
workers
data1,2,3의 노드로 보내준다는 지목?같다.
더 자세한 정보는 아직 학습이 부족해
아쉽지만 나중에 또 추가적인 내용을
알게된다면 블로깅 하겠다.
위와 같은 하둡 실행시 셋팅할 설정을 정하면
이제 우리가 정한 Master Node에서
Data Node로 디렉토리를 배포한다.
sudo rsync -avxP /경로/가상환경-이름/경로
경로를 설정해 주고
.bashrc를 gedit으로 열어
아래와 같은 파라미터를 정해준다.
위의 사진은 각각의 .xml, .sh, workers의 파일을 열어
정의한것들을 export한다는 의미를 가진다.
source ~/.bashrc
source 는 .bashrc로 정의하고
hadoop 마스터노드 이름 -format
하둡을 마스터노드에서 포멧해준다.
start-all.sh
위의 코드를 통해 드디어 hadoop을 실행한다.
jsp를 통해서 하둡이 각각의 가상환경에서 잘 돌아가고 있는지확인할 수 있다.
<MasterNode>
MasterNodeResource Manager
<DataNode1>DataNodeNodeManager
SecondaryNameNode
# MasterNode가 문제가 생겼을 때 대안으로 둔다는 의미
<DataNode2, 3>
DataNode
NodeManager
stocks.csv라는 파일을 하둡에 넣어보자!
1. 리눅스 명령어 ls로 현재 파일 목록을 본다.
2. /lshare 명령어로
만들어 놓은 wshare 파일에 stocks.csv를 확인한다.
# wshare는 lshare과 연결되어있다.
3. cd / lshare
4. hadoop fs -D dfs.block.size=1048576 -put ./stocks.csv /
하둡 파일시스템
데이터를 1048576개로 쪼개서 설정한 갯수로 블록화 해서
stocks.csv를 저장하겠다.
5. hadoop fs -ls /
하둡 dir을 보고
stocks.csv가 잘 들어왔는지
확인한다.