본문 바로가기

Bigdata Hadoop

Windows에 Hadoop을 설치하는 방법

반응형

 

Windows 환경에서 Hadoop을 설치하는 방법 

 

Hadoop은 빅데이터를 저장, 처리 및 분석하기 위해 Apache에서 개발한 오픈 소스 프레임워크입니다. Hadoop은 Java를 사용하여 작성되며 오프라인 배치 처리에 사용됩니다. 

 

원문 기사를 보시려면 이 링크를 따라가세요.

 

 

Hadoop에 대해 자세히 설명하기 전에 먼저 빅 데이터의 개념을 파악해야 합니다. 기본적으로 빅 데이터는 크기가 매우 큰 데이터입니다. 빅 데이터에 대해 이야기할 때는 주로 3V에 초점을 맞춰야 합니다.

 

01. 속도: 데이터가 매우 빠르게 증가하고 있습니다. 이는 빅데이터의 속도가 매우 빠르다는 것을 의미합니다.

 

02. 다양성: 빅데이터에는 다양한 데이터가 존재합니다. 정형 데이터, 반정형 데이터, 비정형 데이터 등이 있습니다.

 

03. 볼륨: 빅 데이터는 페타바이트와 같이 대용량입니다.

 

다음은 빅데이터를 생성하는 몇 가지 소스입니다.

 

=> 소셜 미디어: 페이스북, 트위터, 틱톡과 같은 소셜 미디어 플랫폼은 전 세계 수십억 명의 사용자를 보유하면서 하루 동안 많은 양의 데이터를 생성합니다.

 

=> 전자 상거래 사이트: Amazon, eBay와 같은 전자상거래 사이트에서는 일상적인 로그에서 엄청난 양의 데이터를 생성하고 있었습니다.

 

=> 날씨 사이트: 일기 예보 사이트는 미래 일기 예보를 위해 매일 엄청난 양의 데이터를 수집하고 있었습니다.

 

=> 주식 시장: 주식 시장은 매일의 거래를 통해 엄청난 양의 데이터를 생성합니다.

 

위의 빅데이터에 대한 정보를 통해 기존 데이터베이스로는 빅데이터를 저장할 수 없다는 것을 알 수 있습니다. 이제 하둡의 주요 개념을 이해해 봅시다. 다음은 하둡 프레임워크의 주요 모듈입니다.

 

01. HDFS: Hadoop 분산 파일 시스템은 데이터를 여러 블록으로 나누고 분산 아키텍처를 통해 해당 블록을 부분적으로 활용하여 데이터를 저장하는 데 사용됩니다.

 

02. Yarn: 작업을 예약하고 클러스터를 관리하는 데 사용되는 리소스 협상자입니다.

 

03. 맵 리듀스: 이 프레임워크는 Java 프로그램이 키-값 쌍을 사용하여 데이터에 대한 병렬 연산을 수행할 수 있도록 도와줍니다. 지도 작업은 입력을 받아 키-값 쌍으로 계산할 수 있는 데이터 집합으로 변환합니다. 지도 작업의 출력은 축소 작업에 의해 소비되고, 축소 작업은 원하는 결과를 제공합니다.

 

04. Hadoop Common: 이 Java 라이브러리는 Hadoop을 시작하는 데 사용되었으며 다른 Hadoop 모듈에서 사용됩니다. 실제로 이러한 라이브러리는 Hadoop 활용 라이브러리 역할을 합니다.

 

이제 Hadoop 아키텍처와 위의 모듈이 실제로 Hadoop에서 어떻게 작동하는지 빠르게 이해해 보겠습니다.  

 

Hadoop 클러스터는 하나의 마스터 노드와 여러 개의 슬레이브 노드로 구성됩니다. 마스터 노드에는 작업 추적기, 작업 추적기, 이름 노드 및 데이터 노드가 포함되며, 슬레이브 노드에는 날짜 노드 및 작업 추적기가 포함됩니다. 이제 이러한 구성 요소가 Map Reduce 엔진과 HDFS에서 어떻게 작동하는지 이해해 보겠습니다.

 

