










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

먼저 인터넷이 가능한지 확인합니다. 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
[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
[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
[root@localhost ~]# yum install ld-linux.so.2
[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)
다시 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 로 접속합니다.
하둡은 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번부터 다시 진행합니다.
[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
다시 oracle 의 홈디렉토리로 옵니다.
[oracle@centos]$ cd
.bash_profile 을 열어 맨 아래에 아래의 내용을 추가합니다.
[oracle@centos ~]$ vi .bash_profile
#=====================================================
export HADOOP_HOME=/home/oracle/hadoop/hadoop-1.2.1
export PATH=HADOOP_HOME/sbin:PATH #===================================================== [oracle@centos ~] source .bash_profile

앞으로 4개의 파일을 수정하는 부분이 정말 중요합니다. 하나씩 차근차근 진행하세요
[oracle@centos ~]$ cd $HADOOP_HOME/conf
[oracle@centos conf]$ vi hadoop-env.sh
#=====================================================
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/datadata 와 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
[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
****/
[oracle@centos ~]$ start-all.sh
[oracle@centos ~]$ jps
9167 SecondaryNameNode
9030 DataNode
9402 TaskTracker
9250 JobTracker
9494 Jps
8883 NameNode
위의 6개의 프로세서들이 잘 떠있으면 설치를 성공한것입니다.
※ 잘 안되었을 때의 조치 방법
[oracle@centos conf]$ stop-all.sh
2.하둡 네임노드를 포멧한다.
[oracle@centos conf]$ cd
[oracle@centos ~]$ hadoop namenode -format
[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 로 다시 하둡을 셋팅하는 방법
192.168.19.107 centos
ssh-copy-id -i /home/oracle/.ssh/id_rsa.pub oracle@192.168.19.자기아이피
$ stop-all.sh
core-site.xml 에서 아래의 내용만 남기고 다 지웁니다.
$ cd /home/oracle/hadoop/hadoop-1.2.1/conf
$ vi core-site.xml
[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
[oracle@centos ~]$ start-all.sh
[oracle@centos ~]$ jps
9167 SecondaryNameNode
9030 DataNode
9402 TaskTracker
9250 JobTracker
9494 Jps
8883 NameNode