[AWS-EC2 Hadoop|Hive|Spark] 계정생성 Java8설치 + selinux해제
| System Structure
Hadoop을 사용하기 위해서는 JAVA 설치가 선행준비조건 입니다. 넷째날은 JAVA 설치를 하도록 하겠습니다.
목차
1. AWS 로그인 및 EC2(Putty) 접속
2. Hadoop 계정 생성
2.1 Hadoop 권한주기
2.2 패키지 업데이트
2.3 net-tools, wget 등 패키지들 설치
3. java-1.8.0-openjdk(JAVA) 설치
(참고) JAVA 특정 버전 삭제
3.1 JAVA 환경 변수 설정
4. Selinux 설정
내용
1. AWS 로그인 및 EC2(Putty) 접속
먼저 AWS 로그인 후 EC2 접속을 해주세요.
사용자 계정을 생성하기 위하여 root 계정으로 로그인합니다.
2. Hadoop 계정 생성
회사나 고객사에서는 root 계정을 주지 않기 때문에, root 계정이 아닌 hadoop이라는 사용자 계정을 생성하여 java를 설치하도록 하겠습니다. 사용자 계정의 이름은 여기서 hadoop으로 했으나 다른것으로 해도 무방합니다.
[root@ip-172-31-40-48 ~]# adduser hadoop
[root@ip-172-31-40-48 ~]# passwd hadoop
Changing password for user hadoop.
New password: 사용하고 싶은 hadoop 패스워드
BAD PASSWORD: The password is shorter than 8 characters
Retype new password: 사용하고 싶은 hadoop 패스워드 한번더 입력
passwd: all authentication tokens updated successfully.
2.1 Hadoop 권한주기
[root@ip-172-31-40-48 ~]# visudo
root 아래에 아래와 같이 추가합니다.
hadoop ALL=(ALL) ALL
ESC -> wq!
그 다음에 hadoop으로 계정 전환 합니다.
[root@ip-172-31-40-48 ~]# su - hadoop
[hadoop@ip-172-31-40-48 ~]$
2.2 패키지 업데이트
hadoop 설치 앞서 설치된 패키지들을 모두 업데이트 후 python-pip도 설치합니다.
[hadoop@ip-172-31-40-48 ~]$ sudo yum update -y
root 계정에서 java를 설치하실 분들은 sudo를 제외하고 yum update -y만 하셔도 됩니다.
2.3 net-tools, wget 등 패키지들 설치
JAVA를 설치하기 전에 다른 패키지들도 설치하겠습니다.
net-tools은 ifconfig등 ip 주소를 확인할 때 사용하는 패키지를 담고 있습니다.
wget은 사이트에 올라와있는 hadoop 파일이나 java 파일등을 쉽게 다운 받을 수 있습니다.
wget이 없다면 사이트에 직접 들어가서 Window에서 파일을 다운 받고 Linux로 파일업로드를 하는 등등 복잡하지만, wget을 이용하면 간단히 다운받을 수 있습니다.
vim은 vi의 상향 버전으로 마찬가지로 텍스트 편집 때 사용 됩니다.
python-pip는 파이썬으로 작성된 패키지 라이브러리를 관리해주는 시스템이다.
[hadoop@ip-172-31-40-48 ~]$ sudo yum install net-tools wget vim python-pip -y
3. java-1.8.0-openjdk(JAVA) 설치
[hadoop@ip-172-31-40-48 ~]$ sudo dnf install java-1.8.0-openjdk ant -y
[hadoop@ip-172-31-40-48 ~]$ sudo yum install java-1.8* -y
(참고)특정 JAVA 버전을 삭제하고 싶은 경우에는 아래를 참고해주세요.
| JAVA 버전 확인
첫번째 방법. java -version
[hadoop@Master]java -version
openjdk version "11.0.17" 2022-10-18 LTS
OpenJDK Runtime Environment (Red_Hat-11.0.17.0.8-2.el9_0) (build 11.0.17+8-LTS)
OpenJDK 64-Bit Server VM (Red_Hat-11.0.17.0.8-2.el9_0) (build 11.0.17+8-LTS, mixed mode, sharing)
두번째 방법.rpm -qa | grep java
[hadoop@Master]rpm -qa | grep java
javapackages-filesystem-6.0.0-3.el9.noarch
tzdata-java-2022f-1.el9_1.noarch
java-11-openjdk-headless-11.0.17.0.8-2.el9_0.x86_64
javapackages-tools-6.0.0-3.el9.noarch
java-1.8.0-openjdk-headless-1.8.0.352.b08-2.el9_1.x86_64
java-1.8.0-openjdk-1.8.0.352.b08-2.el9_1.x86_64
java-1.8.0-openjdk-src-1.8.0.352.b08-2.el9_1.x86_64
java-1.8.0-openjdk-javadoc-zip-1.8.0.352.b08-2.el9_1.noarch
java-1.8.0-openjdk-demo-1.8.0.352.b08-2.el9_1.x86_64
java-1.8.0-openjdk-devel-1.8.0.352.b08-2.el9_1.x86_64
java-1.8.0-openjdk-javadoc-1.8.0.352.b08-2.el9_1.noarch
| JAVA 버전 삭제
원치 않는 JAVA 버전이 있는 경우 삭제할 수 있습니다.
rpm -qa | grep java로 java 버전을 확인하고 원치않는 java 버전을 삭제할 수 있습니다.
예를 들어 저는 java 8을 사용 하고 싶기 때문에 java 11을 삭제하겠습니다.
java11과 관련된 모든 패키지들을 아래와 같이 삭제하면 됩니다. 참고로 headless는 GUI를 사용하지 않을 때 사용되는 JAVA 입니다.
[hadoop@Slave1] sudo yum remove java-11-openjdk-headless-11.0.17.0.8-2.el9_0.x86_64 java-11-openjdk-11.0.17.0.8-2.el9_0.x86_64 java-11-openjdk-devel-11.0.17.0.8-2.el9_0.x86_64 -y
[sudo] password for hadoop:
Updating Subscription Management repositories.
Unable to read consumer identity
This system is not registered with an entitlement server. You can use subscription-manager to register.
Dependencies resolved.
=============================================================================================
Package Arch Version Repository Size
=============================================================================================
Removing:
java-11-openjdk x86_64 1:11.0.17.0.8-2.el9_0 @rhel-9-appstream-rhui-rpms 764 k
java-11-openjdk-devel x86_64 1:11.0.17.0.8-2.el9_0 @rhel-9-appstream-rhui-rpms 5.3 M
java-11-openjdk-headless x86_64 1:11.0.17.0.8-2.el9_0 @rhel-9-appstream-rhui-rpms 172 M
Removing dependent packages:
ant noarch 1.10.9-7.el9 @rhel-9-appstream-rhui-rpms 461 k
Removing unused dependencies:
ant-lib noarch 1.10.9-7.el9 @rhel-9-appstream-rhui-rpms 2.2 M
javapackages-tools noarch 6.0.0-3.el9 @rhel-9-appstream-rhui-rpms 63 k
Transaction Summary
=============================================================================================
Remove 6 Packages
Freed space: 181 M
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
Preparing : 1/1
Erasing : ant-1.10.9-7.el9.noarch 1/6
Erasing : ant-lib-1.10.9-7.el9.noarch 2/6
Erasing : java-11-openjdk-devel-1:11.0.17.0.8-2.el9_0.x86_64 3/6
Running scriptlet: java-11-openjdk-devel-1:11.0.17.0.8-2.el9_0.x86_64 3/6
Erasing : javapackages-tools-6.0.0-3.el9.noarch 4/6
Erasing : java-11-openjdk-1:11.0.17.0.8-2.el9_0.x86_64 5/6
Running scriptlet: java-11-openjdk-1:11.0.17.0.8-2.el9_0.x86_64 5/6
Erasing : java-11-openjdk-headless-1:11.0.17.0.8-2.el9_0.x86_64 6/6
Running scriptlet: java-11-openjdk-headless-1:11.0.17.0.8-2.el9_0.x86_64 6/6
Verifying : ant-1.10.9-7.el9.noarch 1/6
Verifying : ant-lib-1.10.9-7.el9.noarch 2/6
Verifying : java-11-openjdk-1:11.0.17.0.8-2.el9_0.x86_64 3/6
Verifying : java-11-openjdk-devel-1:11.0.17.0.8-2.el9_0.x86_64 4/6
Verifying : java-11-openjdk-headless-1:11.0.17.0.8-2.el9_0.x86_64 5/6
Verifying : javapackages-tools-6.0.0-3.el9.noarch 6/6
Installed products updated.
Removed:
ant-1.10.9-7.el9.noarch
ant-lib-1.10.9-7.el9.noarch
java-11-openjdk-1:11.0.17.0.8-2.el9_0.x86_64
java-11-openjdk-devel-1:11.0.17.0.8-2.el9_0.x86_64
java-11-openjdk-headless-1:11.0.17.0.8-2.el9_0.x86_64
javapackages-tools-6.0.0-3.el9.noarch
Complete!
이제 삭제가 잘되었는지 확인하면, java8이 잘 사용된것을 확인할 수 있습니다.
[hadoop@Slave1]java -version
openjdk version "1.8.0_352"
OpenJDK Runtime Environment (build 1.8.0_352-b08)
OpenJDK 64-Bit Server VM (build 25.352-b08, mixed mode)
3.1 JAVA 환경 변수 설정
환경변수는 어디서든 JAVA를 편리하게 사용할 수 있게 등록해둡니다.
[hadoop@ip-172-31-40-48 ~]$ vi ~/.bashrc
export JAVA_HOME="/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.352.b08-2.el9_1.x86_64"
export PATH=$PATH:$JAVA_HOME/bin
[hadoop@ip-172-31-40-48 ~]$ source ~/.bashrc
[hadoop@ip-172-31-40-48 ~]$ echo $JAVA_HOME
/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.352.b08-2.el9_1.x86_64
참고) [hadoop@ip-172-31-40-48 ~]$ ls /usr/lib/jvm
ls라는 명령어로 본인 서버에 설치된 JAVA 버전을 알 수 있다.
저는 설치한 JAVA 버전을 환경변수에도 등록되었는데 JAVA11이 사용되어, 사용되고 있는 JAVA 11버전을 삭제했습니다.
sudo yum remove java-11-openjdk-headless-11.0.17.0.8-2.el9_0.x86_64 java-11-openjdk-11.0.17.0.8-2.el9_0.x86_64 java-11-openjdk-devel-11.0.17.0.8-2.el9_0.x86_64 -y 로
4. Selinux 설정
나중에 보안문제로 프로그램이 정상 동작 되지 않을 수도 있기 때문에 SELINUX Enforcing을 permissive로 바꿉니다.
enforcing -> permissive
[hadoop@ip-172-31-40-48 ~]$ sudo sed -i 's/^SELINUX=enforcing$/SELINUX=permissive/' /etc/selinux/config
[hadoop@ip-172-31-40-48 ~]$ cat /etc/selinux/config