=> HDFS 레이어: 이 계층에서는 단일 이름 노드가 마스터 역할을 하고 여러 데이터 노드가 슬레이브 역할을 합니다. HDFS는 Java를 사용하여 개발되었지만, Java를 지원하는 모든 머신에서 이러한 네임 노드와 데이터 노드를 유지할 수 있습니다. 이제 네임 노드와 데이터 노드에 대해 이해해 보겠습니다.

 

01. 네임 노드: HDFS 클러스터의 마스터 레이어에 존재하는 단일 노드입니다. 파일 열기, 이름 바꾸기, 닫기 등의 작업을 실행하여 파일 시스템을 관리합니다. 그러나 단일 노드이기 때문에 단일 지점 장애를 설명할 수 있습니다.

 

02. 데이터 노드: HDFS 클러스터에는 여러 개의 데이터 노드가 있으며, 각 데이터 노드에는 여러 개의 데이터 블록이 포함되어 있습니다. 이러한 데이터 블록이 실제로 데이터를 저장합니다. 데이터 노드는 파일 시스템 클라이언트의 읽기 및 쓰기 요청과 네임 노드의 명령에 따른 데이터 블록의 생성 및 삭제를 담당합니다.

 

=> 맵 감소 레이어: 클라이언트 애플리케이션이 맵 축소 작업 트래커에 작업을 제출하면 적절한 작업 트래커에 요청을 보냅니다. 작업 추적기는 요청을 수행하고 클라이언트에 응답을 다시 보냅니다. 이제 작업 트래커와 작업 트래커에 대해 간략하게 알아보겠습니다.

 

01. 작업 트래커: 작업 트래커의 주된 역할은 클라이언트로부터 지도 축소된 작업을 받아 네임 노드를 사용하여 데이터를 처리하는 것입니다. 작업 트래커의 마스터 노드입니다.

 

02. 작업 트래커: 작업 트래커로부터 작업과 코드를 받아 데이터에 코드를 적용하는 역할을 담당합니다. 이 과정은 매퍼 작업과 유사합니다. 또한 작업 트래커는 작업 트래커의 슬레이브 노드이기도 합니다.

 

이제 Windows 환경에서 Hadoop을 설치하는 방법을 단계별로 살펴보겠습니다.

 

01단계: Windows 시스템에 Java 8을 설치하고 Java 8에 대한 환경 변수를 구성합니다. 터미널에서 다음 명령을 사용하여 Java 8이 올바르게 설치 및 구성되었는지 확인할 수 있습니다.

 

java -version

 

 

02단계: 다음 웹 페이지를 사용하여 Apache Hadoop의 최신 바이너리 버전을 다운로드할 수 있습니다.  

 

03단계: 다음으로 다음과 같이 바이너리를 원하는 위치에 압축을 풉니다. 

 

 

04단계: 다음으로, 다음과 같이 core-site XML 파일에 구성을 추가해야 합니다. 이 파일은 hadoop-root-folder -> etc -> hadoop -> core-site.xml에서 찾을 수 있습니다. 

 

<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<!--
  Licensed under the Apache License, Version 2.0 (the "License");
  you may not use this file except in compliance with the License.
  You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

  Unless required by applicable law or agreed to in writing, software
  distributed under the License is distributed on an "AS IS" BASIS,
  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  See the License for the specific language governing permissions and
  limitations under the License. See accompanying LICENSE file.
-->

<!-- Put site-specific property overrides in this file. -->

<configuration>
    
    <!-- This should be added -->
    <property>
        <name>fs.defaulterFS</name>
        <value>hdfs://localhost:900</value>
    </property>
    
</configuration>

 

 

 

 

05단계: 이제 mapred-site XML 파일에 구성을 추가해야 합니다. 이 파일은 hadoop-root-folder -> etc -> hadoop -> mapred-site.xml에서 찾을 수 있습니다. 

 

<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<!--
  Licensed under the Apache License, Version 2.0 (the "License");
  you may not use this file except in compliance with the License.
  You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

  Unless required by applicable law or agreed to in writing, software
  distributed under the License is distributed on an "AS IS" BASIS,
  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  See the License for the specific language governing permissions and
  limitations under the License. See accompanying LICENSE file.
