인공지능/기타

리눅스(Linux) - 하둡(Hadoop) 설치 및 환경 설정

해피밀세트 2020. 6. 14. 04:27
반응형

 

 

 

<hostname 수정>

1. 터미널 창을 연다.

오른쪽 마우스 클릭 -> 'Open Terminal' 클릭

 

 

 

2. 호스트 이름 확인

hostname
cat /etc/hosts

 

 

 

3. 서버 이름 변경

hostnamectl set-hostname hadoopserver
hostname 으로 다시 확인

 

 

 

4. 재부팅을 해야 제대로 서버 이름이 변경된다.

reboot
다시 root 계정으로 로그인 -> 터미널 열기

 

 

 

<방화벽 해지>

방화벽 해지를 하지 않으면 하둡 설치 단계에서 이상하게 오류가 난다.

 

5. 방화벽 해지

iptables -F

 

 

 

6. 방화벽 해지 내용 확인

iptables -L

 

 

 

<jdk 설정>

- 하둡은 자바 프로그램이다.

- 자바 프로그램이 어느 곳에서든 실행될 수 있도록 설정해야한다.

- 리눅스를 설치하면 기본적으로 자바가 설치되어있으나 오라클 것이 아니다.

- 오라클에서 만든것이 잘 돌아가니까 오라클 자바 프로그램으로 다시 설치하자.

 

7. 디렉토리 생성 (-p : 서브디렉토리도 생성)

mkdir -p /usr/java

 

 

 

8. jdk 파일 복사

cp -v /media/sf_linux/jdk-7u80-linux-x64.tar.gz /usr/java

cp : 복사하는 리눅스 명령어

-v : 복사한 내용을 디스플레이 (안써도 됨)

cp -v <jdk파일경로> <복사할 경로>

 

 

 

9. 복사가 잘됐는지 확인

cd /usr/java
ll

ll 은 ls -al 과 같다.

 

 

 

 

10. jdk 파일(.tar.gz) 압축풀기

tar xvfz jdk-7u80-linux-x64.tar.gz

 

 

 

11. 압축 푼거 확인

ll

파일과 디렉토리의 차이

  • 제일 앞에 d가 붙어있으면 디렉토리
  • 제일 앞에 -가 붙어있으면 파일

 

 

 

12. 환경 설정

cd
vi /etc/profile 

위 코드로 vi 편집기 열고 아래 내용 붙여넣기

대문자 G눌러서 맨 아래로 이동
소문자 o로 편집 모드
export JAVA_HOME=/usr/java/jdk1.7.0_80
export PATH=$PATH:$JAVA_HOME/bin
export CLASS_PATH="."
# 디렉토리 설정(물리경로) 
# 환경변수 설정(논리경로) 
# CLASS 경로는 전부 다 사용

Esc키 누르기 -> :wq 눌러서 저장하고 나가기

 

 

 

13. 수정한 파일 적용

source /etc/profile

 

 

 

14. 적용 내용 확인 (자바 버전 확인)

java -version

아직도 기존 jdk(빨간색 박스)를 사용중인 것을 확인할수 있다.

 

 

 

15. 오라클 jdk로 활성화

1) 자바의 위치 확인

which java

 

2) 자바 위치 바꾸기

update-alternatives --install "/usr/bin/java" "java" "/usr/java/jdk1.7.0_80/bin/java" 1

 

3) 등록된 자바들 중에서 오라클 jdk 선택

update-alternatives --config java
3 입력 -> Enter

 

4) 다시 수정 내용 확인

java -version

오라클 jdk(파란색 박스)로 바뀜

 

 

 

<protobuf 설치>

- 구글이 만듬

- C로 개발
- 다른 기종간의 명령어들에 대한 문자 체계가 깨지는걸 방지

 

16. protobuf 파일 복사

cp /media/sf_linux/protobuf-2.5.0.tar.gz /usr/local

 

 

 

17. protobuf 파일 압축 풀기

cd /usr/local
tar xvfz protobuf-2.5.0.tar.gz

 

 

 

18. 컴파일 수행

!!! 시간 오래 걸림 !!!

cd protobuf-2.5.0
./configure
make
make install

 

 

 

19. 설치 확인

protoc --version

 

 

 

<하둡 프로그램 운영 계정 생성>

