환경 기술
, 하둡-3.0.0 기본 기능 아키텍처를 구축 필요에 따라, 세 노드 설치 환경, 7 x64 운영 체제에 CentOS,
OpenStack은 세 개의 가상 머신을 만들 수는 배포하기 시작
호스트 이름의 IP 주소
10.10.204.31 마스터
10.10.204.32의 노드 1
10.10.204.33의 노드 2
노드 계획 기능
마스터 노드 1 노드 2
네임 노드
데이터 노드 데이터 노드 데이터 노드
HQuorumPeer NodeManager NodeManager
ResourceManager에 SecondaryNameNode
HMaster을
세 개의 노드 초기화가 수행됩니다
1. 업데이트 시스템 환경을,
냠 냠 makecache FAST 청소 모든 & & & & & & 냠 냠은 빔 FTP 도구 힘내는 압축 해제 ZIP 설치 -Y -Y-NET wget을 업데이트
2. 계획에 따라 호스트 이름을 수정을,
hostnamectl의 SET-호스트 이름 마스터
hostnamectl SET-호스트 이름 노드 1의
hostnamectl의 SET-호스트 이름 노드 2
3. 추가 호스트 해결,
빔 / etc / hosts 파일
10.10.204.31 마스터
10.10.204.32의 노드 1
10.10.204.33의 노드 2의
세 가지 상호 일반 호스트 호스트 이름 확인 사이 4.ping 테스트,
핑의 마스터
노드 1 핑
핑 노드 2
5. 다운로드 및 JDK 환경을 설치,
; #hadoop 버전 3.0은 JDK 8.0 지원을 필요로
CD / 옵션은 /
정상적인 상황에서 # 후, 당신은 자신의 계약에 동의 링크에 따라, 다운로드, 계정을 등록, 오라클 공식 웹 사이트를 로그인해야 직접 다운로드 wget 용;
--no-쿠키 --header 체크인 인증서를 --no-은 wget "쿠키 : gpw_e24 = HTTP % 3A % 2F % 2F % 2Fwww.oracle.com, 수락-securebackup - 쿠키 = oraclelicense" " HTTPS : // 다운로드. oracle.com/otn-pub/java/jdk/8u202-b08/1961070e4c9b4e26a04e7f5a083f551e/jdk-8u202-linux-x64.tar.gz "
#의 하둡과 JDK 설치 경로 생성
에서 mkdir / 옵션 / 모듈
CP / 옵션을 /를 JDK-8u202- x64.tar.gz 리눅스 / 옵션 / 모듈
CD / 옵션은 / 모듈
JDK - 리눅스 x64.tar.gz의 zxvf 타르 - 8u202을
# 환경 변수 구성
JAVA_HOME = "/ 옵션 / 모듈 / jdk1.8.0_202"를 내보내기
경로를 보냅니다 = JAVA_HOME $ / 빈 / : $ 경로
소스의 / etc / 프로필
# 영구적으로 구성
정력을 / etc / bashrc에
#add 선
수출 JAVA_HOME = "/ 옵션 / 모듈 / jdk1.8.0_202"
경로를 보냅니다 = $ JAVA_HOME / 빈 / : $ 는 PATH
다운로드 추출물 하둡-3 (6).0.0 설치 패키지;
CD / 옵션 /
wget을 http://archive.apache.org/dist/hadoop/core/hadoop-3.0.0/hadoop-3.0.0.tar.gz
CP /opt/hadoop-3.0.0.tar.gz / 모듈 /
CD / opt가 / 모듈
하둡 zxvf 타르 3.0.0.tar.gz
제 SELinux가 폐쇄 / firewalld 방화벽;
systemctl 비활성화 firewalld
빔은 / etc / SYSCONFIG / SELinux를
SELINUX = 비활성화
제 재시작 서버;
재부팅
마스터 노드 작업이;
참고 :
모든 실행 하둡을 설치하려면 루트 계정을 사용하여 테스트 환경;
1. SSH 비밀번호없이 로그인을 추가,
CD를
SSH-Keygen은을
## 입방 Enter 키를 누릅니다
노드 1 / 노드 2에 파일을 복사 # 키를
SSH-저작권법과를 위에서 ID 언급 한 마스터
SSH - 복사 - 위에서 ID의 노드 1 언급
SSH - 복사 - 위에서 ID의 노드 2를 언급
2. 테스트 암호가없는 정상 착륙,
SSH 마스터
SSH 노드 1
SSH 노드 2
3. 하둡 구성 파일을 수정,
하둡 구성, 구성 파일을 수정해야합니다
hadoop-env.sh
원사를 -env.sh
코어 - 더 site.xml의
HDFS - 더 site.xml의
mapred - 더 site.xml의
원사 - 더의 site.xml
노동자
CD /opt/modules/hadoop-3.0.0/etc/hadoop
정력 hadoop-env.sh
수출 JAVA_HOME = / 옵션 / 모듈 / jdk1.8.0_202
정력 yarn-env.sh
수출 JAVA_HOME = / 옵션 / 모듈 / jdk1.8.0 _202
구성 파일 구문 분석 :
https://blog.csdn.net/m290345792/article/details/79141336
정력 코어를 site.xml
<구성>
<속성>
<이름> fs.defaultFS </ 이름>
<값> HDFS : // 마스터 : 9000 </ value>를
</ 속성>
<속성>
<이름> io.file. buffer.size </ 이름>
<값> 131072 </ value>를
</ 속성>
<속성>
<이름> hadoop.tmp.dir </ 이름>
<값> / 데이터 / TMP </ 값>
</ property>를
< 속성>
<이름> hadoop.proxyuser.hadoop.hosts </ 이름>
<값> </ value>를
</ 속성>
<속성>
<이름> hadoop.proxyuser.hadoop.groups </ 이름>
<값> </ 값>
</ property>를
</ 구성>
#의 io.file.buffer.size 대기열 파일 판독 / 기록 버퍼 사이즈
를 site.xml HDFS - 빔
<구성>
<속성>
<이름> dfs.namenode.secondary.http 주소 </ 이름>
<값> slave2 : 50,090 </ value>를
</ 속성>
<속성>
<이름> DFS. 복제 </ 이름>
<값> 3 </ 값>
<설명> 사본 번호, (3) 기본 구성입니다, 기계가 숫자 데이터 노드 </ 설명>보다 작아야합니다
</ 속성>
<속성>
hadoop.tmp.dir <이름> < / 이름>
<값> / 데이터 / tmp를 </ 값>
</ 속성>
> </ 구성
### 네임 노드 구성
로컬 파일 시스템 이름 # dfs.namenode.name.dir의 네임 노드 영구 저장 공간 및 트랜잭션 로그 경로에 이 디렉토리의 쉼표로 구분 된 목록 인 경우, 중복하는 디렉토리에있는 모든 테이블 이름을 복사합니다.
#의 dfs.hosts은 / dfs.hosts.exclude는, 재고 데이터 저장 노드 / 포기 포함
데이터 처리 노드의 다수의 서버 스레드의 RPC 번호 dfs.namenode.handler.count 네임 노드의 복수의
데이터 노드 구성 ###
이 경우, 로컬 파일 시스템 dfs.datanode.data.dir # 1의 데이터 노드에서 블록의 쉼표로 구분하여 저장 디렉토리의 쉼표로 구분 된 목록, 데이터가 모든 명명 된 디렉토리에있을 것입니다 일반적으로 다른 장치에 저장된다.
VIM mapred-site.xml의
<구성>
<속성>
<이름> mapreduce.framework.name </ 이름>
<값> 사 </ value>를
</ 속성>
<속성>
<이름> mapreduce.application.classpath </ 이름 >
<값>
/opt/modules/hadoop-3.0.0/etc/hadoop,
/opt/modules/hadoop-3.0.0/share/hadoop/common/ ,
/opt/modules/hadoop-3.0.0/share/ 하둡 / 일반 / lib 디렉토리 / ,
/opt/modules/hadoop-3.0.0/share/hadoop/hdfs/ ,
/opt/modules/hadoop-3.0.0/share/hadoop/hdfs/lib/ ,
/ 옵션 / 모듈 / 하둡-3.0.0 / 주 / 하둡 / 맵리 듀스 / ,
/opt/modules/hadoop-3.0.0/share/hadoop/mapreduce/lib/ ,
/opt/modules/hadoop-3.0.0 / 공유 / 하둡 / 얀 /,
/opt/modules/hadoop-3.0.0/share/hadoop/yarn/lib/
</ value>를
</ 속성>
</ 구성>
정력 실-site.xml의
<구성>
<! - 사이트 특정 YARN 구성 속성 ->
<특성>
<이름> yarn.nodemanager.aux-서비스 </ 이름>
<값> mapreduce_shuffle </ 값>
</ 부동산>
<속성>
<이름> yarn.nodemanager.aux-services.mapreduce.shuffle.class </ 이름>
<값> org.apache.hadoop.mapred.ShuffleHandle </ value>를
</ 속성>
<속성>
<이름> 얀 .resourcemanager.resource-tracker.address </ 이름>
<값> 주 : 8025 </ value>를
</ 속성>
<속성>
<이름> yarn.resourcemanager.scheduler.address </ 이름>
<값> 마스터 : 8,030 </ 값>
</ 속성>
<속성>
<이름> yarn.resourcemanager.address </ 이름>
<값> 주 : 8040 </ value>를
</ 속성>
</ 구성>
###는 ResourceManager 및 nodemanager 구성
#의 yarn.acl.enable이 ACL을 허용, 기본값은 false입니다
클러스터에 설정 #의 yarn.admin.acl의 adminis은. ACL은 쉼표 separated- 들면있다 usersspacecomma 구분 된 그룹. 기본값 지정된 사람을 나타내는. 특정 공간에서 어떠한 명시 적 권한이 없습니다.
#를 위해 구성 yarn.log 응집이 활성화 로그 집계 활성화 또는 비활성화 로그 집계를 허용할지 여부를 구성합니다.
### ResourceManager에 구성
#의 yarn.resourcemanager.address 값 : ResourceManager에 호스트 : 클라이언트 작업 제출 지침에 대한 포트 : 호스트 경우 : 포트, yarn.resourcemanager.hostname.host:port 호스트 이름을 포함합니다.
#의 yarn.resourcemanager.scheduler.address 값 : ResourceManager에 호스트 : 스케줄러에 자원에 대한 애플리케이션 액세스를위한 포트 매니저. 설명 : 포트 커버 yarn.resourcemanager.hostname 호스트 이름 : 호스트가있는 경우
# yarn.resourcemanager.resource - tracker.address 값 : ResourceManager에 호스트 : NodeManagers에 대한 포트 주 : 호스트 경우 : 포트 커버 yarn.resourcemanager .hostname 호스트 이름 설정.
# yarn.resourcemanager.admin.address 값 : ResourceManager에 호스트 : 관리 명령에 대한 포트. 참고 : 호스트 설정 한 경우 : 포트, 설정이 호스트 이름 yarn.resourcemanager.hostname 우선합니다
는 ResourceManager 웹 UI 호스트 : 포트 참고 : 호스트 설정 한 경우 : 포트, yarn.resourcemanager을 다룰 것입니다 #의 yarn.resourcemanager.webapp.address 값을 .hostname 호스트 이름 설정
#의 yarn.resourcemanager.hostname 값 :. ResourceManager에 호스트 설명하는 모든 yarn.resourcemanager의 대체하도록 설정할 수 있습니다 단일 호스트의 호스트 이름의 주소 자원을. 그 결과, ResourceManager에 구성 요소에 대한 기본 포트.
#의 yarn.resourcemanager.scheduler.class 값 : ResourceManager에 예약 클래스 설명 .. 용량 예약 (권장), 공정 스케줄링 (추천합니다), 또는의 FIFO 스케줄링은 org.apache.hadoop.yarn.server로, 정규화 된 클래스 이름을 사용. . resourcemanager.scheduler.fair.FairScheduler
# yarn.scheduler.minimum 할당-MB 실측치 : 리소스 관리자 컨테이너의 최소 할당을 각각의 메모리 요청에 대한.
#의 yarn.scheduler.maximum 할당-MB 값 : 리소스 관리자 최대 메모리를 분배하기위한 용기에 대한 각 요청
# Yarn.resourcemanager.nodes.include 경로 / yarn.resourcemanager.nodes.exclude 경로를 찾을 수 : 허용 / 포기 nodeManagers 목록 : 필요한 경우,이 파일은 허용 NodeManagers의 목록을 제어 할 수 있습니다
노동자들은 정력
마스터
SLAVE1
slave2
4. 시작 파일 수정
, 테스트 환경은 루트로 서비스 때문에 시작 파일에 대한 권한을 추가 할 필요가 시작하기 때문에 #의 하둡을
CD /opt/modules/hadoop-3.0.0/sbin
정력 start-dfs.sh
#add을 선
루트 = HDFS_DATANODE_USER
HDFS_DATANODE_SECURE_USER = 루트
HDFS_NAMENODE_USER = 루트
HDFS_SECONDARYNAMENODE_USER = 루트
HDFS_ZKFC_USER = 루트
HDFS_JOURNALNODE_USER = 루트를
정력 stop-dfs.sh이
라인을 #add
HDFS_DATANODE_USER = 루트
HDFS_DATANODE_SECURE_USER = 루트
HDFS_NAMENODE_USER = 루트
HDFS_SECONDARYNAMENODE_USER = 루트
HDFS_ZKFC_USER = 루트
HDFS_JOURNALNODE_USER = 루트
정력 start-yarn.sh
#add 라인
YARN_RESOURCEMANAGER_USER = 루트
HADOOP_SECURE_DN_USER = 실
YARN_NODEMANAGER_USER = 루트
정력 stop-yarn.sh이
라인을 #add
YARN_RESOURCEMANAGER_USER = 루트
HADOOP_SECURE_DN_USER = 실
YARN_NODEMANAGER_USER = 루트
5. 푸시 하둡 프로필,
CD /opt/modules/hadoop-3.0.0/etc/hadoop
SCP ./ 루트 @의 노드 1 : /opt/modules/hadoop-3.0.0/etc/hadoop/
SCP ./ 루트 @의 노드 2 : /opt/modules/hadoop-3.0.0/etc/hadoop/
포맷 HDFS 6]
프로필 저장 경로에 지정된 HDFS # / 데이터 / TMP /
/opt/modules/hadoop-3.0.0/bin/hdfs -format 네임 노드
7. 시작 하둡 서비스,
#namenode는 세 개의 노드
CD /opt/modules/zookeeper-3.4.13은
시작 ./bin/zkServer.sh
CD /opt/modules/kafka_2.12-2.1.1
./bin/kafka -server-start.sh ./config/server.properties &
/opt/modules/hadoop-3.0.0/bin/hdfs journalnode &
#master节点
/opt/modules/hadoop-3.0.0/bin/hdfs 네임 노드 -format
/opt/modules/hadoop-3.0.0/bin/hdfs zkfc -formatZK
/opt/modules/hadoop-3.0.0/bin/ HDFS 네임 노드 및
# SLAVE1节点
/opt/modules/hadoop-3.0.0/bin/hdfs 네임 노드 -bootstrapStandby
/opt/modules/hadoop-3.0.0/bin/hdfs 네임 노드 및
/opt/modules/hadoop-3.0.0/bin/yarn ResourceManager에 &
/opt/modules/hadoop-3.0.0/bin/yarn nodemanager &
# slave2节点
/opt/modules/hadoop-3.0.0/bin/hdfs 네임 노드 -bootstrapStandby
/opt/modules/hadoop-3.0.0/bin/hdfs 네임 노드 및
/opt/modules/hadoop-3.0.0/bin/yarn ResourceManager에 &
/opt/modules/hadoop-3.0.0/bin/yarn nodemanager &
#namenode 3- 노드
/opt/modules/hadoop-3.0.0/bin/hdfs zkfc &
#master 노드
/opt/modules/hadoop-3.0.0/ CD
./sbin/start-all.sh
CD /opt/modules/hadoop-3.0.0/hbase-2.0.4
./bin/start-hbase.sh
각 노드의 하둡 서비스가 제대로 시작 8 검토,
JPS
9. 테스트를 실행,
/opt/modules/hadoop-3.0.0 CD
#hdfs에서 테스트 경로를 만들 수는
./bin/hdfs는 DFS -mkdir / TestDir1
# 테스트 파일 생성
CD / 옵션
wc.input 터치
wc.input 정력
하이브 맵리 듀스를 하둡을
스파크 스톰 HBase를
Sqoop을 하둡 하이브
스파크 하둡
#의 wc.input는 HDFS에 업로드됩니다
빈 /를 DFS가 이것 저것 집어 넣어 /opt/wc.input /testdir1/wc.input HDFS
# 실행 하둡 데모 맵리 듀스와 함께 제공
./bin/yarn의 JAR / 선택 단어 수 /testdir1/wc.input /modules/hadoop-3.0.0/share/hadoop/mapreduce/hadoop-mapreduce-examples-3.0.0.jar 출력 /
# 출력 파일을 볼
빈 / HDFS DFS -ls / 출력
10. 상태 스크린 샷
결국 서비스가 제대로 스크린 샷을 시작합니다
사육사 카프카 + + + journalnode 네임 노드 + HBase를 사는 데 사용
路过点一赞,技术升一线,加油↖(^ω^)↗!