-->

<!-- Put site-specific property overrides in this file. -->

<configuration>

    <!-- This should be added -->
    <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>

</configuration>

 

 

 

06단계: 이제 yarn-site XML 파일에 구성을 추가해야 합니다. 이 파일은 hadoop-root-folder -> etc -> hadoop -> yarn-site.xml에서 찾을 수 있습니다. 

 

<?xml version="1.0"?>
<!--
  Licensed under the Apache License, Version 2.0 (the "License");
  you may not use this file except in compliance with the License.
  You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

  Unless required by applicable law or agreed to in writing, software
  distributed under the License is distributed on an "AS IS" BASIS,
  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  See the License for the specific language governing permissions and
  limitations under the License. See accompanying LICENSE file.
-->
<configuration>

    <!-- This should be added -->
    <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
    </property>

    <property>
        <name>yarn.nodemanager.auxservices.mapreduce.shuffle</name>
        <value>org.apache.hadoop.mapred.shufflehandler</value>
    </property>

</configuration>

 

 

 

07단계: 이제 네임 노드와 데이터 노드 폴더를 만들어야 합니다. 이를 위해 Hadoop 루트 디렉토리로 이동하여 데이터 폴더를 만듭니다. 데이터 폴더 안에 네임노드와 데이터노드 폴더를 만들어야 합니다. 

 

 

 

08단계: 이제 hdfs-site XML 파일에 구성을 추가해야 합니다. 이 파일은 hadoop-root-folder -> etc -> hadoop -> hdfs-site.xml에서 찾을 수 있습니다. 네임노드 및 데이터노드 폴더 경로는 사용자의 컴퓨터에 따라 바꿔야 합니다. 

 

<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<!--
  Licensed under the Apache License, Version 2.0 (the "License");
  you may not use this file except in compliance with the License.
  You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

  Unless required by applicable law or agreed to in writing, software
  distributed under the License is distributed on an "AS IS" BASIS,
  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  See the License for the specific language governing permissions and
  limitations under the License. See accompanying LICENSE file.
-->

<!-- Put site-specific property overrides in this file. -->

<configuration>

    <!-- This should be added -->
    <property>
        <name>dfs.replication</name>
        <value>1</value>
    </property>

    <property>
        <name>dfs.namenode.name.dir</name>
        <value>C:\hadoop-3.4.0\data\namenode</value>
    </property>

    <property>
        <name>dfs.datanode.name.dir</name>
        <value>C:\hadoop-3.4.0\data\datanode</value>
    </property>

</configuration>

 

 

 

09단계: 이제 hadoop-env CMD 파일에 구성을 추가해야 합니다. 이 파일은 hadoop-root-folder -> etc -> hadoop ->hadoop-env.cmd에서 찾을 수 있습니다. JAVA_HOME 경로를 다음과 같이 머신 jdk 경로로 설정해야 합니다. 

 

 

 

10단계: 다음으로 Hadoop의 환경 변수를 설정해야 합니다. 이를 위해 다음과 같이 루트 디렉터리 경로로 HADOOP_HOME 경로를 추가합니다. 

 

 

 

다음으로, 다음과 같이 Hadoop bin 및 sbin 디렉터리 경로에 대한 시스템 변수 경로 항목을 추가합니다. 

 

 

 

11단계: 마지막으로 Hadoop이 성공적으로 설치되었는지 여부를 확인할 수 있습니다. 이를 위해 터미널에서 다음 명령을 실행합니다. 

 

hdfs namenode -format

 

 

 

 

cd hadoop-3.4.0\sbin
start-all.cmd

 

 

 

이 명령이 성공적으로 실행되면 Apache Hadoop 설치가 완료된 것입니다. 향후 블로그에서 실제 예제를 통해 HDFS 모듈과 Map Reduce 모듈에 대해 설명하겠습니다. 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

반응형

더욱 좋은 정보를 제공하겠습니다.~ ^^