- 하둡 프로그램을 설치할 때는 root 계정에서 하지 않는다.

- 하둡 프로그램을 운영하는 운영자는 별도의 계정 사용

- 하둡이라는 유저를 생성

 

20. 사용자 OS 그룹 생성

cd
groupadd hadoop

groupadd <그룹이름>

 

 

 

 

21. 유저 생성

useradd -g hadoop -G vboxsf -m hadoop

유저이름과 그룹이름이 같아도 상관없다.

 

-g : 1차 그룹 지정

-G : 2차 그룹 지정 (하둡도 공유폴더를 이용하기 위한 virtualbox용 그룹)

-m : 디렉토리 생성

hadoop : hadoop이라는 유저 생성

 

 

 

 

22. 계정의 패스워드 지정

passwd hadoop
패스워드 입력 (예 : hadoop)
패스워드 한번 더 입력 (예: hadoop)

passwd <계정이름>

 

!!! 패스워드 입력시 문자 표시 안됨 !!!

 

 

 

 

23. 유저 생성 확인

cat /etc/passwd
cat /etc/group

 

 

 

24. 사용자가 소속된 그룹 확인

groups hadoop

 

 

 

25. 사용자 확인

cat /etc/passwd | grep hadoop

 

 

 

26. 사용자 삭제 (!!! 실행하면 안됨 !!!)

userdel -r hadoop

 

 

 

<하둡 설치 및 환경 설정>

27. 생성한 계정으로 접속

su - hadoop

su - <생성한 계정>

 

 

 

 

28. hadoop 파일 복사

cp /media/sf_linux/hadoop-2.7.2.tar.gz /home/hadoop

 

 

 

29. hadoop 파일 압축 풀기

tar xvzf hadoop-2.7.2.tar.gz

 

 

 

30. 디렉토리 확인

ll

 

 

 

31. 숨겨진 파일 보기

ls -al

 

 

 

32. .bashrc 수정

vi .bashrc
방향키로 제일 밑으로 이동
소문자 o 눌러서 편집 모드
export JAVA_HOME=/usr/java/jdk1.7.0_80 
export HADOOP_HOME=/home/hadoop/hadoop-2.7.2 
export PATH=$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH
ESC키 누르기 -> :wq 눌러서 저장하고 나오기

 

 

 

33. 변경 내용 적용 및 확인

source .bashrc
java -version

 

 

 

34. 공개키 설정

- 프로세서들이 서로 통신할때마다 패스워드를 물어보지 않게 하기

 

1) 공개키 설정 되어있는지 확인

패스워드를 물어보면 설정 안된거임.

ssh hadoop@192.168.56.101
yes
패스워드 입력 (예:hadoop)

 

 

2) 지금 접속된 계정 로그아웃

exit
터미널 창 닫기

 

3) 기존에 있던 공개키 삭제

터미널 창 열기
su - hadoop
rm -rf .ssh 

 

4) 공개키 생성

ssh-keygen
계속 Enter키 누르기 (3번)

 

5) 공개키에 패스워드 등록

ssh-copy-id -i /home/hadoop/.ssh/id_rsa.pub hadoop@192.168.56.101
yes
계정 패스워드 입력 (예:hadoop)

 

6) 공개키 등록 확인

ssh hadoop@192.168.56.101 

패스워드를 안물어보면 성공!!!

 

 

 

 

<하둡 환경설정 파일 수정>

35. 하둡을 실행하는 셸스크립트 파일에서 필요한 환경변수를 설정

1) vi편집기로 hadoop-env.sh 열기

cd /home/hadoop/hadoop-2.7.2/etc/hadoop/
vi hadoop-env.sh

 

2) jdk 설치 경로 수정

방향키를 이용해서 export JAVA_HOME=${JAVA_HOME} 찾기
$에서 Delete키${JAVA_HOME} 지우기
대문자 A로 커서를 그 줄의 가장 끝으로 이동, 편집 모드
/usr/java/jdk1.7.0_80 붙여넣기
ESC키 누르기
export JAVA_HOME=/usr/java/jdk1.7.0_80

 

3) 하둡 데몬 pid 저장 경로 수정 

