Ubuntu 16.04에서 Hadoop을 독립 실행형으로 설치하는 방법

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 Common은 다른 Hadoop 모듈을 지원하는 유틸리티와 라이브러리의 집합입니다.
  • HDFS는 Hadoop 분산 파일 시스템을 대표하여 데이터를 디스크에 오래 지속시키는 것을 책임진다.
  • 사선은 또 다른 자원 협상자의 약칭으로 HDFS의'운영체제'이다.
  • MapReduce는 Hadoop 클러스터의 원본 처리 모델입니다.그것은 집단이나 맵에서 작업을 분배한 후에 노드의 결과를 조직하여 조회에 대한 응답으로 줄인다.많은 다른 처리 모델은 2에 사용할 수 있다.Hadoop의 x 버전입니다.
  • Hadoop 집단의 설정이 상대적으로 복잡하기 때문에 이 프로젝트는 Hadoop을 배우고 간단한 조작과 디버깅을 실행하기에 적합한 독립적인 모델을 포함한다.
    이 강좌에서는 Hadoop을 독립 모드로 설치하고 그 중 하나의 예시인 MapReduce 프로그램을 실행하여 설치를 검증합니다.

    선결 조건


    본 강좌를 배우려면 다음이 필요합니다.
  • 권한이 있는 비루트 사용자의 Ubuntu 16.04 서버: Initial Server Setup with Ubuntu 16.04 안내서에서 권한이 있는 사용자를 설정하는 방법에 대한 자세한 정보를 확인할 수 있습니다.
  • 이 전제 조건을 완성하면 Hadoop과 의존 항목을 설치할 수 있습니다.
    시작하기 전에 An Introduction to Big Data Concepts and Terminology 또는 An Introduction to Hadoop

    1단계 - Java 설치


    시작하려면 패키지 목록을 업데이트합니다.
    1. sudo apt-get update
    다음은 기본 Java 개발 패키지인 Ubuntu 16.04에 OpenJDK를 설치합니다.
    1. sudo apt-get install default-jdk
    설치가 완료되면 버전을 확인하겠습니다.
    1. java -version
    Output
    openjdk 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을 사용합니다.
    1. 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 링크를 클릭합니다.

    다운로드 버전의 디렉토리를 입력합니다.
    Screenshot highlighting the .mds file
    마지막으로 다운로드 버전wget 파일을 찾은 다음 해당 파일의 링크를 복사합니다.

    마찬가지로 파일 위치를 복사하려면 마우스 오른쪽 버튼을 클릭하고 .mds 를 사용하여 파일을 전송합니다.
    1. wget https://dist.apache.org/repos/dist/release/hadoop/common/hadoop-2.7.3/hadoop-2.7.3.tar.gz.mds
    그런 다음 검증을 실행합니다.
    1. shasum -a 256 hadoop-2.7.3.tar.gz
    Output
    d489df3808244b906eb38f4d081ba49e50c4603db03efd5e594a1e98b09259c2 hadoop-2.7.3.tar.gz
    이 값을 wget 파일의 SHA-256 값과 비교합니다.
    1. 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 파일에서 추출하도록 지정할 것입니다.다음 명령에서 탭을 사용하여 올바른 버전 번호를 보완하거나 대체합니다.
    1. tar -xzvf hadoop-2.7.3.tar.gz
    마지막으로, 우리는 추출한 파일을 -f로 옮길 것이다. 이것은 로컬 설치 소프트웨어의 적당한 위치이다.필요한 경우 다운로드한 버전과 일치하도록 버전 번호를 변경합니다.
    1. sudo mv hadoop-2.7.3 /usr/local/hadoop
    소프트웨어가 있으면 우리는 그것의 환경을 설정할 수 있다.

    3단계 - Hadoop의 Java 홈 페이지 구성


    Hadoop에서는 환경 변수 또는 Hadoop 구성 파일에 설정할 수 있는 Java로 경로를 설정해야 합니다.
    Java 경로 /usr/local/usr/bin/java 를 가리키는 기호 링크이며, 기본 Java 바이너리 파일을 가리키는 기호 링크입니다.우리는 /etc/alternatives/javareadlink 로고를 사용하여 경로의 각 부분에 있는 모든 기호 링크를 추적할 것입니다.그리고 우리는 -f 출력에서 sed 를 잘라내서 bin/java 의 정확한 값을 얻을 것이다.
    기본 Java 경로 찾기
    1. 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:
    1. 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.shJAVA_HOME 값이 환경이나 사용자 프로필에 설정된 값을 덮어씁니다.

    단계 4 - Hadoop 실행


    이제 Hadoop을 실행할 수 있습니다.
    1. /usr/local/hadoop/bin/hadoop
    Output
    Usage: 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의 프로필을 복사해서 이 파일들을 우리의 데이터로 사용합니다.
    1. mkdir ~/input
    2. cp /usr/local/hadoop/etc/hadoop/*.xml ~/input
    다음은 Java 아카이브 파일인 MapReduce /etc/profile 프로그램을 실행하는 데 사용할 수 있는 명령입니다. 몇 가지 옵션이 있습니다.우리는 input 프로그램을 호출할 것이다. 이것은 hadoop-mapreduce-examples 에 포함된 많은 예시 중의 하나이며, 그 다음은 입력 디렉터리 grep 와 출력 디렉터리 hadoop-mapreduce-examples 이다.맵Reduce grep 프로그램은 문자나 정규 표현식의 일치 항목을 통계합니다.마지막으로, 우리는 이 단어 input 가 성명성 문장 내나 끝에 나타나는 상황을 찾기 위해 정규 표현식을 제공할 것이다.표현식은 대소문자를 구분하므로 문장 첫머리에 대문자를 쓰면 이 단어를 찾을 수 없습니다.
    1. /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.
    1. cat ~/grep_example/*
    Output
    6 principal 1 principal.
    맵 Reduce 작업에서 한 단어principal를 발견한 후 한 문장과 여섯 단어가 나타나지 않았습니다.실행 예시 프로그램은 우리의 독립 설치가 정상적으로 작동하는지 검증했고, 시스템의 비특권 사용자는 Hadoop을 실행하여 탐색이나 디버깅을 할 수 있다.

    결론


    이 강좌에서 우리는 독립 모드로 Hadoop을 설치하고 실행한 예시 프로그램을 통해 이를 검증했다.맵Reduce 프로그램을 작성하는 방법을 알아보려면 아파치 Hadoop MapReduce tutorial 에 접근해야 할 수도 있습니다. 이 프로그램은 예시 뒤에 있는 코드를 훑어볼 수 있습니다.클러스터를 설정할 준비가 되면 Apache FoundationHadoop Cluster Setup 안내서를 참조하십시오.