하둡 설치 총정리

현스·2024년 2월 1일

설치 정리

목록 보기
2/20
post-thumbnail




  1. 설정에 네트워크에 어뎁터1에 어뎁터 브리지를 선택하니다.

  1. 설정에 네트워크에 어뎁터1에 어뎁터 브리지를 선택하니다.
  1. root 로 로그인해서 static ip 를 셋팅합니다.

cd /etc/sysconfig/network-scripts 로 이동해서 ifxxxxxx 로 생긴건 엽니다.

cd /etc/sysconfing/network-scripts

  1. 하둡을 설치하기 위해서 필요한 파일을 리눅스 서버에 올립니다.

아래의 3개의 설치 파일을 리눅스 서버에 /root 밑에 올립니다.

  1. jdk-7u60-linux-i586.gz
  2. hadoop-1.2.1.tar.gz
  3. protobuf-2.5.0.tar.gz

  1. 네트워크 설정을 변경합니다.

먼저 인터넷이 가능한지 확인합니다. firefox 를 열어서 네이버에 접속해봅니다.

아이피 주소를 확인합니다.

[root@localhost ~]# ifconfig

enp0s3: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 10.0.2.15 netmask 255.255.255.0 broadcast 10.0.2.255
inet6 fe80::f5d8:46b:e8db:fea3 prefixlen 64 scopeid 0x20
ether 08:00:27:de:49:cc txqueuelen 1000 (Ethernet)
RX packets 169102 bytes 245458413 (234.0 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 15778 bytes 1368836 (1.3 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10
loop txqueuelen 1000 (Local Loopback)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

virbr0: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500
inet 192.168.122.1 netmask 255.255.255.0 broadcast 192.168.122.255
ether 52:54:00:82:83:dd txqueuelen 1000 (Ethernet)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

  1. hostname 을 변경합니다.

[root@localhost ~]# vi /etc/hosts

127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6

위의 내용을 다 지우고 아래의 내용을 적고 저장합니다.

192.168.122.1 centos

[root@localhost ~]# hostnamectl set-hostname centos

[root@localhost ~]# hostname
centos

네트워크 서비스를 재시작 합니다.

[root@localhost ~]# service network restart

Restarting network (via systemctl): [ OK ]

혹시 여기서 네트워크를 다시 시작했는데 ok 가 안나오면 인터넷 연결이 끊겼는지 확인해보세요

service network restart 명령어를 수행했을때 자꾸 인터넷이 끊어진다면 인터넷이 자동연결되게 설정하세요

아래의 링크를 참고하세요 ~

[root@localhost ~]# ifconfig

  1. 방화벽을 해지 합니다.

[root@localhost ~]# iptables -F
[root@localhost ~]# iptables -L

Chain INPUT (policy ACCEPT)
target prot opt source destination

Chain FORWARD (policy ACCEPT)
target prot opt source destination

Chain OUTPUT (policy ACCEPT)
target prot opt source destination

  1. ld-linux.so.2 를 설치 합니다.

[root@localhost ~]# yum install ld-linux.so.2

  1. 자바를 설치 합니다.

[root@localhost ~]# java -version

openjdk version "1.8.0_262"
OpenJDK Runtime Environment (build 1.8.0_262-b10)
OpenJDK 64-Bit Server VM (build 25.262-b10, mixed mode)

[root@localhost ~]# cd ~

[root@localhost ~]# mkdir -p /u01/app/java
[root@localhost ~]# mv /root/jdk-7u60-linux-i586.gz /u01/app/java/
[root@localhost ~]# cd /u01/app/java/

[root@localhost java]# tar xvzf jdk-7u60-linux-i586.gz

[root@centos java]# chown -R root:root jdk1.7.0_60

oracle 유져로 접속합니다.

[root@centos java]# su - oracle

[oracle@centos ~]$ vi .bash_profile

맨 밑에 아래의 내용을 추가합니다.

[oracle@centos ~]$ source .bash_profile

[oracle@centos ~]$ java -version
java version "1.7.0_60"
Java(TM) SE Runtime Environment (build 1.7.0_60-b19)
Java HotSpot(TM) Server VM (build 24.60-b09, mixed mode)

  1. protobuf 를 설치 합니다.

다시 root 로 접속합니다.
[oracle@centos ~]$ su -
Password:
[root@centos ~]# cp -v /root/protobuf-2.5.0.tar.gz /usr/local/
[root@centos ~]# cd /usr/local
[root@centos local]# ll

[root@centos local]# tar xvfz protobuf-2.5.0.tar.gz
[root@centos local]# cd protobuf-2.5.0

[root@centos protobuf-2.5.0]# ./configure

[root@centos protobuf-2.5.0]# make

[root@centos protobuf-2.5.0]# make install

[root@centos protobuf-2.5.0]# protoc --version
libprotoc 2.5.0

시스템을 reboot 합니다.

[root@centos protobuf-2.5.0]# reboot

reboot 후에는 oracle 유져로 putty 로 접속합니다.

  1. keygen 생성

하둡은 SSH 프로토컬을 이용해 하둡 클러스트간의 내부 통신을 수행한다.
하둡을 다 설치하고 나서 하둡을 시작하는 명령어인 start-all.sh 쉘 스크립트를 수행하면 네임노드가 설치된 서버에서
데이터 노드가 설치된 서버로 접근해 데이터 노드와 테스크 트래커를 구동하게 된다.

그런데 이때 ssh 를 이용할 수 없다면 하둡을 실행할 수 없다.
네임노드에서 공개키를 설정하고 이 공개키(authorized_keys) 를 다른 데이터 노드에 다 복사해줘야한다.
이 키를 가지고 있으면 ssh 로 다른 노드에 접속할때 패스워드 없이 접속할 수 있다.

oracle 유져에서 작업하셔야해요 ~

[oracle@centos ~]# su - oracle

[oracle@centos ~]$

공개키 생성

[oracle@centos ~]$ rm -rf .ssh
[oracle@centos ~]$ ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/home/oracle/.ssh/id_rsa): 그냥 엔터
Created directory '/home/oracle/.ssh'.
Enter passphrase (empty for no passphrase): 그냥 엔터
Enter same passphrase again: 그냥 엔터
Your identification has been saved in /home/oracle/.ssh/id_rsa.
Your public key has been saved in /home/oracle/.ssh/id_rsa.pub.
The key fingerprint is:
b8:e5:55:fd:f9:72:4d:48:e6:47:22:bd:44:cb:41:7d oracle@centos
The key's randomart image is:

[oracle@centos ~]$ ssh-copy-id -i /home/oracle/.ssh/id_rsa.pub oracle@192.168.122.1
The authenticity of host '192.168.56.101 (192.168.56.101)' can't be established.
ECDSA key fingerprint is 6b:de:64:c5:27:c4:c6:d7:62:2a:9c:fa:83:d5:65:13.
Are you sure you want to continue connecting (yes/no)? yes <- 입력
/bin/ssh-copy-id: INFO: attempting to log in with the new key(s), to filter out any that are already installed
/bin/ssh-copy-id: INFO: 1 key(s) remain to be installed -- if you are prompted now it is to install the new keys
oracle@192.168.122.1's password: oracle <- 패스워드입력

Number of key(s) added: 1

Now try logging into the machine, with: "ssh 'oracle@192.168.122.1'"
and check to make sure that only the key(s) you wanted were added.

공개키 잘 생성되었는지 확인

[oracle@centos ~]$ ssh oracle@192.168.122.1

Last login: Thu Aug 6 22:17:11 2020

※ 중요: 여기서 접속시 패스워드를 물어보면 안됩니다.

만약 패스워드를 물어봤다면 8번부터 다시 진행합니다.

  1. hadoop 디렉토리를 만들고 거기에 하둡설치 파일 압축을 풉니다.

[oracle@centos ~]$ cd
[oracle@centos ~]$ mkdir hadoop
[oracle@centos ~]$ cd hadoop

root 유져로 접속하여 /root 밑에 있는 hadoop-1.2.1.tar.gz의 권한을 777 로 올립니다.

(base) [oracle@centos ~]$ su -
암호:

[root@centos ~]# chmod 777 hadoop-1.2.1.tar.gz

소유자도 oracle 유져로 변경합니다.

[root@centos ~]# chown -R oracle:oracle hadoop-1.2.1.tar.gz

그리고 /root/ 밑에 있는 hadoop-1.2.1.tar.gz 를 /home/oracle/hadoop/ 밑으로 복사합니다.

[root@centos ~]# cp /root/hadoop-1.2.1.tar.gz /home/oracle/hadoop/

이제 다시 oracle 유져로 접속합니다.

[root@centos ~]# su - oracle

hadoop 디렉토리로 이동합니다.

[oracle@centos]$ cd hadoop

[oracle@centos hadoop]$ pwd

oracle 유져에서 hadoop-1.2.1.tar.gz 의 압축을 풉니다.

[oracle@centos]$ tar xvzf hadoop-1.2.1.tar.gz
...
[oracle@centos]$ rm hadoop-1.2.1.tar.gz

  1. 하둡 홈 디렉토리를 설정한다.

다시 oracle 의 홈디렉토리로 옵니다.

[oracle@centos]$ cd

.bash_profile 을 열어 맨 아래에 아래의 내용을 추가합니다.

[oracle@centos ~]$ vi .bash_profile
#=====================================================
export HADOOP_HOME=/home/oracle/hadoop/hadoop-1.2.1
export PATH=HADOOPHOME/bin:HADOOP_HOME/bin:HADOOP_HOME/sbin:PATH #===================================================== [oracle@centos ~] source .bash_profile

앞으로 4개의 파일을 수정하는 부분이 정말 중요합니다. 하나씩 차근차근 진행하세요

[oracle@centos ~]$ cd $HADOOP_HOME/conf

[oracle@centos conf]$ vi hadoop-env.sh
#=====================================================

The java implementation to use. Required.

export JAVA_HOME=/usr/lib/j2sdk1.5-sun

export JAVA_HOME=/u01/app/java/jdk1.7.0_60
export HADOOP_HOME=/home/oracle/hadoop/hadoop-1.2.1
export HADOOP_HOME_WARN_SUPPRESS=1
#=====================================================

[oracle@centos conf]$ vi core-site.xml

fs.default.name hdfs://localhost:9000 hadoop.tmp.dir /home/oracle/hadoop/hadoop-1.2.1/hadoop-${user.name}

[oracle@centos conf]$ vi mapred-site.xml

mapred.job.tracker localhost:9001 mapred.local.dir ${hadoop.tmp.dir}/mapred/local mapred.system.dir ${hadoop.tmp.dir}/mapred/system

[oracle@centos conf]$ mkdir /home/oracle/hadoop/hadoop-1.2.1/dfs
[oracle@centos conf]$ mkdir /home/oracle/hadoop/hadoop-1.2.1/dfs/name
[oracle@centos conf]$ mkdir /home/oracle/hadoop/hadoop-1.2.1/dfs/data

[oracle@centos conf]$ vi hdfs-site.xml

dfs.name.dir /home/oracle/hadoop/hadoop-1.2.1/dfs/name dfs.name.edits.dir ${dfs.name.dir} dfs.data.dir /home/oracle/hadoop/hadoop-1.2.1/dfs/data

data 와 name 디렉토리의 권한을 조정합니다.

[oracle@centos conf]$ cd /home/oracle/hadoop/hadoop-1.2.1/dfs
[oracle@centos dfs]$ chmod 755 data
[oracle@centos dfs]$ chmod 755 name
[oracle@centos dfs]$ ls -l
total 0
drwxr-xr-x. 2 oracle oracle 6 Jan 6 09:01 data
drwxr-xr-x. 2 oracle oracle 6 Jan 6 09:07 name

  1. 하둡 네임노드를 포멧한다.

[oracle@centos dfs]$ cd
[oracle@centos ~]$ hadoop namenode -format

14/08/06 00:28:19 INFO namenode.NameNode: STARTUP_MSG:
/****
STARTUP_MSG: Starting NameNode
STARTUP_MSG: host = edydr1p2.us.oracle.com/192.168.100.102
STARTUP_MSG: args = [-format]
STARTUP_MSG: version = 1.2.1
STARTUP_MSG: build = https://svn.apache.org/repos/asf/hadoop/common/branches/branch-1.2 -r 1503152; compiled by 'mattf' on Mon Jul 22 15:23:09 PDT 2013
STARTUP_MSG: java = 1.7.0_60
****/
Re-format filesystem in /u01/app/hadoop/hadoop-1.2.1/dfs/name ? (Y or N) Y (대문자)
...
14/08/06 00:28:28 INFO namenode.FSEditLog: closing edit log: position=4, editlog=/u01/app/hadoop/hadoop-1.2.1/dfs/name/current/edits
14/08/06 00:28:28 INFO namenode.FSEditLog: close success: truncate to 4, editlog=/u01/app/hadoop/hadoop-1.2.1/dfs/name/current/edits
14/08/06 00:28:28 INFO common.Storage: Storage directory /u01/app/hadoop/hadoop-1.2.1/dfs/name has been successfully formatted.
14/08/06 00:28:28 INFO namenode.NameNode: SHUTDOWN_MSG:
/****
SHUTDOWN_MSG: Shutting down NameNode at edydr1p2.us.oracle.com/192.168.100.102
****/

  1. 하둡파일 시스템을 올린다.

[oracle@centos ~]$ start-all.sh

  1. 하둡파일 시스템의 데몬이 잘 올라왔는지 확인한다.

[oracle@centos ~]$ jps
9167 SecondaryNameNode
9030 DataNode
9402 TaskTracker
9250 JobTracker
9494 Jps
8883 NameNode

위의 6개의 프로세서들이 잘 떠있으면 설치를 성공한것입니다.

※ 잘 안되었을 때의 조치 방법

  1. 하둡을 모두 내립니다.

[oracle@centos conf]$ stop-all.sh

2.하둡 네임노드를 포멧한다.

[oracle@centos conf]$ cd
[oracle@centos ~]$ hadoop namenode -format

  1. 하둡 데이터 노드와 네임노드의 데이터를 다 지웁니다.

[oracle@centos dfs]$ pwd
/home/oracle/hadoop/hadoop-1.2.1/dfs
[oracle@centos dfs]$ ls
data name
[oracle@centos dfs]$ cd data
[oracle@centos data]$ rm -rf
[oracle@centos data]$ cd ../name
[oracle@centos name]$ rm -rf

다시 하둡파일 시스템을 올린다.

[oracle@centos ~]$ start-all.sh

[oracle@centos ~]$ jps
9167 SecondaryNameNode
9030 DataNode
9402 TaskTracker
9250 JobTracker
9494 Jps
8883 NameNode

그래도 안되면 oracle vm 을 관리자 권한으로 실행해보세요

그래도 안되면 아래의 블러그를 참고해주세요

https://opentutorials.org/module/1239/8548

■ 자기의 ip 로 다시 하둡을 셋팅하는 방법

1. vi /etc/hosts

192.168.19.107 centos

  1. 자기 아이피를 키젠에 등록

ssh-copy-id -i /home/oracle/.ssh/id_rsa.pub oracle@192.168.19.자기아이피

  1. 먼저 하둡을 꺼준다

$ stop-all.sh

  1. core-site.xml 에서 아래의 내용만 남기고 다 지웁니다.

    $ cd /home/oracle/hadoop/hadoop-1.2.1/conf

    $ vi core-site.xml

fs.default.name hdfs://localhost:9000
  1. 하둡 데이터 노드와 네임노드의 데이터를 다 지웁니다.

[oracle@centos dfs]$ pwd
/home/oracle/hadoop/hadoop-1.2.1/dfs
[oracle@centos dfs]$ ls
data name
[oracle@centos dfs]$ cd data
[oracle@centos data]$ rm -rf
[oracle@centos data]$ cd ../name
[oracle@centos name]$ rm -rf

6.하둡 네임노드를 포멧한다.

[oracle@centos ~]$ hadoop namenode -format

  1. 하둡을 다시 올립니다.

[oracle@centos ~]$ start-all.sh

[oracle@centos ~]$ jps
9167 SecondaryNameNode
9030 DataNode
9402 TaskTracker
9250 JobTracker
9494 Jps
8883 NameNode

profile
˗ˋˏ O R A C L E ˎˊ˗

0개의 댓글