Hadoop 을 설치하는 단계는 무엇입니까
참고: Apache 에서 제공하는 hadoop-2.4.1 설치 패키지는 32 비트 운영 체제에서 컴파일됩니다. Hadoop 은 일부 C++ 로컬 라이브러리에 의존하기 때문입니다.
따라서 64 비트 작업에 Hadoop-2.4 를 설치하는 경우 컴파일된 64 비트도 그룹 * * * 에 올렸습니다. 관심이 있으시면 직접 컴파일할 수 있습니다.) < P > 사전 준비는 상세히 말하지 않겠습니다. 강의실에서는
1. Linux 호스트 이름 수정
2. IP 수정
3. 호스트 이름과 IP 의 매핑 관계 수정
# # # # # # # # # # # # 만약 호스트 내에서 구성할 것은 인트라넷 IP 주소와 호스트 이름 매핑 관계 < P > 4. 방화벽 끄기 < P > hosts 로그인 금지
6. JDK 설치 구성 환경 변수 등
클러스터 계획:
호스트 이름 IP 설치 소프트웨어 실행 프로세스
p> HA181 192.168.1.181 jdk, hadoop NameNode, dfszkfailovercontron Hadoop NameNode, dfszkfailovercontroller (zkfc)
ha 183 192.168.1.183 JDK, Hadoop resource manager. Hadoop resource manager
ha 185 192.168.1.185 JDK, Hadoop, zookeeper DataNode, NodeManager, JournalNode Hadoop, zookeeper DataNode, NodeManager, JournalNode, quorumpeermain
ha 187 192.168.1.187 JDK QuorumPeerMain
설명:
1. hadoop2. 에서는 일반적으로 두 개의 NameNode 로 구성됩니다. 하나는 active 상태이고 다른 하나는 standby 상태입니다. 활성? 네이몬드는 대외적으로 서비스를 제공하고, Standby 는? NameNode 는 외부 서비스를 제공하지 않고 active 만 동기화합니까? 실패 시 빠르게 전환할 수 있도록 NameNode 의 상태입니다.
Hadoop 2. 은 공식적으로 두 가지 HDFS 를 제공합니까? HA 의 솔루션 중 하나는 NFS 이고 다른 하나는 QJM 입니다. 여기서 우리는 간단한 QJM 을 사용한다. 이 시나리오에서는 마스터 백업 NameNode 간에 일련의 JournalNode 를 통해 메타데이터 정보를 동기화하며, 대부분의 JournalNode 에 성공적으로 기록되면 데이터가 성공적으로 기록된 것으로 간주됩니다. 일반적으로 홀수 개의 journal node
로 구성됩니다. 여기에 ZKFC(DFSZKFailoverController) 장애 조치를 위한 zookeeper 클러스터도 구성되어 있습니다. Active? NameNode 가 끊겼어요. 자동으로 Standby 로 전환될까요? NameNode 의 standby 상태 < p p> 2.hadoop-2.2. 에는 여전히 하나의 문제가 있습니다. 즉, 리소스 매니저가 하나만 있고 단일 장애 지점이 있으며 hadoop-2.4.1 이 해결합니다 상태 zookeeper 에 의한 조정
설치 단계:
1. 설치 구성 zooekeeper 클러스터 (HA185)
1.1 압축 해제
tar? -zxvf? Zookeeper-3.4.5.tar.gz? -C? /app/
1.2 구성 수정
CD? /app/zookeeper-3.4.5/conf/
CP? Zoo_sample.cfg? Zoo.cfg
vim? Zoo.cfg
수정: datadir =/app/zookeeper-3.4.5/tmp
마지막에 추가:
server.1 /app/zookeeper-3.4.5/tmp
빈 파일 하나 더 만들기
touch? /app/zookeeper-3.4.5/tmp/myid
마지막으로 파일에 id 쓰기
echo? 1? > -응? /app/zookeeper-3.4.5/tmp/mkdir
1.3 구성된 zookeeper 를 다른 노드에 복사합니다. 먼저 HA186, HA187 루트 아래에 각각 weekend 디렉토리를 만듭니다 /weekend)
scp? -r? /app/zookeeper-3.4.5/? Ha186:/app/
scp? -r? /app/zookeeper-3.4.5/? HA187:/app/
참고: HA186, ha187 매핑/weekend/zookeeper-3.4.5/tmp/myid 내용 수정
; 2? > -응? /app/zookeeper-3.4.5/tmp/myid
ha 187:
echo? 3? > -응? /app/zookeeper-3.4.5/tmp/myid
2. 설치 HA181 에서 작동하는 Hadoop 클러스터 구성
2.1 압축 해제
tar -zxvf? Hadoop-2.4.1.tar.gz? -C? /weekend/
2.2 HDFS 구성 (모든 Hadoop 2. 구성 파일은 $HADOOP_HOME/etc/hadoop 디렉토리에 있음)
# 환경 변수에 Hadoop 추가 < /etc/profile
내보내기? Java _ home =/app/JDK 1.7. _ 79
내보내기? Hadoop _ home =/app/Hadoop-2.4.1
내보내기? Path = $ path: $ Java _ home/bin: $ Hadoop _ home/bin
# Hadoop 2. 에 대한 구성 파일은 모두 $ Hadoop _ home 에 있습니다 /home/Hadoop/app/Hadoop-2.4.1/etc/Hadoop
2.2.1 Hadoop-env.sh 수정 < p Java _ home =/app/JDK 1.7. _ 79
2.2.2 core-site.xml
< 수정 Configuration>
< ! -응? Hdfs 의 nameservice 를 NS1 로 지정하시겠습니까? -->
< 등록 정보 >
< Name> Fs.defaultFS< /name>
< Value> Hdfs://ns1/< /value>
< /property>
< ! -응? Hadoop 임시 디렉토리를 지정하시겠습니까? -->
< 등록 정보 >
< Name> Hadoop.tmp.dir< /name>
< Value> /app/hadoop-2.4.1/tmp< /value>
< /property>
< ! -응? Zookeeper 주소를 지정하시겠습니까? -->
< 등록 정보 >
< Name> Ha.zookeeper.quorum< /name>
< Value> Ha185: 2181, ha186: 2181, ha187: 2181 < /value>
< /property>
< /configuration>
2.2.3 HDFS-site.xml 수정
< Configuration>
< ! -HDFS 의 nameservice 가 NS1 임을 지정합니다. core-site.xml 의 nameservice 와 일치해야 합니까? -->
< 등록 정보 >
< Name> Dfs.nameservices< /name>
< Value> Ns1< /value>
< /property>
< ! -응? Ns1 아래에는 nn1, nn2 라는 두 개의 NameNode 가 있습니까? -->
< 등록 정보 >
< Name> Dfs.ha.namenodes.ns1< /name>
< Value> Nn1,nn2< /value>
< /property>
< ! -응? Nn1 의 RPC 통신 주소? -->
< 등록 정보 >
< Name> Dfs.namenode.rpc-address.ns1.nn1 < /name>
< Value> HA181:9< /value>
< /property>
< ! -응? Nn1 의 http 통신 주소? -->
< 등록 정보 >
< Name> Dfs.namenode.http-address.ns1.nn1 < /name>
< Value> HA181:57< /value>
< /property>
< ! -응? Nn2 의 RPC 통신 주소? -->
< 등록 정보 >
< Name> Dfs.namenode.rpc-address.ns1.nn2 < /name>
< Value> HA182:9< /value>
< /property>
< ! -응? Nn2 의 http 통신 주소? -->
< 등록 정보 >
< Name> Dfs.namenode.http-address.ns1.nn2 < /name>
< Value> HA182:57< /value>
< /property>
< ! -응? NameNode 의 메타데이터가 JournalNode 에 저장되는 위치를 지정하시겠습니까? -->
< 등록 정보 >
< Name> Dfs.namenode.shared.edits.dir < /name>
< Value> Qjournal://HA185:8485; 하 186: 8485; HA187:8485/ns1< /value>
< /property>
< ! -응? JournalNode 가 로컬 디스크에 데이터를 저장할 위치를 지정하시겠습니까? -->
< 등록 정보 >
< Name> Dfs.journalnode.edits.dir< /name>
< Value&g