Hadoop-환경 설정
Hadoop은 GNU / Linux 플랫폼과 그 특징에 의해 지원됩니다. 따라서 하둡 환경을 설정하기 위해서는 리눅스 운영체제를 설치해야합니다. Linux 이외의 OS가있는 경우 Virtualbox 소프트웨어를 설치하고 Virtualbox 안에 Linux를 포함 할 수 있습니다.
사전 설치 설정
Linux 환경에 Hadoop을 설치하기 전에 다음을 사용하여 Linux를 설정해야합니다. ssh(보안 쉘). Linux 환경을 설정하려면 아래 단계를 따르십시오.
사용자 생성
처음에는 Hadoop에 대해 별도의 사용자를 생성하여 Hadoop 파일 시스템을 Unix 파일 시스템과 분리하는 것이 좋습니다. 사용자를 생성하려면 아래 단계를 따르십시오-
"su"명령을 사용하여 루트를 엽니 다.
"useradd username"명령을 사용하여 루트 계정에서 사용자를 만듭니다.
이제 "su username"명령을 사용하여 기존 사용자 계정을 열 수 있습니다.
Linux 터미널을 열고 다음 명령을 입력하여 사용자를 만듭니다.
$ su
password:
# useradd hadoop
# passwd hadoop
New passwd:
Retype new passwd
SSH 설정 및 키 생성
클러스터에서 시작, 중지, 분산 데몬 셸 작업과 같은 다른 작업을 수행하려면 SSH 설정이 필요합니다. 다른 Hadoop 사용자를 인증하려면 Hadoop 사용자에 대해 공개 / 개인 키 쌍을 제공하고이를 다른 사용자와 공유해야합니다.
다음 명령은 SSH를 사용하여 키 값 쌍을 생성하는 데 사용됩니다. 공개 키 형식 id_rsa.pub를 authorized_keys에 복사하고 소유자에게 각각 authorized_keys 파일에 대한 읽기 및 쓰기 권한을 제공합니다.
$ ssh-keygen -t rsa
$ cat ~/.ssh/id_rsa.pub >> ~/.ssh/authorized_keys
$ chmod 0600 ~/.ssh/authorized_keys
자바 설치
Java는 Hadoop의 주요 전제 조건입니다. 먼저 "java -version"명령을 사용하여 시스템에 java가 있는지 확인해야합니다. Java 버전 명령 구문은 다음과 같습니다.
$ java -version
모든 것이 정상이면 다음과 같은 출력을 제공합니다.
java version "1.7.0_71"
Java(TM) SE Runtime Environment (build 1.7.0_71-b13)
Java HotSpot(TM) Client VM (build 25.0-b02, mixed mode)
시스템에 java가 설치되어 있지 않은 경우 아래 단계에 따라 java를 설치하십시오.
1 단계
다음 링크를 방문하여 Java (JDK <최신 버전>-X64.tar.gz)를 다운로드하십시오. www.oracle.com
그때 jdk-7u71-linux-x64.tar.gz 시스템에 다운로드됩니다.
2 단계
일반적으로 다운로드 폴더에서 다운로드 한 Java 파일을 찾을 수 있습니다. 그것을 확인하고 추출jdk-7u71-linux-x64.gz 다음 명령을 사용하여 파일.
$ cd Downloads/
$ ls
jdk-7u71-linux-x64.gz
$ tar zxf jdk-7u71-linux-x64.gz
$ ls
jdk1.7.0_71 jdk-7u71-linux-x64.gz
3 단계
모든 사용자가 Java를 사용할 수 있도록하려면 "/ usr / local /"위치로 이동해야합니다. 루트를 열고 다음 명령을 입력하십시오.
$ su
password:
# mv jdk1.7.0_71 /usr/local/
# exit
4 단계
설정 용 PATH 과 JAVA_HOME 변수에 다음 명령을 추가하십시오. ~/.bashrc 파일.
export JAVA_HOME=/usr/local/jdk1.7.0_71
export PATH=$PATH:$JAVA_HOME/bin
이제 모든 변경 사항을 현재 실행중인 시스템에 적용합니다.
$ source ~/.bashrc
5 단계
다음 명령을 사용하여 Java 대안을 구성하십시오-
# alternatives --install /usr/bin/java java usr/local/java/bin/java 2
# alternatives --install /usr/bin/javac javac usr/local/java/bin/javac 2
# alternatives --install /usr/bin/jar jar usr/local/java/bin/jar 2
# alternatives --set java usr/local/java/bin/java
# alternatives --set javac usr/local/java/bin/javac
# alternatives --set jar usr/local/java/bin/jar
이제 위에서 설명한대로 터미널에서 java -version 명령을 확인합니다.
Hadoop 다운로드
다음 명령을 사용하여 Apache 소프트웨어 기반에서 Hadoop 2.4.1을 다운로드하고 추출합니다.
$ su
password:
# cd /usr/local
# wget http://apache.claz.org/hadoop/common/hadoop-2.4.1/
hadoop-2.4.1.tar.gz
# tar xzf hadoop-2.4.1.tar.gz
# mv hadoop-2.4.1/* to hadoop/
# exit
Hadoop 작동 모드
Hadoop을 다운로드하면 지원되는 세 가지 모드 중 하나에서 Hadoop 클러스터를 작동 할 수 있습니다.
Local/Standalone Mode − 시스템에 Hadoop을 다운로드하면 기본적으로 독립형 모드로 구성되며 단일 Java 프로세스로 실행할 수 있습니다.
Pseudo Distributed Mode− 단일 머신에 대한 분산 시뮬레이션입니다. hdfs, yarn, MapReduce 등과 같은 각 Hadoop 데몬은 별도의 Java 프로세스로 실행됩니다. 이 모드는 개발에 유용합니다.
Fully Distributed Mode−이 모드는 클러스터로 최소 2 개 이상의 머신으로 완전히 분산됩니다. 이 모드는 다음 장에서 자세히 다룰 것입니다.
독립형 모드로 Hadoop 설치
여기서 우리는 Hadoop 2.4.1 독립형 모드에서.
실행중인 데몬이 없으며 모든 것이 단일 JVM에서 실행됩니다. 독립 실행 형 모드는 테스트 및 디버그가 쉽기 때문에 개발 중에 MapReduce 프로그램을 실행하는 데 적합합니다.
Hadoop 설정
다음 명령을 추가하여 Hadoop 환경 변수를 설정할 수 있습니다. ~/.bashrc 파일.
export HADOOP_HOME=/usr/local/hadoop
계속 진행하기 전에 Hadoop이 제대로 작동하는지 확인해야합니다. 다음 명령을 실행하십시오-
$ hadoop version
설정에 문제가 없으면 다음 결과가 표시됩니다.
Hadoop 2.4.1
Subversion https://svn.apache.org/repos/asf/hadoop/common -r 1529768
Compiled by hortonmu on 2013-10-07T06:28Z
Compiled with protoc 2.5.0
From source with checksum 79e53ce7994d1628b240f09af91e1af4
Hadoop의 독립형 모드 설정이 제대로 작동하고 있음을 의미합니다. 기본적으로 Hadoop은 단일 시스템에서 비 분산 모드로 실행되도록 구성됩니다.
예
Hadoop의 간단한 예를 살펴 보겠습니다. Hadoop 설치는 MapReduce의 기본 기능을 제공하고 Pi 값, 주어진 파일 목록의 단어 수 등과 같은 계산에 사용할 수있는 다음 예제 MapReduce jar 파일을 제공합니다.
$HADOOP_HOME/share/hadoop/mapreduce/hadoop-mapreduce-examples-2.2.0.jar
몇 개의 파일을 푸시 할 입력 디렉터리를 만들고 해당 파일의 총 단어 수를 계산해야합니다. 총 단어 수를 계산하기 위해 .jar 파일에 단어 수 구현이 포함되어 있으면 MapReduce를 작성할 필요가 없습니다. 동일한 .jar 파일을 사용하여 다른 예제를 시도 할 수 있습니다. 다음 명령을 실행하여 hadoop-mapreduce-examples-2.2.0.jar 파일로 지원되는 MapReduce 기능 프로그램을 확인하십시오.
$ hadoop jar $HADOOP_HOME/share/hadoop/mapreduce/hadoop-mapreduceexamples-2.2.0.jar
1 단계
입력 디렉터리에 임시 콘텐츠 파일을 만듭니다. 작업하고 싶은 모든 곳에이 입력 디렉토리를 만들 수 있습니다.
$ mkdir input
$ cp $HADOOP_HOME/*.txt input
$ ls -l input
입력 디렉토리에 다음 파일이 제공됩니다.
total 24
-rw-r--r-- 1 root root 15164 Feb 21 10:14 LICENSE.txt
-rw-r--r-- 1 root root 101 Feb 21 10:14 NOTICE.txt
-rw-r--r-- 1 root root 1366 Feb 21 10:14 README.txt
이러한 파일은 Hadoop 설치 홈 디렉토리에서 복사되었습니다. 실험을 위해 다양하고 큰 파일 세트를 가질 수 있습니다.
2 단계
다음과 같이 입력 디렉토리에서 사용 가능한 모든 파일의 총 단어 수를 계산하는 Hadoop 프로세스를 시작하겠습니다.
$ hadoop jar $HADOOP_HOME/share/hadoop/mapreduce/hadoop-mapreduceexamples-2.2.0.jar wordcount input output
3 단계
Step-2는 필요한 처리를 수행하고 output / part-r00000 파일에 출력을 저장합니다.-
$cat output/*
입력 디렉토리에서 사용 가능한 모든 파일에서 사용 가능한 총 개수와 함께 모든 단어를 나열합니다.
"AS 4
"Contribution" 1
"Contributor" 1
"Derivative 1
"Legal 1
"License" 1
"License"); 1
"Licensor" 1
"NOTICE” 1
"Not 1
"Object" 1
"Source” 1
"Work” 1
"You" 1
"Your") 1
"[]" 1
"control" 1
"printed 1
"submitted" 1
(50%) 1
(BIS), 1
(C) 1
(Don't) 1
(ECCN) 1
(INCLUDING 2
(INCLUDING, 2
.............
의사 분산 모드에서 Hadoop 설치
의사 분산 모드에서 Hadoop 2.4.1을 설치하려면 아래 단계를 따르십시오.
1 단계-Hadoop 설정
다음 명령을 추가하여 Hadoop 환경 변수를 설정할 수 있습니다. ~/.bashrc 파일.
export HADOOP_HOME=/usr/local/hadoop
export HADOOP_MAPRED_HOME=$HADOOP_HOME
export HADOOP_COMMON_HOME=$HADOOP_HOME
export HADOOP_HDFS_HOME=$HADOOP_HOME
export YARN_HOME=$HADOOP_HOME
export HADOOP_COMMON_LIB_NATIVE_DIR=$HADOOP_HOME/lib/native
export PATH=$PATH:$HADOOP_HOME/sbin:$HADOOP_HOME/bin
export HADOOP_INSTALL=$HADOOP_HOME
이제 모든 변경 사항을 현재 실행중인 시스템에 적용합니다.
$ source ~/.bashrc
2 단계-Hadoop 구성
"$ HADOOP_HOME / etc / hadoop"위치에서 모든 Hadoop 구성 파일을 찾을 수 있습니다. Hadoop 인프라에 따라 이러한 구성 파일을 변경해야합니다.
$ cd $HADOOP_HOME/etc/hadoop
Java에서 Hadoop 프로그램을 개발하려면 다음에서 Java 환경 변수를 재설정해야합니다. hadoop-env.sh 대체하여 파일 JAVA_HOME 시스템의 java 위치와 함께 값.
export JAVA_HOME=/usr/local/jdk1.7.0_71
다음은 Hadoop을 구성하기 위해 편집해야하는 파일 목록입니다.
core-site.xml
그만큼 core-site.xml 파일에는 Hadoop 인스턴스에 사용되는 포트 번호, 파일 시스템에 할당 된 메모리, 데이터 저장을위한 메모리 제한, 읽기 / 쓰기 버퍼 크기와 같은 정보가 포함됩니다.
core-site.xml을 열고 <configuration>, </ configuration> 태그 사이에 다음 속성을 추가합니다.
<configuration>
<property>
<name>fs.default.name</name>
<value>hdfs://localhost:9000</value>
</property>
</configuration>
hdfs-site.xml
그만큼 hdfs-site.xml파일에는 복제 데이터 값, 이름 노드 경로 및 로컬 파일 시스템의 데이터 노드 경로와 같은 정보가 포함됩니다. Hadoop 인프라를 저장하려는 장소를 의미합니다.
다음 데이터를 가정 해 보겠습니다.
dfs.replication (data replication value) = 1
(In the below given path /hadoop/ is the user name.
hadoopinfra/hdfs/namenode is the directory created by hdfs file system.)
namenode path = //home/hadoop/hadoopinfra/hdfs/namenode
(hadoopinfra/hdfs/datanode is the directory created by hdfs file system.)
datanode path = //home/hadoop/hadoopinfra/hdfs/datanode
이 파일을 열고이 파일의 <configuration> </ configuration> 태그 사이에 다음 속성을 추가합니다.
<configuration>
<property>
<name>dfs.replication</name>
<value>1</value>
</property>
<property>
<name>dfs.name.dir</name>
<value>file:///home/hadoop/hadoopinfra/hdfs/namenode </value>
</property>
<property>
<name>dfs.data.dir</name>
<value>file:///home/hadoop/hadoopinfra/hdfs/datanode </value>
</property>
</configuration>
Note − 위 파일에서 모든 속성 값은 사용자가 정의하고 Hadoop 인프라에 따라 변경할 수 있습니다.
yarn-site.xml
이 파일은 yarn을 Hadoop으로 구성하는 데 사용됩니다. yarn-site.xml 파일을 열고이 파일의 <configuration>, </ configuration> 태그 사이에 다음 특성을 추가하십시오.
<configuration>
<property>
<name>yarn.nodemanager.aux-services</name>
<value>mapreduce_shuffle</value>
</property>
</configuration>
mapred-site.xml
이 파일은 우리가 사용하는 MapReduce 프레임 워크를 지정하는 데 사용됩니다. 기본적으로 Hadoop에는 yarn-site.xml의 템플릿이 포함되어 있습니다. 먼저 파일을 복사해야합니다.mapred-site.xml.template ...에 mapred-site.xml 다음 명령을 사용하여 파일.
$ cp mapred-site.xml.template mapred-site.xml
열다 mapred-site.xml 파일을 열고이 파일의 <configuration>, </ configuration> 태그 사이에 다음 속성을 추가합니다.
<configuration>
<property>
<name>mapreduce.framework.name</name>
<value>yarn</value>
</property>
</configuration>
Hadoop 설치 확인
다음 단계는 Hadoop 설치를 확인하는 데 사용됩니다.
1 단계-이름 노드 설정
다음과 같이“hdfs namenode -format”명령을 사용하여 namenode를 설정합니다.
$ cd ~
$ hdfs namenode -format
예상 결과는 다음과 같습니다.
10/24/14 21:30:55 INFO namenode.NameNode: STARTUP_MSG:
/************************************************************
STARTUP_MSG: Starting NameNode
STARTUP_MSG: host = localhost/192.168.1.11
STARTUP_MSG: args = [-format]
STARTUP_MSG: version = 2.4.1
...
...
10/24/14 21:30:56 INFO common.Storage: Storage directory
/home/hadoop/hadoopinfra/hdfs/namenode has been successfully formatted.
10/24/14 21:30:56 INFO namenode.NNStorageRetentionManager: Going to
retain 1 images with txid >= 0
10/24/14 21:30:56 INFO util.ExitUtil: Exiting with status 0
10/24/14 21:30:56 INFO namenode.NameNode: SHUTDOWN_MSG:
/************************************************************
SHUTDOWN_MSG: Shutting down NameNode at localhost/192.168.1.11
************************************************************/
2 단계-Hadoop dfs 확인
다음 명령은 dfs를 시작하는 데 사용됩니다. 이 명령을 실행하면 Hadoop 파일 시스템이 시작됩니다.
$ start-dfs.sh
예상 출력은 다음과 같습니다.
10/24/14 21:37:56
Starting namenodes on [localhost]
localhost: starting namenode, logging to /home/hadoop/hadoop
2.4.1/logs/hadoop-hadoop-namenode-localhost.out
localhost: starting datanode, logging to /home/hadoop/hadoop
2.4.1/logs/hadoop-hadoop-datanode-localhost.out
Starting secondary namenodes [0.0.0.0]
3 단계-Yarn 스크립트 확인
다음 명령은 yarn 스크립트를 시작하는 데 사용됩니다. 이 명령을 실행하면 yarn 데몬이 시작됩니다.
$ start-yarn.sh
다음과 같이 예상되는 출력-
starting yarn daemons
starting resourcemanager, logging to /home/hadoop/hadoop
2.4.1/logs/yarn-hadoop-resourcemanager-localhost.out
localhost: starting nodemanager, logging to /home/hadoop/hadoop
2.4.1/logs/yarn-hadoop-nodemanager-localhost.out
4 단계-브라우저에서 Hadoop 액세스
Hadoop에 액세스하기위한 기본 포트 번호는 50070입니다. 다음 URL을 사용하여 브라우저에서 Hadoop 서비스를 가져옵니다.
http://localhost:50070/
5 단계-클러스터의 모든 애플리케이션 확인
클러스터의 모든 애플리케이션에 액세스하기위한 기본 포트 번호는 8088입니다.이 서비스를 방문하려면 다음 URL을 사용하십시오.
http://localhost:8088/