Hadoop 클 러 스 터 (1) Zookeeper 구축
전체 설치 절 차 는 Zookeeper + HDFS + Hbase 를 포함 하고 글 이 간결 하기 위해 블 로그 세 편 으로 나 누 어 나의 설치 절 차 를 기록 할 것 입 니 다.
본 고 는 클 러 스 터 환경 준비, zookeeper 의 설치 절 차 를 기록 하고 있다.
~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ 환경 준비 부분 ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~
IP 배치 계획 (세 개의 가상 컴퓨터 를 준 비 했 고 운영 체 제 는 Centos 6.7)
Zookeeper 호스트 할당
192.168.67.101 c6701
192.168.67.102 c6702
192.168.67.103 c6703 HDFS 호스트 할당
192.168.67.101 c6701 --Namenode+datanode
192.168.67.102 c6702 --datanode
192.168.67.103 c6703 --datanode Hbase 호스트 할당
192.168.67.101 c6701 --Master + region
192.168.67.102 c6702 --region
192.168.67.103 c6703 --region 1. 각 서 비 스 를 각각 관리 하기 위해 저 는 모든 서 비 스 를 위해 사용 자 를 따로 만 들 었 습 니 다.
만 든 사용자:
zk
hdfs
hbase 2. 모든 사용자 에 게 ssh 면 밀 을 만 들 고 모든 노드 에 나 누 어 줍 니 다. 그러면 저 는 C6701 에서 만 명령 을 수행 하고 원 격 으로 C6702 와 C6703 을 설치 합 니 다.
ssh-keygen -t rsa -f ~/.ssh/id_rsa 키 를 모든 노드 로 복사 하면 됩 니 다.
ssh-copy-id c6701
ssh-copy-id c6702
ssh-copy-id c6703 3. 강조 하 세 요. / etc / hosts 설정 이 필요 합 니 다.
[root@c6701 ~]# more /etc/hosts
192.168.67.101 c6701.org c6701
192.168.67.102 c6702.org c6702
192.168.67.103 c6703.org c6703 4. 아래 C6701 에서 실행 되 며, 중간 에 ssh 원 격 으로 명령 을 실행 하여 ssh 면 밀 이 적용 되 는 지 확인 합 니 다.
ssh c6702 "cat /proc/cpuinfo"
ssh c6702 "hostname" 5. 설치 소프트웨어 다운로드 (인터넷 주소)
cd /tmp/software
wget http://192.21.104.48/deploy/jdk-8u144-linux-x64.tar.gz
wget http://192.21.104.48/deploy/zookeeper-3.4.6.tar.gz
wget http://192.21.104.48/deploy/hbase-1.1.3.tar.gz
wget http://192.21.104.48/deploy/hadoop-2.6.0-EDH-0u2.tar.gz
wget http://192.21.104.48/deploy/hadoop-2.7.1.tar.gz 6. JDK 설치, 모든 노드 설치
#tar -xzvf jdk-8u144-linux-x64.tar.gz -C /usr/local 7. 아래 정 보 를. bash 에 추가profile
export JAVA_HOME=/usr/local/jdk1.8.0_144
export JRE_HOME=/usr/local/jdk1.8.0_144/jre
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib:$CLASSPATH
export PATH=$JAVA_HOME/bin:$PATH
source /etc/profile 8. 버 전 정보 확인
# java -version
java version "1.8.0_144"
Java(TM) SE Runtime Environment (build 1.8.0_144-b01)
Java HotSpot(TM) 64-Bit Server VM (build 25.144-b01, mixed mode) ~ ~ ~ ~ ~ ~ ~ ~ zookeeper 설치 부분 ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~
1. C6701 에 Zookeeper 설치
useradd zk
echo "zk:zk" | chpasswd
su - zk
mkdir zk
tar -zxvf /tmp/software/zookeeper-3.4.6.tar.gz -C /home/zk/zk ~~~~~~~~~~~~~zoo.cfg ~~~~~~~~~~~~~~~
$ pwd
/home/zk/zk/zookeeper-3.4.6/conf/zoo.cfg
$ cat /home/zk/zk/zookeeper-3.4.6/conf/zoo.cfg |grep -v '^#'
tickTime=2000
initLimit=10
syncLimit=5
dataDir=/data/zookeeper/data
dataLogDir=/data/zookeeper/log
clientPort=2181
autopurge.snapRetainCount=3
autopurge.purgeInterval=6
server.1=c6701:2888:3888
server.2=c6702:2888:3888
server.3=c6703:2888:3888
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 2. zoo. cfg 에 따라 data 와 log 두 개의 폴 더 를 만 듭 니 다.
#mkdir -p /data/zookeeper/data
#mkdir -p /data/zookeeper/log
#chown -R zk:zk /data/zookeeper
#chown -R zk:zk /data/zookeeper/data
#chown -R zk:zk /data/zookeeper/log 3. zookeeper 디 렉 터 리 에 두 개의 폴 더 를 만 듭 니 다.zkdata 폴 더 에 들 어가 서 파일 myid 를 만 들 고 1 을 채 웁 니 다.여기에 기 록 된 1 은 zoo. cfg 텍스트 의 server. 1 중 1 입 니 다.모든 파일 을 설정 하면 hadop 1 의 yarn 디 렉 터 리 를 다른 기계 에 복사 합 니 다. 우 리 는 모든 기계 에 대응 하 는 my id 텍스트 를 수정 하고 hadop 2 의 my id 를 2 에 기록 합 니 다.나머지 노드 는 위 에 설정 하고 이에 따라 해당 하 는 숫자 를 기록 합 니 다.Zkdatalog 폴 더 는 zookeeper 생 성 로 그 를 지정 하기 위해 해당 하 는 경 로 를 지정 합 니 다.
# su - zk -c "echo 1 > /data/zookeeper/data/myid" 4. 환경 변 수 를 추가 하고 / etc / profile 디 렉 터 리 에 ZOOKEEPERHOME / bin 은 기 존의 PATH 뒤에 "$ZOOKEEPER HOME / bin" 을 추가 합 니 다.
환경 변수 수정 / etc 디 렉 터 리 에 있 는 profflee 파일 도 루트 디 렉 터 리 에 있 는. bashrc 디 렉 터 리 에 환경 변 수 를 추가 할 수 있 습 니 다.이 두 가 지 는 어떤 차이 가 있 습 니까? bashrc 는 현재 디 렉 터 리 사용자 에 대한 환경 변수 이 고 profflee 파일 은 모든 사용자 에 게 열 린 디 렉 터 리 입 니 다.시스템 에서 파일 을 불 러 올 때 프로필 에서 해당 하 는 길 을 찾 습 니 다. 'bashrc 파일' 에서 해당 하 는 환경 변수 경 로 를 찾 지 않 으 면.이 두 가 지 는 모두 가 조금 이해한다.
그리고 source / etc / profile
5. c6702 의 zookeeper 설치
#ssh c6702 "useradd zk"
#ssh c6702 "echo "zk:zk" | chpasswd" zk 사용자 ssh 면 밀
#ssh-copy-id zk@c6702 복사 소프트웨어
#scp -r /tmp/software/hadoop-* root@c6702:/tmp/software
#ssh c6702 "chmod 777 /tmp/software/*" 디 렉 터 리 만 들 기, 압축 풀기 소프트웨어
#ssh zk@c6702 "mkdir zk"
#ssh zk@c6702 "tar -zxvf /tmp/software/zookeeper-3.4.6.tar.gz -C /home/zk/zk"
#ssh zk@c6702 "ls -al zk"
#ssh zk@c6702 "ls -al zk/zookeeper*"
#ssh zk@c6702 "rm /home/zk/zk/zookeeper-3.4.6/conf/zoo.cfg"
#scp -r /home/zk/zk/zookeeper-3.4.6/conf/zoo.cfg zk@c6702:/home/zk/zk/zookeeper-3.4.6/conf/.
#ssh zk@c6702 "cat /home/zk/zk/zookeeper-3.4.6/conf/zoo.cfg |grep -v '^#'"
zoo.cfg
#ssh c6702 "mkdir -p /data/zookeeper/data"
#ssh c6702 "chown -R zk:zk /data/zookeeper"
#ssh c6702 "chown -R zk:zk /data/zookeeper/data"
#ssh c6702 "mkdir -p /data/zookeeper/log"
#ssh c6702 "chown -R zk:zk /data/zookeeper/log"
myid, 2
ssh zk@c6702 "echo 2 > /data/zookeeper/data/myid" 6. c6703 의 zookeeper 설치
#ssh c6703 "useradd zk"
#ssh c6703 "echo "zk:zk" | chpasswd" zk 사용자 ssh 면 밀
ssh-copy-id zk@c6703 복사 소프트웨어
#scp -r /tmp/software/hadoop-* root@c6703:/tmp/software
#ssh c6703 "chmod 777 /tmp/software/*" 디 렉 터 리 만 들 기, 압축 풀기 소프트웨어
#ssh zk@c6703 "mkdir zk"
#ssh zk@c6703 "tar -zxvf /tmp/software/zookeeper-3.4.6.tar.gz -C /home/zk/zk"
#ssh zk@c6703 "ls -al zk"
#ssh zk@c6703 "ls -al zk/zookeeper*"
#ssh zk@c6703 "rm /home/zk/zk/zookeeper-3.4.6/conf/zoo.cfg"
#scp -r /home/zk/zk/zookeeper-3.4.6/conf/zoo.cfg zk@c6703:/home/zk/zk/zookeeper-3.4.6/conf/.
#ssh zk@c6703 "cat /home/zk/zk/zookeeper-3.4.6/conf/zoo.cfg |grep -v '^#'" zoo. cfg 에 따라 디 렉 터 리 만 들 기
#ssh c6703 "mkdir -p /data/zookeeper/data"
#ssh c6703 "chown -R zk:zk /data/zookeeper"
#ssh c6703 "chown -R zk:zk /data/zookeeper/data"
#ssh c6703 "mkdir -p /data/zookeeper/log"
#ssh c6703 "chown -R zk:zk /data/zookeeper/log"
myid, 3
ssh zk@c6703 "echo 3 > /data/zookeeper/data/myid" 7. ZK 시동
/home/zk/zk/zookeeper-3.4.6/bin/zkServer.sh start
/home/zk/zk/zookeeper-3.4.6/bin/zkServer.sh status 원 격 시작 명령
ssh zk@c6702 "/home/zk/zk/zookeeper-3.4.6/bin/zkServer.sh\ start"
ssh zk@c6703 "/home/zk/zk/zookeeper-3.4.6/bin/zkServer.sh\ start"
ssh zk@c6702 "/home/zk/zk/zookeeper-3.4.6/bin/zkServer.sh\ status"
ssh zk@c6703 "/home/zk/zk/zookeeper-3.4.6/bin/zkServer.sh\ status" 8. 세 개의 ZK 를 모두 시작 하기 전의 상태 가 아 닙 니 다.
[vagrant@c7003 bin]$ ./zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /home/vagrant/zookeeper-3.4.10/bin/../conf/zoo.cfg
Error contacting service. It is probably not running. 9. 세 개의 ZK 를 모두 가동 한 후에 야 leader 를 선출 할 수 있다.
$ ./zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /home/vagrant/zookeeper-3.4.10/bin/../conf/zoo.cfg
Mode: follower
[vagrant@c7002 bin]$ ./zkServer.sh status
ZooKeeper JMX enabled by default
Using config: /home/vagrant/zookeeper-3.4.10/bin/../conf/zoo.cfg
Mode: leader = = = = = = = = 2018.1.13 업데이트 = = = = = = = = = = = = = = = = = =
클 라 이언 트 연결 방식
클 라 이언 트 는 무 작위 순서 로 server 를 연결 합 니 다. 지정 할 수 없 거나 어떤 zookeeper server 를 먼저 읽 습 니까?
./zkCli.sh -server c6701:2181,c6702:2181,c6703:2181
출력 은 다음 과 같 습 니 다:
첫 번 째 연결, c6701 에 연결
[zookeeper@c6702 bin]$ /usr/local/hadoop/zookeeper-3.4.6/bin/zkCli.sh -server c6701:2181,c6702:2181,c6703:2181
Connecting to c6701:2181,c6702:2181,c6703:2181
......
2018-01-11 21:07:30,797 [myid:] - INFO [main:ZooKeeper@438] - Initiating client connection, connectString=c6701:2181,c6702:2181,c6703:2181 sessionTimeout=30000 watcher=org.apache.zookeeper.ZooKeeperMain$MyWatcher@4b4bc1e
Welcome to ZooKeeper!
2018-01-11 21:07:30,830 [myid:] - INFO [main-SendThread(c6701.python279.org:2181):ClientCnxn$SendThread@975] - Opening socket connection to server c6701.python279.org/192.168.67.101:2181. Will not attempt to authenticate using SASL (unknown error)
JLine support is enabled
2018-01-11 21:07:30,873 [myid:] - INFO [main-SendThread(c6701.python279.org:2181):ClientCnxn$SendThread@852] - Socket connection established to c6701.python279.org/192.168.67.101:2181, initiating session
2018-01-11 21:07:30,916 [myid:] - INFO [main-SendThread(c6701.python279.org:2181):ClientCnxn$SendThread@1235] - Session establishment complete on server c6701.python279.org/192.168.67.101:2181, sessionid = 0x160e70285f70001, negotiated timeout = 30000
WATCHER::
WatchedEvent state:SyncConnected type:None path:null 두 번 째 연결, c6702 에 연결
Connecting to c6701:2181,c6702:2181,c6703:2181
......
2018-01-11 21:10:18,442 [myid:] - INFO [main:ZooKeeper@438] - Initiating client connection, connectString=c6701:2181,c6702:2181,c6703:2181 sessionTimeout=30000 watcher=org.apache.zookeeper.ZooKeeperMain$MyWatcher@4b4bc1e
Welcome to ZooKeeper!
2018-01-11 21:10:18,489 [myid:] - INFO [main-SendThread(c6702.python279.org:2181):ClientCnxn$SendThread@975] - Opening socket connection to server c6702.python279.org/192.168.67.102:2181. Will not attempt to authenticate using SASL (unknown error)
JLine support is enabled
2018-01-11 21:10:18,508 [myid:] - INFO [main-SendThread(c6702.python279.org:2181):ClientCnxn$SendThread@852] - Socket connection established to c6702.python279.org/192.168.67.102:2181, initiating session
2018-01-11 21:10:18,561 [myid:] - INFO [main-SendThread(c6702.python279.org:2181):ClientCnxn$SendThread@1235] - Session establishment complete on server c6702.python279.org/192.168.67.102:2181, sessionid = 0x260e70284650002, negotiated timeout = 30000
WATCHER::
WatchedEvent state:SyncConnected type:None path:null 이로써 기초 환경 배치 가 끝났다.그리고 zookeeper 도 설치 가 완료 되 었 습 니 다.다음은 다음 글 에서 HDFS 를 계속 설치 하 겠 습 니 다.
시리즈
Hadoop 클 러 스 터 (1) Zookeeper 구축
Hadoop 클 러 스 터 (2) HDFS 구축
Hadoop 군집 (3) Hbase 구축
Hadoop 클 러 스 터 (4) Hadoop 업그레이드
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Azure HDInsight + Microsoft R Server에서 연산 처리 분산Microsoft Azure HDInsight는 Microsoft가 제공하는 Hadoop의 PaaS 서비스로 인프라 주변의 구축 노하우를 몰라도 훌륭한 Hadoop 클러스터를 구축할 수 있는 훌륭한 서비스입니다. 이...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.