티스토리 뷰
하둡의 단일 클러스터 구성
문득..꼭 데비안을 써야하는가에 대한 의문이 들어서 찾아보니, 안정성을 위해선 데비안이 가장 안정적이라고 함
어차피 우분투도 데비안 기반이라서 사용하는 명령어가 크게 다를 것 같지 않음.
그리고 데비안 너무 아무것도 안깔려서 새로 다 설치해야하는 문제점이 있음..
따라서 아래부터는 우분투 기준으로 실행하였습니다
java 설치
참고: https://settembre.tistory.com/516
ubuntu 18.04 기준으로 jdk11 버전으로 실행하였음
ssh 설정
ssh 설치
sudo apt install openssh-server
ssh 시작service ssh start
ssh 확인service ssh status
하둡과 ssh 연결함ssh hadoop@localhost
하지만.. 에러가 뜨고 SHA가 뜨는데 이게 맞나? 안되는것 같아서vim /etc/ssh/sshd_config
에서 아래그림과 같이 설정하고 service ssh restart
함
다시 ssh hadoop@localhost
접속했더니 비밀번호 입력후 들어가짐
영상강의에선 비밀번호 없이 접속하기 위한 설정을 해줌
- 비밀번호 없이 접속하는 설정
ssh-keygen -t rsa
비밀번호를 설정하지 않기 위해서, 아무것도 입력하지 않고 엔터 3번 누름
- 키 파일을 사용해서 접속하게 설정함(?)
cat .ssh/id_rsa.pub >> .ssh/authorized_keys
다시 ssh hadoop@localhost
했더니 비밀번호 없이 사용할 수 있었음
logout
하면 빠져나올 수 있음 어차피 같은 머신이라 똑같지만..
hadoop 설정
hdfs는 하둡 분산 파일 시스템을 의미 hadoop distributed filesystem
- HDFS의 기본 구성 요소
- 네임노드 (NameNode):파일 시스템의 메타데이터(파일 이름, 디렉토리 구조, 파일 블록의 위치 등)를 관리함. 네임노드는 데이터를 직접 저장하지 않고, 데이터 블록이 어디에 저장되어 있는지를 추적함
- 데이터노드 (DataNode): 실제 데이터를 저장하는 노드. 데이터는 여러 블록으로 나뉘어 데이터노드에 저장됨. 각 데이터노드는 정기적으로 네임노드에 상태를 보고하고, 네임노드는 이를 바탕으로 데이터의 위치를 관리함
초기화 설정하기
config 할 수 있는 폴더로 이동
cd hadoop-3.4.0/etc/hadoop/
core-site.xml 파일을 편집할 것임
`vim core-site.xml`
<configuration>
<property>
<name>fs.defaultFS</name>
<value>hdfs://localhost:9000</value>
</property>
</configuration>
(GPT 해석)
- fs.defaultFS: 이 설정은 하둡 클러스터의 기본 파일 시스템을 지정합니다. 여기서는 HDFS를 기본 파일 시스템으로 설정하고, 네임노드의 주소를 hdfs://localhost:9000으로 지정한 것입니다.
- hdfs://localhost:9000: HDFS 네임노드가 로컬 호스트의 9000번 포트에서 동작함을 의미합니다. 네임노드는 HDFS의 메타데이터를 관리하는 역할을 합니다. 이 설정을 통해 클러스터 내의 모든 노드는 파일 시스템 작업을 수행할 때 이 주소를 기본 파일 시스템으로 사용합니다.
hdfs-site.xml을 수정
`vim hdfs -site.xml`
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>dfs.namenode.name.dir</name>
<value>/home/hadoop/hdfs/namenode/</value>
</property>
<property>
<name>dfs.datanode.data.dir</name>
<value>/home/hadoop/hdfs/datanode/</value>
</property>
</configuration>
(GPT 해석)
- dfs.replication: HDFS에서 각 데이터 블록의 복제본 수를 지정합니다.
- 1: 각 데이터 블록이 하나의 복제본만 가지도록 설정한 것입니다. 이는 개발이나 테스트 환경에서 적절하지만, 실제 운영 환경에서는 보통 3 이상의 복제본을 사용하여 데이터의 내결함성을 높입니다.
- dfs.namenode.name.dir: 네임노드가 사용하는 디렉토리를 지정합니다.
- /home/hadoop/hdfs/namenode/: 네임노드의 메타데이터(파일 시스템의 구조, 각 블록의 위치 등)가 저장될 디렉토리입니다. 네임노드가 이 디렉토리를 사용하여 HDFS의 메타데이터를 저장하고 관리합니다.
- dfs.datanode.data.dir: 데이터노드가 데이터를 저장하는 디렉토리를 지정합니다.
- /home/hadoop/hdfs/datanode/: 실제 데이터 블록이 저장될 위치입니다. 데이터노드는 이 디렉토리를 사용하여 파일의 데이터 블록을 저장하고, 이를 통해 클러스터에서 데이터 읽기 및 쓰기 작업을 수행합니다.
- 폴더 생성
mkdir -p hdfs/datanode
mkdir -p hdfs/namenode
hadoop 내의 JAVA 경로 설정
하둡에게 java에 대한 폴더 경로 설정이 필요함
ls /usr/lib/jvm/java-11-openjdk-amd64/
java에 대한 폴더 확인
config 파일에 java에 대한 경로 수정
vim hadoop-env.sh
열어서 아래와 같이 경로 작성
export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64
파일 시스템을 처음엔 초기화해주어야 함
bin 폴더로 이동cd ~/hadoop-3.4.0/bin
초기화 명령어./hdfs namenode -format
hadoop 실행
cd ~/hadoop-3.4.0/sbin
./start-dfs.sh
localhost:9870 을 확인해봅시다
hadoop 정지
./stop-all.sh
'개발일지' 카테고리의 다른 글
[MongoDB] 원격 서버 DB에 파이썬으로 대용량 데이터 삽입하기(pymongo) (1) | 2024.10.10 |
---|---|
[MongoDB] 윈도우에서 MongoDB 7 설치하기(환경변수 설정) (1) | 2024.09.05 |
[Hadoop & Apache Spark] 하둡과 아파치 스파크-1,2 (0) | 2024.06.26 |
Node.js 기초 (0) | 2024.06.24 |
[Ubuntu] 우분투 서버(ubuntu server) 글자 크기 CLI로 변경 (0) | 2024.02.05 |
- Total
- Today
- Yesterday
- knowledgegraph
- LLM
- psycopg
- pdfmathtranslate
- 지식그래프임베딩
- python'
- ChatGPT
- 키워드추출
- p-tuing
- PEFT
- SPARQL
- MongoDB
- vervel
- python
- PostgreSQL
- Postgis
- polars
- knowlegegraph
- hadoop
- Vue3
- difflib
- Claude
- TextRank
- Encoding
- cursorai
- 지식그래프
- vscode
- pandas
- writerow
- rdflib
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |