웹사이트 검색

CentOS 7에 Hadoop 단일 노드 클러스터(Pseudonode)를 설치하는 방법


Hadoop빅데이터를 처리하는 데 널리 사용되는 오픈 소스 프레임워크입니다. 대부분의 빅데이터/데이터 분석 프로젝트는 Hadoop 생태계 위에 구축되고 있습니다. 2개의 레이어로 구성되어 있는데, 하나는 데이터 저장용이고 다른 하나는 데이터 처리용입니다.

저장소HDFS(Hadoop 분산 파일 시스템)라는 자체 파일 시스템에서 관리되며 처리가 수행됩니다. YARN(Yet Another Resource Negotiator)의 관리를 받습니다. MapreduceHadoop 에코시스템의 기본 처리 엔진입니다.

이 문서에서는 모든 데몬(JVM)이 설치되는 Hadoop유사 노드 설치 프로세스를 설명합니다. CentOS 7에서 단일 노드 클러스터를 실행 중입니다.

주로 하둡을 처음 배우시는 분들을 위한 내용입니다. 실시간으로 Hadoop은 데이터가 서버 간에 블록으로 분산되고 작업이 병렬 방식으로 실행되는 다중 노드 클러스터로 설치됩니다.

전제 조건

  • CentOS 7 서버의 최소 설치.
  • 자바 v1.8 릴리스.
  • Hadoop 2.x 안정 릴리스.

이 페이지에서

  • CentOS 7에 Java를 설치하는 방법
  • CentOS 7에서 비밀번호 없는 로그인 설정
  • CentOS 7에 Hadoop 단일 노드를 설치하는 방법
  • CentOS 7에서 Hadoop을 구성하는 방법
  • NameNode를 통해 HDFS 파일 시스템 포맷

CentOS 7에 자바 설치

1. HadoopJava로 구성된 생태계입니다. Hadoop을 설치하려면 시스템에 Java가 필수로 설치되어 있어야 합니다.

yum install java-1.8.0-openjdk

2. 다음으로 시스템에 설치된 Java 버전을 확인합니다.

java -version

CentOS 7에서 비밀번호 없는 로그인 구성

우리 컴퓨터에 SSH를 구성해야 합니다. HadoopSSH를 사용하여 노드를 관리합니다. 마스터 노드는 SSH 연결을 사용하여 슬레이브 노드를 연결하고 시작 및 중지와 같은 작업을 수행합니다.

마스터가 비밀번호 없이 SSH를 사용하여 슬레이브와 통신할 수 있도록 비밀번호 없는 SSH를 설정해야 합니다. 그렇지 않으면 각 연결 설정에 대해 비밀번호를 입력해야 합니다.

이 단일 노드에는 마스터 서비스(네임노드, 보조 네임노드리소스 관리자) 및 슬레이브< 서비스(DatanodeNodemanager)는 별도의 JVM으로 실행됩니다. 단일 노드임에도 마스터가 인증 없이 슬레이브와 통신하도록 하려면 비밀번호 없는 SSH가 필요합니다.

3. 서버에서 다음 명령을 사용하여 비밀번호 없는 SSH 로그인을 설정합니다.

ssh-keygen
ssh-copy-id -i localhost

4. 비밀번호 없는 SSH 로그인을 구성한 후 다시 로그인을 시도하면 비밀번호 없이 연결됩니다.

ssh localhost

CentOS 7에 Hadoop 설치

5. Apache Hadoop 웹사이트로 이동하여 다음 wget 명령을 사용하여 Hadoop의 안정 릴리스를 다운로드합니다.

wget https://archive.apache.org/dist/hadoop/core/hadoop-2.10.1/hadoop-2.10.1.tar.gz
tar xvpzf hadoop-2.10.1.tar.gz

6. 다음으로 ~/.bashrc 파일에 Hadoop 환경 변수를 그림과 같이 추가합니다.

HADOOP_PREFIX=/root/hadoop-2.10.1
PATH=$PATH:$HADOOP_PREFIX/bin
export PATH JAVA_HOME HADOOP_PREFIX

7. 파일 ~/.bashrc에 환경 변수를 추가한 후 파일을 소싱하고 다음 명령을 실행하여 Hadoop을 확인합니다.

source ~/.bashrc
cd $HADOOP_PREFIX
bin/hadoop version

CentOS 7에서 Hadoop 구성

