
Ubuntu 16.04에서 Hadoop을 독립 실행형으로 설치하는 방법
2022-06-01 last update
13 minutes reading Clustering Ubuntu Ubuntu 16.04 Big Data소개
Hadoop은 Java 기반의 프로그래밍 프레임워크로 저렴한 기계 집단에서 초대형 데이터 집합을 처리하고 저장하는 것을 지원한다.이것은 빅데이터 분야의 첫 번째 대형 개원 프로젝트로 아파치 소프트웨어 기금회가 협찬한다.
Hadoop 2.7은 네 개의 주요 레이어로 구성됩니다.
이 강좌에서는 Hadoop을 독립 모드로 설치하고 그 중 하나의 예시인 MapReduce 프로그램을 실행하여 설치를 검증합니다.
선결 조건
본 강좌를 배우려면 다음이 필요합니다.
시작하기 전에 An Introduction to Big Data Concepts and Terminology 또는 An Introduction to Hadoop
1단계 - Java 설치
시작하려면 패키지 목록을 업데이트합니다.
- sudo apt-get update
다음은 기본 Java 개발 패키지인 Ubuntu 16.04에 OpenJDK를 설치합니다.- sudo apt-get install default-jdk
설치가 완료되면 버전을 확인하겠습니다.- java -version
Outputopenjdk version "1.8.0_91"
OpenJDK Runtime Environment (build 1.8.0_91-8u91-b14-3ubuntu1~16.04.1-b14)
OpenJDK 64-Bit Server VM (build 25.91-b14, mixed mode)
이 출력은 OpenJDK가 성공적으로 설치되었는지 확인합니다.2단계 - Hadoop 설치
Java가 있으면 최신 안정적인 버전을 찾기 위해 Apache Hadoop Releases page 에 액세스합니다.현재 버전의 바이너리 파일을 따르려면 다음과 같이 하십시오.

다음 페이지에서 최신 안정 버전 바이너리 파일의 링크를 마우스 오른쪽 단추로 클릭하고 복사합니다.

서버에서 다음을 위해
sudo
을 사용합니다.- wget http://apache.mirrors.tds.net/hadoop/common/hadoop-2.7.3/hadoop-2.7.3.tar.gz
참고: Apache 웹 사이트는 최적의 미러를 찾을 수 있도록 동적으로 안내하므로 위의 URL과 일치하지 않을 수 있습니다.다운로드한 파일이 변경되지 않았는지 확인하기 위해 SHA-256을 사용하여 빠른 검사를 진행합니다.releases page로 돌아가서 Apache 링크를 클릭합니다.

다운로드 버전의 디렉토리를 입력합니다.

