
Ubuntu 20.04에서 Hadoop을 독립 실행형으로 설치하는 방법
2022-05-31 last update
12 minutes reading Ubuntu 20.04 Big Data Clustering Ubuntu소개
Hadoop은 Java 기반의 프로그래밍 프레임워크로 저렴한 기계 집단에서 초대형 데이터 집합을 처리하고 저장하는 것을 지원한다.이것은 빅데이터 분야의 첫 번째 대형 개원 프로젝트로 아파치 소프트웨어 기금회가 협찬한다.
Hadoop은 네 개의 주요 레이어로 구성됩니다.
이 강좌에서 Hadoop을 독립 모드로 설치하고 예시 MapReduce 프로그램을 실행하여 설치를 검증합니다.
선결 조건
본 강좌를 배우려면 다음이 필요합니다.
전제 조건이 완료되면
sudo
사용자로 로그인하여 시작합니다.1단계 - Java 설치
우선 패키지 목록을 업데이트하고 OpenJDK를 설치해야 합니다. 이것은 Ubuntu 20.04의 기본 Java 개발 패키지입니다.
- sudo apt update
- sudo apt install default-jdk
설치가 완료되면 버전을 확인하겠습니다.- java -version
Outputopenjdk version "11.0.13" 2021-10-19
OpenJDK Runtime Environment (build 11.0.13+8-Ubuntu-0ubuntu1.20.04)
OpenJDK 64-Bit Server VM (build 11.0.13+8-Ubuntu-0ubuntu1.20.04, mixed mode, sharing)
이 출력은 OpenJDK가 성공적으로 설치되었는지 확인합니다.2단계 - Hadoop 설치
Java가 있으면 최신 안정적인 버전을 찾기 위해 Apache Hadoop Releases page 에 액세스합니다.
설치할 버전의 바이너리 파일로 이동합니다.이 안내서에는 Hadoop 3.3.1이 설치되지만 이 안내서의 버전 번호를 바꿀 버전 중 하나를 선택할 수 있습니다.

다음 페이지에서 마우스 오른쪽 버튼을 클릭하고 링크를 게시 바이너리 파일로 복사합니다.

서버에서 다음을 수행하려면
sudo
을 사용하십시오.- wget https://dlcdn.apache.org/hadoop/common/hadoop-3.3.1/hadoop-3.3.1.tar.gz
참고: Apache 웹 사이트는 최적의 미러를 찾을 수 있도록 동적으로 안내하므로 위의 URL과 일치하지 않을 수 있습니다.다운로드한 파일이 변경되지 않았는지 확인하기 위해 SHA-512 또는 보안 해시 알고리즘 512를 사용하여 빠른 검사를 진행합니다.releases page로 돌아가서 마우스 오른쪽 버튼을 클릭하고 다운로드한 버전 바이너리 파일의 검증 및 파일에 링크를 복사합니다.