귀하의 컴퓨터에 맞게 아래 Hadoop 구성 파일을 구성해야 합니다. Hadoop에서 각 서비스에는 데이터를 저장할 자체 포트 번호와 디렉토리가 있습니다.

  • Hadoop 구성 파일 - core-site.xml, hdfs-site.xml, mapred-site.xml 및 Yarn-site.xml

8. 먼저 hadoop-env.sh 파일에서 JAVA_HOMEHadoop 경로를 다음과 같이 업데이트해야 합니다. .

cd $HADOOP_PREFIX/etc/hadoop
vi hadoop-env.sh

파일 시작 부분에 다음 줄을 입력합니다.

export JAVA_HOME=/usr/lib/jvm/java-1.8.0/jre
export HADOOP_PREFIX=/root/hadoop-2.10.1

9. 다음으로 core-site.xml 파일을 수정합니다.

cd $HADOOP_PREFIX/etc/hadoop
vi core-site.xml

표시된 대로 <configuration> 태그 사이에 다음을 붙여넣습니다.

<configuration>
            <property>
                   <name>fs.defaultFS</name>
                   <value>hdfs://localhost:9000</value>
           </property>
</configuration>

10. NNDN 저장소에 사용될 tecmint 사용자 홈 디렉토리 아래에 아래 디렉토리를 만듭니다.

mkdir -p /home/tecmint/hdata/
mkdir -p /home/tecmint/hdata/data
mkdir -p /home/tecmint/hdata/name

10. 다음으로 hdfs-site.xml 파일을 수정합니다.

cd $HADOOP_PREFIX/etc/hadoop
vi hdfs-site.xml

표시된 대로 <configuration> 태그 사이에 다음을 붙여넣습니다.

<configuration>
<property>
        <name>dfs.replication</name>
        <value>1</value>
 </property>
  <property>
        <name>dfs.namenode.name.dir</name>
        <value>/home/tecmint/hdata/name</value>
  </property>
  <property>
          <name>dfs .datanode.data.dir</name>
          <value>home/tecmint/hdata/data</value>
  </property>
</configuration>

11. 다시 mapred-site.xml 파일을 수정합니다.

cd $HADOOP_PREFIX/etc/hadoop
cp mapred-site.xml.template mapred-site.xml
vi mapred-site.xml

표시된 대로 <configuration> 태그 사이에 다음을 붙여넣습니다.

<configuration>
                <property>
                        <name>mapreduce.framework.name</name>
                        <value>yarn</value>
                </property>
</configuration>

12. 마지막으로 yarn-site.xml 파일을 수정합니다.

cd $HADOOP_PREFIX/etc/hadoop
vi yarn-site.xml

표시된 대로 <configuration> 태그 사이에 다음을 붙여넣습니다.

<configuration>
                <property>
                       <name>yarn.nodemanager.aux-services</name>
                       <value>mapreduce_shuffle</value>
                </property>
</configuration>

NameNode를 통해 HDFS 파일 시스템 포맷

13. 클러스터를 시작하기 전에 설치된 로컬 시스템에서 Hadoop NN을 포맷해야 합니다. 일반적으로 클러스터를 처음 시작하기 전 초기 단계에서 수행됩니다.

NN을 포맷하면 NN 메타스토어의 데이터가 손실되므로 더 주의해야 합니다. 의도적으로 필요하지 않은 한 클러스터가 실행되는 동안 NN을 포맷하면 안 됩니다.

cd $HADOOP_PREFIX
bin/hadoop namenode -format

14. NameNode 데몬과 DataNode 데몬을 시작합니다: (포트 50070).

cd $HADOOP_PREFIX
sbin/start-dfs.sh

15. ResourceManager 데몬과 NodeManager 데몬을 시작합니다(포트 8088).

sbin/start-yarn.sh

16. 모든 서비스를 중지합니다.

sbin/stop-dfs.sh
sbin/stop-dfs.sh
요약

요약
이 문서에서는 Hadoop 유사 노드(단일 노드) 클러스터를 설정하는 단계별 프로세스를 살펴보았습니다. Linux에 대한 기본 지식이 있고 다음 단계를 따르면 40분 안에 클러스터가 UP됩니다.

이는 초보자가 Hadoop을 학습하고 연습하는 데 매우 유용할 수 있으며, Hadoop의 바닐라 버전을 개발 목적으로 사용할 수 있습니다. 실시간 클러스터를 갖고 싶다면 최소 3개의 물리적 서버가 필요하거나 여러 서버를 보유하기 위해 클라우드를 프로비저닝해야 합니다.