방향키로 export HADOOP_PID_DIR=${HADOOP_PID_DIR} 찾기
$에서 Delete키 ${HADOOP_PID_DIR}  지우기
대문자 A로 커서를 그 줄의 가장 끝으로 이동, 편집 모드
/home/hadoop/hadoop-2.7.2/pids 붙여넣기
ESC키 누르기 -> :wq 눌러서 저장하고 나오기
export HADOOP_PID_DIR=/home/hadoop/hadoop-2.7.2/pids

 

 

 

36. 보조네임노드 실행 서버 설정

vi masters 
소문자 i 로 편집 모드
192.168.56.101
ESC키 누르기 -> :wq 눌러서 저장하고 나오기

 

 

 

37. 데이터노드 실행 서버 설정

vi slaves
dd 눌러서 내용 지우기
소문자 i로 편집 모드
192.168.56.101
ESC키 누르기 -> :wq 눌러서 저장하고 나오기

 

 

 

38. HDFS, MapReduce 공통적으로 사용할 환경정보 설정

vi core-site.xml
dd 눌러서 <configuration>, </configuration>지우기
소문자 i로 편집 모드
<configuration>
 <property>
  <name>fs.defaultFS</name>
  <value>hdfs://hadoopserver:9010</value>
 </property>
</configuration>
ESC키 누르기 -> :wq 눌러서 저장하고 나오기
잘못해서 다른 코드를 지웠을땐 ESC키 누르기 -> 소문자 u 누르기

 

 

 

 

39. HDFS 환경정보 설정

vi hdfs-site.xml
dd눌러서 <configuration>, </configuration>지우기
소문자 i로 편집 모드

<configuration>
 <property>
  <name>dfs.replication</name>
  <value>1</value>
 </property>
 <property>
  <name>dfs.namenode.name.dir</name>
  <value>/home/hadoop/data/dfs/namenode</value>
 </property>
 <property>
  <name>dfs.namenode.checkpoint.dir</name>
  <value>/home/hadoop/data/dfs/namesecondary</value>
 </property>
 <property>
  <name>dfs.datanode.data.dir</name>
  <value>/home/hadoop/data/dfs/datanode</value>
 </property>
 <property>
  <name>dfs.http.address</name>
  <value>hadoopserver:50070</value>
 </property>
 <property>
  <name>dfs.secondary.http.address</name>
  <value>hadoopserver:50090</value>
 </property>
</configuration>

ESC키 누르기 -> :wq 눌러서 저장하고 나오기

 

 

 

40. MapReduce 환경정보 설정

cp mapred-site.xml.template mapred-site.xml
vi mapred-site.xml
dd눌러서 <configuration>, </configuration>지우기
소문자 i로 편집 모드

<configuration>
 <property>
  <name>mapreduce.framework.name</name>
  <value>yarn</value>
 </property>
</configuration>

ESC키 누르기 -> :wq 눌러서 저장하고 나오기

 

 

 

41. yarn 파일 확인

yarn을 실행하는 쉘스크립트 파일에 필요한 환경변수 설정, 기본으로 설정되어있다.

vi yarn-env.sh
방향키로 그냥 확인만 하자
JAVA=$JAVA_HOME/bin/java
JAVA_HEAP_MAX=-Xmx1000m

 

 

 

42. yarn에서 사용할 환경정보 설정

vi yarn-site.xml
dd눌러서 <configuration>, </configuration>지우기 (사이에 있는 글자들도 다 지우기)
소문자 i로 편집 모드

<configuration>
 <property>
  <name>yarn.nodemanager.aux-services</name>
  <value>mapreduce_shuffle</value>
 </property>
 <property>
  <name>yarn.nodemanager.aux-services.mapreduce_suffle.class</name>
  <value>org.apache.hadoop.mapred.ShuffleHandler</value>
 </property>
 <property>
  <name>yarn.nodemanager.local-dirs</name>
  <value>/home/hadoop/data/yarn/nm-local-dir</value>
 </property>
 <property>
  <name>yarn.resourcemanager.fs.state-store.uri</name>
  <value>/home/hadoop/data/yarn/system/rmstore</value>
 </property>
 <property>
  <name>yarn.resourcemanager.hostname</name>
  <value>hadoopserver</value>
 </property>
 <property>
  <name>yarn.web-proxy.address</name>
  <value>0.0.0.0:8089</value>
 </property>
</configuration>

ESC키 누르기 -> :wq 눌러서 저장하고 나오기

 

 

반응형