마찬가지로 우리 서버에서
wget
파일을 다운로드합니다.- wget https://downloads.apache.org/hadoop/common/hadoop-3.3.1/hadoop-3.3.1.tar.gz.sha512
그런 다음 검증을 실행합니다.- shasum -a 512 hadoop-3.3.1.tar.gz
Output2fd0bf74852c797dc864f373ec82ffaa1e98706b309b30d1effa91ac399b477e1accc1ee74d4ccbb1db7da1c5c541b72e4a834f131a99f2814b030fbd043df66 hadoop-3.3.1.tar.gz
이 값을 wget
파일의 SHA-512 값과 비교합니다.- cat hadoop-3.3.1.tar.gz.sha512
~/hadoop-3.3.1.타르광저우sha512...
SHA512 (hadoop-3.3.1.tar.gz) = 2fd0bf74852c797dc864f373ec82ffaa1e98706b309b30d1effa91ac399b477e1accc1ee74d4ccbb1db7da1c5c541b72e4a834f131a99f2814b030fbd043df66
...
미러에서 다운로드한 파일에 대해 실행되는 명령의 출력은 에서 다운로드한 파일apache.org의 값과 일치해야 합니다.현재 파일이 손상되거나 변경되지 않았는지 확인하여 추출할 수 있습니다.
- tar -xzvf hadoop-3.3.1.tar.gz
.sha512
로고가 있는 tar
명령을 사용하여 추출하고, -x
압축을 풀고, -z
상세한 출력을 하고, -v
파일에서 추출할 것을 지정합니다.마지막으로 추출한 파일을 로컬 설치 소프트웨어의 적절한 위치로 이동합니다.
- sudo mv hadoop-3.3.1 /usr/local/hadoop
소프트웨어가 자리를 잡으면 환경을 설정할 수 있습니다.3단계 - Hadoop의 Java 홈 페이지 구성
Hadoop에서는 환경 변수 또는 Hadoop 구성 파일에 설정할 수 있는 Java로 경로를 설정해야 합니다.
Java를 가리키는 경로
-f
는 /usr/local
를 가리키는 기호 링크이며, 기본 Java 바이너리 파일을 가리키는 기호 링크입니다./usr/bin/java
및 /etc/alternatives/java
로고를 사용하여 경로의 각 부분에 있는 각 기호 링크를 추적합니다.그리고 readlink
출력에서 -f
클립을 사용하여 sed
의 정확한 값을 얻을 수 있습니다.기본 Java 경로 찾기
- readlink -f /usr/bin/java | sed "s:bin/java::"
Output/usr/lib/jvm/java-11-openjdk-amd64/
이 출력을 복사하여 Hadoop의 Java home을 이 특정 버전으로 설정할 수 있습니다. 기본 Java가 변경되면 이 값이 변경되지 않습니다.또는 Hadoop에서 시스템 기본값으로 설정된 모든 Java 버전을 자동으로 사용할 수 있도록 파일에서 동적으로 bin/java
명령을 사용할 수 있습니다.시작하려면 열기
JAVA_HOME
:- sudo nano /usr/local/hadoop/etc/hadoop/hadoop-env.sh
그런 다음 다음 다음 옵션 중 하나를 선택하여 파일을 수정합니다.옵션 1: 정적 값 설정
/usr/local/hadoop/etc/hadoop/hadoop-env.상해
. . .
#export JAVA_HOME=
export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64/
. . .
옵션 2: Readlink 동적 설정 값 사용
/usr/local/hadoop/etc/hadoop/hadoop-env.상해
. . .
#export JAVA_HOME=
export JAVA_HOME=$(readlink -f /usr/bin/java | sed "s:bin/java::")
. . .
이러한 행을 찾을 수 없으면 readlink
를 사용하여 텍스트를 빠르게 검색합니다.완료되면 를 사용하여 파일을 종료하고 저장합니다.참고 Hadoop의 경우
hadoop-env.sh
의 CTRL+W
값이 환경이나 사용자 프로필에 설정된 값을 덮어씁니다.단계 4 - Hadoop 실행
이제 Hadoop을 실행할 수 있습니다.
- /usr/local/hadoop/bin/hadoop
OutputUsage: hadoop [OPTIONS] SUBCOMMAND [SUBCOMMAND OPTIONS]
or hadoop [OPTIONS] CLASSNAME [CLASSNAME OPTIONS]
where CLASSNAME is a user-provided Java class
OPTIONS is none or any of:
--config dir Hadoop config directory
--debug turn on shell script debug mode
--help usage information
buildpaths attempt to add class files from build tree
hostnames list[,of,host,names] hosts to use in slave mode
hosts filename list of hosts to use in slave mode
loglevel level set the log4j level for this command
workers turn on worker mode
SUBCOMMAND is one of:
. . .
이 출력은 Hadoop을 독립 모드에서 실행하도록 성공적으로 설정했음을 의미합니다.Hadoop과 함께 제공되는 예시 MapReduce 프로그램을 실행하면 Hadoop이 정상적으로 작동하는지 확인할 수 있습니다.이를 위해 홈 디렉터리에
CTRL+X
라는 디렉터리를 만들고 Hadoop의 프로필을 복사해서 이 파일들을 우리의 데이터로 사용합니다.- mkdir ~/input
- cp /usr/local/hadoop/etc/hadoop/*.xml ~/input
다음 명령을 사용하여 Java 아카이브의 여러 옵션인 MapReduceJAVA_HOME
프로그램을 실행할 수 있습니다.- /usr/local/hadoop/bin/hadoop jar /usr/local/hadoop/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.3.1.jar grep ~/input ~/grep_example 'allowed[.]*'
이것은 hadoop-env.sh
프로그램을 호출합니다. 이 프로그램은 /etc/profile
에 포함된 여러 가지 예시 중 하나입니다. 그 다음에 입력 디렉터리 input
와 출력 디렉터리 hadoop-mapreduce-examples
를 호출합니다.맵Reduce grep 프로그램은 문자나 정규 표현식의 일치 항목을 통계합니다.마지막으로 정규 표현식grep
을 주어 단어hadoop-mapreduce-examples
가 진술문이나 진술문 끝에 나타나는 상황을 찾아낸다.이 표현식은 대소문자를 구분하기 때문에 문장 첫머리에 대문자를 쓰면 단어를 찾을 수 없습니다.작업이 완료되면 처리된 내용과 오류가 발생한 요약을 제공하지만 실제 결과는 포함되지 않습니다.
Output . . .
File System Counters
FILE: Number of bytes read=1200956
FILE: Number of bytes written=3656025
FILE: Number of read operations=0
FILE: Number of large read operations=0
FILE: Number of write operations=0
Map-Reduce Framework
Map input records=2
Map output records=2
Map output bytes=33
Map output materialized bytes=43
Input split bytes=114
Combine input records=0
Combine output records=0
Reduce input groups=2
Reduce shuffle bytes=43
Reduce input records=2
Reduce output records=2
Spilled Records=4
Shuffled Maps =1
Failed Shuffles=0
Merged Map outputs=1
GC time elapsed (ms)=41
Total committed heap usage (bytes)=403800064
Shuffle Errors
BAD_ID=0
CONNECTION=0
IO_ERROR=0
WRONG_LENGTH=0
WRONG_MAP=0
WRONG_REDUCE=0
File Input Format Counters
Bytes Read=147
File Output Format Counters
Bytes Written=34
참고: 출력 디렉터리가 이미 존재하면 프로그램이 실패하고 요약이 보이지 않으며 출력은 다음과 같습니다.Output . . .
at java.base/java.lang.reflect.Method.invoke(Method.java:564)
at org.apache.hadoop.util.RunJar.run(RunJar.java:244)
at org.apache.hadoop.util.RunJar.main(RunJar.java:158)
결과는 출력 디렉터리에 저장되며, 출력 디렉터리에서 실행됩니다input
.- cat ~/grep_example/*
Output22 allowed.
1 allowed
맵리덕스 미션에서 이 단어가 19회grep_example
나 나온 뒤 한 문장과 한 번도 나타나지 않았다.실행 예시 프로그램은 우리의 단기 설치가 정상적으로 작동하고 시스템의 비특권 사용자가Hadoop을 실행하여 탐색이나 디버깅을 할 수 있음을 검증했다.결론
이 강좌에서 Hadoop을 독립 모드로 설치하고 실행하는 예시 프로그램을 통해 검증했습니다.맵Reduce 프로그램을 작성하는 방법을 알아보려면 아파치 Hadoop MapReduce tutorial 에 접근해야 할 수도 있습니다. 이 프로그램은 예시 뒤에 있는 코드를 훑어볼 수 있습니다.클러스터를 설정할 준비가 되면 Apache FoundationHadoop Cluster Setup 안내서를 참조하십시오.
독립된 집단이 아니라 완전한 집단을 배치하려면 How To Spin Up a Hadoop Cluster with DigitalOcean Droplets 을 참조하십시오.