마지막으로 다운로드 버전
wget
파일을 찾은 다음 해당 파일의 링크를 복사합니다.
마찬가지로 파일 위치를 복사하려면 마우스 오른쪽 버튼을 클릭하고
.mds
를 사용하여 파일을 전송합니다.- wget https://dist.apache.org/repos/dist/release/hadoop/common/hadoop-2.7.3/hadoop-2.7.3.tar.gz.mds
그런 다음 검증을 실행합니다.- shasum -a 256 hadoop-2.7.3.tar.gz
Outputd489df3808244b906eb38f4d081ba49e50c4603db03efd5e594a1e98b09259c2 hadoop-2.7.3.tar.gz
이 값을 wget
파일의 SHA-256 값과 비교합니다.- cat hadoop-2.7.3.tar.gz.mds
~/hadoop-2.7.3.타르광저우회사 명...
hadoop-2.7.3.tar.gz: SHA256 = D489DF38 08244B90 6EB38F4D 081BA49E 50C4603D B03EFD5E 594A1E98 B09259C2
...
대소문자와 공백의 차이를 무시할 수 있습니다.미러에서 다운로드한 파일에 대해 실행되는 명령의 출력은 에서 다운로드한 파일apache.org의 값과 일치해야 합니다.현재 우리는 파일이 손상되거나 변경되지 않았음을 검증했습니다.
.mds
로고가 있는 tar
명령을 사용하여 추출하고, -x
압축을 풀고, -z
상세한 출력을 하고, -v
파일에서 추출하도록 지정할 것입니다.다음 명령에서 탭을 사용하여 올바른 버전 번호를 보완하거나 대체합니다.- tar -xzvf hadoop-2.7.3.tar.gz
마지막으로, 우리는 추출한 파일을 -f
로 옮길 것이다. 이것은 로컬 설치 소프트웨어의 적당한 위치이다.필요한 경우 다운로드한 버전과 일치하도록 버전 번호를 변경합니다.- sudo mv hadoop-2.7.3 /usr/local/hadoop
소프트웨어가 있으면 우리는 그것의 환경을 설정할 수 있다.3단계 - Hadoop의 Java 홈 페이지 구성
Hadoop에서는 환경 변수 또는 Hadoop 구성 파일에 설정할 수 있는 Java로 경로를 설정해야 합니다.
Java 경로
/usr/local
는 /usr/bin/java
를 가리키는 기호 링크이며, 기본 Java 바이너리 파일을 가리키는 기호 링크입니다.우리는 /etc/alternatives/java
및 readlink
로고를 사용하여 경로의 각 부분에 있는 모든 기호 링크를 추적할 것입니다.그리고 우리는 -f
출력에서 sed
를 잘라내서 bin/java
의 정확한 값을 얻을 것이다.기본 Java 경로 찾기
- readlink -f /usr/bin/java | sed "s:bin/java::"
Output/usr/lib/jvm/java-8-openjdk-amd64/jre/
이 출력을 복사하여 Hadoop의 Java home을 이 특정 버전으로 설정할 수 있습니다. 기본 Java가 변경되면 이 값이 변경되지 않습니다.또는 Hadoop에서 시스템 기본값으로 설정된 모든 Java 버전을 자동으로 사용할 수 있도록 파일에서 동적으로 JAVA_HOME
명령을 사용할 수 있습니다.시작하려면 열기
readlink
:- sudo nano /usr/local/hadoop/etc/hadoop/hadoop-env.sh
그런 다음 다음 다음 중 하나를 선택합니다.옵션 1: 정적 값 설정
/usr/local/hadoop/etc/hadoop/hadoop-env.상해
. . .
#export JAVA_HOME=${JAVA_HOME}
export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64/jre/
. . .
옵션 2: Readlink 동적 설정 값 사용
/usr/local/hadoop/etc/hadoop/hadoop-env.상해
. . .
#export JAVA_HOME=${JAVA_HOME}
export JAVA_HOME=$(readlink -f /usr/bin/java | sed "s:bin/java::")
. . .
참고 Hadoop의 경우 hadoop-env.sh
의 JAVA_HOME
값이 환경이나 사용자 프로필에 설정된 값을 덮어씁니다.단계 4 - Hadoop 실행
이제 Hadoop을 실행할 수 있습니다.
- /usr/local/hadoop/bin/hadoop
OutputUsage: hadoop [--config confdir] [COMMAND | CLASSNAME]
CLASSNAME run the class named CLASSNAME
or
where COMMAND is one of:
fs run a generic filesystem user client
version print the version
jar <jar> run a jar file
note: please use "yarn jar" to launch
YARN applications, not this command.
checknative [-a|-h] check native hadoop and compression libraries availability
distcp <srcurl> <desturl> copy file or directories recursively
archive -archiveName NAME -p <parent path> <src>* <dest> create a hadoop archive
classpath prints the class path needed to get the
credential interact with credential providers
Hadoop jar and the required libraries
daemonlog get/set the log level for each daemon
도움말은 Hadoop을 독립 모드에서 실행되도록 성공적으로 구성했음을 의미합니다.우리는 그것에 첨부된 예시적인 맵Reduce 프로그램을 실행해서 그것이 정상적으로 실행될 수 있도록 할 것이다.이를 위해 홈 디렉터리에 hadoop-env.sh
라는 디렉터리를 만들고 Hadoop의 프로필을 복사해서 이 파일들을 우리의 데이터로 사용합니다.- mkdir ~/input
- cp /usr/local/hadoop/etc/hadoop/*.xml ~/input
다음은 Java 아카이브 파일인 MapReduce /etc/profile
프로그램을 실행하는 데 사용할 수 있는 명령입니다. 몇 가지 옵션이 있습니다.우리는 input
프로그램을 호출할 것이다. 이것은 hadoop-mapreduce-examples
에 포함된 많은 예시 중의 하나이며, 그 다음은 입력 디렉터리 grep
와 출력 디렉터리 hadoop-mapreduce-examples
이다.맵Reduce grep 프로그램은 문자나 정규 표현식의 일치 항목을 통계합니다.마지막으로, 우리는 이 단어 input
가 성명성 문장 내나 끝에 나타나는 상황을 찾기 위해 정규 표현식을 제공할 것이다.표현식은 대소문자를 구분하므로 문장 첫머리에 대문자를 쓰면 이 단어를 찾을 수 없습니다.- /usr/local/hadoop/bin/hadoop jar /usr/local/hadoop/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.7.3.jar grep ~/input ~/grep_example 'principal[.]*'
작업이 완료되면 처리된 내용과 오류가 발생한 요약을 제공하지만 실제 결과는 포함되지 않습니다.Output . . .
File System Counters
FILE: Number of bytes read=1247674
FILE: Number of bytes written=2324248
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=37
Map output materialized bytes=47
Input split bytes=114
Combine input records=0
Combine output records=0
Reduce input groups=2
Reduce shuffle bytes=47
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)=61
Total committed heap usage (bytes)=263520256
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=151
File Output Format Counters
Bytes Written=37
참고: 출력 디렉토리가 이미 있으면 프로그램이 실패하고 다음과 같이 출력됩니다.Output . . .
at java.lang.reflect.Method.invoke(Method.java:498)
at org.apache.hadoop.util.RunJar.run(RunJar.java:221)
at org.apache.hadoop.util.RunJar.main(RunJar.java:136)
결과는 출력 디렉터리에 저장되며, 출력 디렉터리에서 실행됩니다grep_example
.- cat ~/grep_example/*
Output6 principal
1 principal.
맵 Reduce 작업에서 한 단어principal
를 발견한 후 한 문장과 여섯 단어가 나타나지 않았습니다.실행 예시 프로그램은 우리의 독립 설치가 정상적으로 작동하는지 검증했고, 시스템의 비특권 사용자는 Hadoop을 실행하여 탐색이나 디버깅을 할 수 있다.결론
이 강좌에서 우리는 독립 모드로 Hadoop을 설치하고 실행한 예시 프로그램을 통해 이를 검증했다.맵Reduce 프로그램을 작성하는 방법을 알아보려면 아파치 Hadoop MapReduce tutorial 에 접근해야 할 수도 있습니다. 이 프로그램은 예시 뒤에 있는 코드를 훑어볼 수 있습니다.클러스터를 설정할 준비가 되면 Apache FoundationHadoop Cluster Setup 안내서를 참조하십시오.