#하둡 설치를 위한 디렉토리 부터 만들어준다.
mkdir -p /home/hadoop/hdfs/data
mkdir -p /home/hadoop/hdfs/temp
mkdir -p /home/hadoop/hdfs/name
# mkdir 의 -p 옵션은 디렉토리를 만들어줄 경로상에 디렉토리가 없으면 만들어준다.
#hadoop압축파일 풀기
tar xzvfp hadoop.tar.gz
#hadoop 파일을 원하는 위치로 옮겨준다.
mv hadoop /usr/local/hadoop
#hadoop 폴더 안에 conf폴더로 이동
cd /usr/local/hadoop/conf
ls -al
(ll과 같다)
하둡 설정을 위해 설정해주어야하는 파일
###############core-site.xml
#하둡에서 이용할 포트번호가 9000번이라는 것과 하둡이 운영되는 디폴트 디렉토리가 /home/hadoop/hdfs/temp임을 명시
#이 디렉토리 안에 하둡이 운영되면서 쌓이는 로그파일이 생성된다.
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<!-- Put site-specific property overrides in this file. -->
<configuration>
<property>
<name>fs.default.name</name>
<value>hdfs://namenode:9000</value>
</property>
<property>
<name>hadoop.tmp.dir</name>
<value>/home/hadoop/hdfs/temp</value>
</property>
</configuration>
################hdfs-site.xml
#hdfs-site.xml파일에서는 dfs.replication의 갯수를 <value>에 정의한다.(datanode의 갯수)
# 64MB단위로 나눈 파일들을 복사본을 3개 생성하여 각 노드에 저장한다는 말이다.
#하둡은 데이터를 복사하여 각 노드에 저장하고 어떤하나의 노드가 다운되면 다른 노드에 저장된 같은 데이터를 수집하여 #처리한다.
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<!-- Put site-specific property overrides in this file. -->
<configuration>
<property>
<name>dfs.replication</name>
<value>3</value>
</property>
<property>
<name>dfs.http.address</name>
<value>namenode:50070</value>
</property>
<property>
<name>dfs.secondary.http.address</name>
<value>snamenode:50090</value>
</property>
</configuration>
#################hadoop-env.sh
#하둡이 java가 설치된 위치를 찾아 갈수 있도록 설정한다.
# The java implementation to use. Required.
# export JAVA_HOME=/usr/lib/j2sdk1.5-sun
export JAVA_HOME=/usr/local/java
######################mapred-site.xml
#job-tracker가 작성할 로그파일을 저장할 위치 설정
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<!-- Put site-specific property overrides in this file. -->
<configuration>
<property>
<name>mapred.job.tracker</name>
<value>namenode:9001</value>
</property>
<property>
<name>mapred.local.dir</name>
<value>/home/hadoop/hdfs/mapred</value>
</property>
<property>
<name>mapred.system.dir</name>
<value>/home/hadoop/hdfs/mapred</value>
</property>
</configuration>
##############masters
#namenode가 다운되어 하둡을 사용할 수 없게 되었을때 대신해서 돌아갈 서브제어노드
snamenode
###########slaves
#namenode의 통제 아래 돌아가는 노드들이름
snamenode
datanode1
datanode2
#위의 내용을 파일마다 해준다.
vi core-site.xml
vi hadoop-env.sh
vi hdfs-site.xml
vi mapred-site.xml
vi masters
vi slaves
#메인 노드에서 설정한 하둡 파일을 다른 노드에 전달하여 다른노드에도 하둡을 설치한다.
#현재 노드의 하둡파일을 압축
tar czvfp hadoop.tar.gz hadoop
#압축한 하둡 파일을 scp 프로토콜을 통해 다른 노드에 저장하고 싶은 폴더경로로 전달
#모든 노드 마다 전달해야 하므로 반복!
scp -rp hadoop.tar.gz [노드이름]:[폴더 경로]
ex ) scp -rp hadoop.tar.gz snamenode:/usr/local
#파일을 전달한 모든 노드에서 압축을 풀어준다.
tar xzvfp hadoop.tar.gz
#hadoop 폴더에 대해 링크를 건다.
ln -s hadoop hadoop
#hadoop의 환경변수 설정을 해준다.
vi /etc/profile
#환경변수 설정
export HADOOP_HOME=/usr/local/hadoop
export PATH=$JAVA_HOME/bin:$HADOOP_HOME/bin:$PATH
#hadoop 실행~~
#hadoop 폴더로 ~
cd hadoop
#메인노드의 hadoop이 위치한 폴더들을 초기화한다.
hadoop [메인노드] -format
ex) hadoop namenode -format
#hadoop 시작
start-all.sh
#hadoop 을 구성하는 노드들이 정상적으로 실행되고 있는지 확인
jps
#namenode 3개
#snamenode 4개
#datanode1 3개
#datanode2 3개
#hadoop 멈추기
stop-all.sh
####################################
###################################
리눅스에서 명령어를 쉽게 사용하기 위해서 명령어의 별칭을 정해놓는 ~/.bashrc파일을 수정한다.
#서버는 꺼지면 안되는데 우리가 사용하는 리눅스 서버는 끄고 집에 가므로 temp와 mapred폴더안에 로그 파일이 있으면
#하둡이 이전 로그로 인해 실행 되지 않는다.
#그래서 삭제하는 명령어를 만들어주기로 한다.
#하둡에서 사용하는 로그파일을 저장하는 폴더
alias tr='rm -rf /home/hadoop/hdfs/temp/*'
#하둡에서 사용하는 jobtracker가 사용하는 로그 폴더
alias mr='rm -rf /home/hadoop/hdfs/mapred/*'
#하둡에서 노드들 끼리 연결 시킬때 방화벽 문제로 연결되지 않는 경우가 있다
#그럴 경우를 대비해서 노드에서 방화벽을 해제하는 명령을 별칭화 해놓는다.
alias sps='systemctl stop firewalld'
##################################
#서버 재 실행시
#모든 노드에서 실행해야하는 명령어 4개
# ip주소가 달라졌을 수 있으므로 다시 돌려 놓기
ips
# 방화벽을 해제
sps
# jobtracker가 사용하는 로그폴더에 로그를 삭제
mr
# 하둡에서 사용하는 로그폴더에 로그를 삭제
tr
####################################
#재실행시 메인 노드에서 실행시켜주어야할 내용
hadoop namenode -format
start-all.sh
'Hadoop' 카테고리의 다른 글
하둡 wordcount (0) | 2022.11.23 |
---|---|
hive 설치 및 구동 (0) | 2022.11.22 |
리눅스 설치 (0) | 2022.11.22 |
리눅스에서 SSH설정 (0) | 2022.11.21 |
리눅스에서 자바 설치하기 (0) | 2022.11.21 |