목차
1、环境说明
2、准备工作
2.1、修改Hostname
2.2、添加Hosts映射关系
2.3、配置JDK环境
2.3.1、解压安装包
2.3.2、修改环境配置信息
2.3.3、检查当前JDK版本信息
2.3.4、补充(可选)
2.4、安装SSH
2.5、新建用户
2.6、配置集群之间SSH无密码登陆
3、Hadoop集群安装配置
3.1、修改hadoop配置文件
5.2、同步安装包
3.3、启动Hadoop集群
4、Zookeeper集群安装配置
4.1、修改zookeeper配置文件zoo.cfg
4.2、新建目录、新建并编辑myid文件
4.4、启动zookeeper
4.5、检查zookeeper是否配置成功
5、HBase集群安装配置
5.1、修改hbase配置文件
5.3、启动HBase
6、结语
데이터 베이스 MySQL 튜토리얼 分布式集群环境hadoop、hbase、zookeeper搭建(全)

分布式集群环境hadoop、hbase、zookeeper搭建(全)

Jun 07, 2016 pm 04:30 PM
hadoop hbase 분산 환경 무리

1、环境说明 集群环境至少需要3个节点(也就是3台服务器设备):1个Master,2个Slave,节点之间局域网连接,可以相互ping通,下面举例说明,配置节点IP分配如下: Hostname IP 新建用户 新建用户密码 Master 10.10.10.213 hadoop 123456 Slave1 10.10.10.214

1、环境说明

集群环境至少需要3个节点(也就是3台服务器设备):1个Master,2个Slave,节点之间局域网连接,可以相互ping通,下面举例说明,配置节点IP分配如下:

Hostname IP 新建用户 新建用户密码
Master 10.10.10.213 hadoop 123456
Slave1 10.10.10.214 hadoop 123456
Slave2 10.10.10.215 hadoop 123456

三个节点均使用centos?6.3系统,为了便于维护,集群环境配置项最好使用相同用户名、用户密码、相同hadoop、hbase、zookeeper目录结构。

2、准备工作

2.1、修改Hostname

为了集群能够正常稳定的运行,我们需要将每个节点的hostname分别配置为对应的Master、Slave1、Slave2。

(1)在Master服务器中执行以下命令:

hostname Master	//当前有效
로그인 후 복사
vi /etc/sysconfig/network	//重启后生效
로그인 후 복사
로그인 후 복사
로그인 후 복사
HOSTNAME=Master
로그인 후 복사

(2)在Slave1服务器中执行以下命令:

hostname Slave1	//当前有效
로그인 후 복사
vi /etc/sysconfig/network	//重启后生效
로그인 후 복사
로그인 후 복사
로그인 후 복사
HOSTNAME=Slave1
로그인 후 복사

(3)在Slave2服务器中执行以下命令:

hostname Slave2	//当前有效
로그인 후 복사
vi /etc/sysconfig/network	//重启后生效
로그인 후 복사
로그인 후 복사
로그인 후 복사
HOSTNAME=Slave2
로그인 후 복사

2.2、添加Hosts映射关系

分别在三个节点下通过如下命令修改hosts映射关系:

vi /etc/hosts
로그인 후 복사

添加内容如下:

Master	10.10.10.213
Slave1	10.10.10.214
Slave2	10.10.10.215
로그인 후 복사

2.3、配置JDK环境

Hadoop集群必须依赖JDK环境,所以这里我们首先需要配置好JDK环境,同样为了管理,我们建议服务器中的节点JDK安装环境均在相同路径下。

2.3.1、解压安装包

拷贝jdk文件jdk-6u25-linux-x64.bin到/usr/lib/java文件目录(该目录可自行定义)下,解压安装包,如果文件权限被限制,可通过如下命令进行赋权限操作:

chmod u+w jdk-6u25-linux-x64.bin
로그인 후 복사

2.3.2、修改环境配置信息

vi /etc/profile
로그인 후 복사

在最后加上:

export JAVA_HOME=/usr/lib/java/jdk1.6.0_25
export PATH=$PATH:$JAVA_HOME/bin 
export CLASSPATH=.:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/rt.jar
로그인 후 복사

通过注销或者以下命令使修改生效:

source /etc/profile
로그인 후 복사

2.3.3、检查当前JDK版本信息

java -version
로그인 후 복사

2.3.4、补充(可选)

如果查看当前的JDK版本不是刚才设置的JDK版本,则可以进行默认JDK版本设置操作:

sudo update-alternatives --install /usr/bin/java java /usr/lib/java/jdk1.6.0_25/bin/java 300   
sudo update-alternatives --install /usr/bin/javac javac /usr/lib/java/jdk1.6.0_25/bin/javac 300   
sudo update-alternatives --config java(选择jdk1.6.0_25版本的序号就行)
로그인 후 복사

2.4、安装SSH

Centos系统安装时默认可以选择安装SSH,ubuntu下可以通过如下命令进行安装(前提是必须联网):

sudo apt-get install ssh
sudo apt-get install rsync
로그인 후 복사

2.5、新建用户

为了hadoop集群的安全与方便管理,我们要另外新建用户,并设置密码,命令如下:

sudo adduser hadoop
sudo passwd hadoop
로그인 후 복사

上述命令中,第一行命令新建了一个user为hadoop的用户,第二行命令是为这个hadoop用户设置密码,同样最好服务器之间均保持一致。

2.6、配置集群之间SSH无密码登陆

集群环境的使用必须通过ssh无密码登陆来执行,本机登陆本机必须无密码登陆,主机与从机之间必须可以双向无密码登陆,从机与从机之间无限制。以本次为例,比如Master与Slave1之间的无密码登陆设置步骤如下:

(1)进入Master服务器,进行无密码自登陆设置

ssh hadoop@Master	//登陆Master
ssh-keygen  -t  rsa  -P  ''  -f  ~/.ssh/id_rsa
cat  ~/.ssh/id_rsa.pub  >>  ~/.ssh/authorized_keys	//生成密钥
chmod 700 ~/.ssh && chmod 600 ~/.ssh/*	//设置权限
로그인 후 복사

如果不知道是否配置成功,可通过如下命令进行验证:

ssh localhost
로그인 후 복사
如果上述命令不需要输入密码则表示配置成功。

进入Slave1服务器,进行无密码自登陆设置,操作同上,只需将对应的Master改为Slave1即可,此处省略。

(2)进入Master服务器,设置Master->Slave1的无密码登陆

ssh hadoop@Master	//登陆Master
cat ~/.ssh/id_rsa.pub | ssh hadoop@Slave1 'cat - >> ~/.ssh/authorized_keys'
ssh hadoop@Slave1	//若此处不需要输入密码则配置成功
로그인 후 복사

(3)进入Slave1服务器,设置Slave1->Master的无密码登陆

ssh hadoop@Slave1	//登陆Slave1
cat ~/.ssh/id_rsa.pub | ssh hadoop@Master 'cat - >> ~/.ssh/authorized_keys'
ssh hadoop@Master	//若此处不需要输入密码则成功
로그인 후 복사

以上便是Master与Slave1之间的双向无密码登陆配置。Master与Slave2之间的配置原理同上述基本一样,所以不再赘述。

3、Hadoop集群安装配置

3.1、修改hadoop配置文件

在centos系统下解压hadoop安装包hadoop-1.0.3.tar.gz,修改conf目录下的6个文件:

(1)core-site.xml
		fs.default.name
		hdfs://Master:9000
로그인 후 복사
(2)hadoop-env.sh

在该文件中加上如下一行代码:

export JAVA_HOME=(你配置的jdk路径,比如:/usr/java/jdk1.6.0_25)
로그인 후 복사

(3)hdfs-site.xml

	
		dfs.name.dir
		/home/hadoop/temp/hadoop
		dfs.data.dir
		/home/hadoop/temp/hadoop
		dfs.replication
		1
		dfs.support.append
		true
로그인 후 복사

(4)mapred-site.xml

		mapred.job.tracker
		Master:9001
		mapred.acls.enabled
		false
로그인 후 복사

(5)Masters

Master
로그인 후 복사

(6)Slaves

Slave1
Slave2
로그인 후 복사
로그인 후 복사

3.2、同步安装包

将解压修改后的hadoop-1.0.3文件夹分别拷贝到Master、Slave1、Slave2的相同hadoop安装路径下。

3.3、启动Hadoop集群

进入Master的hadoop-1.0.3目录,执行以下操作:

bin/hadoop namenode -format	//格式化namenode,第一次启动服务前执行的操作,以后不需要执行
bin/start-all.sh	 //启动hadoop
jps	//用jps命令能看到除jps外有5个进程
로그인 후 복사

至此,hadoop集群配置过程结束。可通过浏览器地址http://10.10.10.213:50070?查看节点启用状态验证配置是否成功。

4、Zookeeper集群安装配置

4.1、修改zookeeper配置文件zoo.cfg

在centos系统下解压zookeeper安装包zookeeper-3.4.3.tar.gz?,进入到conf目录,将zoo_sample.cfg拷贝一份命名为zoo.cfg(Zookeeper?在启动时会找这个文件作为默认配置文件),打开该文件进行修改为以下格式(注意权限问题,如果最后配置有问题请检查过程中权限是否正确)。

dataDir=/home/hadoop/temp/zookeeper/data
server.0=10.10.10.213:2888:3888
server.1=10.10.10.214:2888:3888
server.2=10.10.10.215:2888:3888
로그인 후 복사

4.2、新建目录、新建并编辑myid文件

(本次配置myid文件放在/home/hadoop/temp/zookeeper/data目录下)

mkdir /home/hadoop/temp/zookeeper/data	//dataDir目录
vi /home/hadoop/temp/zookeeper/data/myid
로그인 후 복사

注意myid文件中的内容为:Master中为0,Slave1中为1,Slave2中为2,分别与zoo.cfg中对应起来。

4.3、同步安装包

将解压修改后的zookeeper-3.4.3文件夹分别拷贝到Master、Slave1、Slave2的相同zookeeper安装路径下。注意:myid文件的内容不是一样的,各服务器中分别是对应zoo.cfg中的设置。

4.4、启动zookeeper

Zookeeper的启动与hadoop不一样,需要每个节点都执行,分别进入3个节点的zookeeper-3.4.3目录,启动zookeeper:

bin/zkServer.sh start
로그인 후 복사
注意:此时如果报错先不理会,继续在另两台服务器中执行相同操作。

4.5、检查zookeeper是否配置成功

待3台服务器均启动后,如果过程正确的话zookeeper应该已经自动选好leader,进入每台服务器的zookeeper-3.4.3目录,执行以下操作查看zookeeper启动状态:

bin/zkServer.sh status
로그인 후 복사

如果出现以下代码表示安装成功了。

[java] view plaincopy
JMX enabled by default  
Using config: /home/hadoop/zookeeper-3.4.3/bin/../conf/zoo.cfg  
Mode: follower	//或者有且只有一个leader
로그인 후 복사

5、HBase集群安装配置

5.1、修改hbase配置文件

在centos系统下解压hadoop安装包hadoop-1.0.3.tar.gz,修改conf目录下的3个文件:

(1)hbase-env.sh

export JAVA_HOME=/usr/lib/java/jdk1.6.0_25	//JDK的安装目录
export HBASE_CLASSPATH=/home/hadoop/hadoop-1.0.3/conf	//hadoop的安装目录
export HBASE_MANAGES_ZK=true
로그인 후 복사

(2)hbase-site.xml

		hbase.rootdir
		hdfs://Master:9000/hbase
		hbase.cluster.distributed
		true
		hbase.zookeeper.property.clientPort
		2181
		hbase.zookeeper.quorum
		Master
		hbase.zookeeper.property.dataDir
		/home/hadoop/temp/zookeeper
		dfs.support.append
		true
로그인 후 복사

(3)regionservers

Slave1
Slave2
로그인 후 복사
로그인 후 복사

5.2、同步安装包

将解压修改后的hbase-0.94.1-security文件夹分别拷贝到Master、Slave1、Slave2的相同hbase安装路径下。

5.3、启动HBase

进入Master的hbase-0.94.1-security目录,执行以下操作:

bin/start-hbase.sh	//之后用jps查看是否所有进程都已启动
로그인 후 복사

至此,hbase服务配置过程结束。可通过浏览器地址http://10.10.10.213:60010?查看hbase是否可用。

也可以执行以下命令,进入hbase?shell进行验证。

6、结语

关于hadoop、zookeeper、hbase的启动与关闭顺序:启动时hadoop和zookeeper随意先后,但是hbase必须最后启动,关闭时hbase必须首先关闭,然后随意先后关闭hadoop、zookeeper。否则,会出现异常。

关于各软件的安装包可以去官网下载,不同版本的安装配置可能会有少许的变动,而且版本搭配如果不一样的话也可能出现问题,有问题就针对性地去查,这样学习才有进步。

作者:jinnchang 发表于2013-5-8 16:29:30 原文链接

阅读:44 评论:0 查看评论

分布式集群环境hadoop、hbase、zookeeper搭建(全)

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

Video Face Swap

Video Face Swap

완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

Windows 복구 환경으로 부팅할 수 없습니다 Windows 복구 환경으로 부팅할 수 없습니다 Feb 19, 2024 pm 11:12 PM

WinRE(Windows 복구 환경)는 Windows 운영 체제 오류를 복구하는 데 사용되는 환경입니다. WinRE에 들어간 후 시스템 복원, 공장 초기화, 업데이트 제거 등을 수행할 수 있습니다. WinRE로 부팅할 수 없는 경우 이 문서에서는 문제 해결을 위한 수정 사항을 안내합니다. Windows 복구 환경으로 부팅할 수 없습니다. Windows 복구 환경으로 부팅할 수 없는 경우 아래 제공된 수정 사항을 사용하십시오. Windows 복구 환경 상태 확인 다른 방법을 사용하여 Windows 복구 환경으로 들어가십시오. 실수로 Windows 복구 파티션을 삭제하셨습니까? 아래에서 전체 업그레이드 또는 Windows 새로 설치를 수행하십시오. 이러한 모든 수정 사항에 대해 자세히 설명했습니다. 1] Wi-Fi 확인

노드는 Proxmox VE에서 완전히 대피하고 클러스터에 다시 합류합니다. 노드는 Proxmox VE에서 완전히 대피하고 클러스터에 다시 합류합니다. Feb 21, 2024 pm 12:40 PM

ProxmoxVE에서 노드를 완전히 제거하고 클러스터에 다시 합류하는 시나리오 설명 ProxmoxVE 클러스터의 노드가 손상되어 신속하게 복구할 수 없는 경우 결함이 있는 노드를 클러스터에서 완전히 추방하고 잔여 정보를 정리해야 합니다. 그렇지 않으면 결함이 있는 노드가 사용하는 IP 주소를 사용하는 새 노드는 클러스터에 정상적으로 합류할 수 없습니다. 마찬가지로 클러스터에서 분리된 결함이 있는 노드가 복구된 후에는 클러스터와 관련이 없지만 이 단일 노드의 웹 관리에 액세스할 수 없습니다. 백그라운드에서 원래 ProxmoxVE 클러스터의 다른 노드에 대한 정보가 표시되므로 매우 짜증납니다. 클러스터에서 노드를 제거합니다. ProxmoxVE가 Ceph 하이퍼 수렴형 클러스터인 경우 호스트 시스템 Debian에서 클러스터의 모든 노드(삭제하려는 노드 제외)에 로그인하고 명령을 실행해야 합니다.

Redis를 사용하여 분산 데이터 동기화를 달성하는 방법 Redis를 사용하여 분산 데이터 동기화를 달성하는 방법 Nov 07, 2023 pm 03:55 PM

Redis를 사용하여 분산 데이터 동기화를 달성하는 방법 인터넷 기술의 발전과 점점 더 복잡해지는 애플리케이션 시나리오로 인해 분산 시스템의 개념이 점점 더 널리 채택되고 있습니다. 분산 시스템에서는 데이터 동기화가 중요한 문제입니다. 고성능 인메모리 데이터베이스인 Redis는 데이터를 저장하는 데 사용될 수 있을 뿐만 아니라 분산된 데이터 동기화를 달성하는 데에도 사용할 수 있습니다. 분산 데이터 동기화에는 일반적으로 게시/구독(Publish/Subscribe) 모드와 마스터-슬레이브 복제(Master-slave)의 두 가지 공통 모드가 있습니다.

Redis가 분산 세션 관리를 구현하는 방법 Redis가 분산 세션 관리를 구현하는 방법 Nov 07, 2023 am 11:10 AM

Redis가 분산 세션 관리를 구현하려면 특정 코드 예제가 필요합니다. 분산 세션 관리는 오늘날 인터넷에서 뜨거운 주제 중 하나입니다. 높은 동시성과 대용량 데이터에 직면하여 기존 세션 관리 방법은 점차 부적절해지고 있습니다. 고성능 키-값 데이터베이스인 Redis는 분산 세션 관리 솔루션을 제공합니다. 이 기사에서는 Redis를 사용하여 분산 세션 관리를 구현하는 방법을 소개하고 특정 코드 예제를 제공합니다. 1. 분산 세션 저장소인 Redis 소개 전통적인 세션 관리 방법은 세션 정보를 저장하는 것입니다.

Docker를 사용하여 다중 노드 클러스터를 관리하고 확장하는 방법 Docker를 사용하여 다중 노드 클러스터를 관리하고 확장하는 방법 Nov 07, 2023 am 10:06 AM

오늘날의 클라우드 컴퓨팅 시대에 컨테이너화 기술은 오픈 소스 세계에서 가장 인기 있는 기술 중 하나가 되었습니다. Docker의 등장으로 클라우드 컴퓨팅은 더욱 편리하고 효율적이게 되었으며, 개발자와 운영 및 유지 관리 담당자에게 없어서는 안 될 도구가 되었습니다. 다중 노드 클러스터 기술의 적용은 Docker 기반으로 널리 사용됩니다. 다중 노드 클러스터 배포를 통해 리소스를 보다 효율적으로 활용하고, 안정성과 확장성을 향상시키며, 배포 및 관리에 있어 보다 유연해질 수 있습니다. 다음으로 Docker를 사용하는 방법을 소개하겠습니다.

분산 작업 스케줄링 및 실행을 구현하기 위해 MongoDB를 사용한 경험 공유 분산 작업 스케줄링 및 실행을 구현하기 위해 MongoDB를 사용한 경험 공유 Nov 02, 2023 am 09:39 AM

MongoDB는 고성능, 확장성 및 유연성을 갖춘 오픈 소스 NoSQL 데이터베이스입니다. 분산 시스템에서는 작업 스케줄링 및 실행이 핵심 문제입니다. MongoDB의 특성을 활용하여 분산 작업 스케줄링 및 실행 솔루션을 구현할 수 있습니다. 1. 분산 작업 스케줄링을 위한 요구 사항 분석 분산 시스템에서 작업 스케줄링은 실행을 위해 여러 노드에 작업을 할당하는 프로세스입니다. 일반적인 작업 예약 요구 사항은 다음과 같습니다. 1. 작업 요청 배포: 사용 가능한 실행 노드에 작업 요청을 보냅니다.

Swoole을 사용하여 분산 예약 작업 예약을 구현하는 방법 Swoole을 사용하여 분산 예약 작업 예약을 구현하는 방법 Nov 07, 2023 am 11:04 AM

Swoole을 사용하여 분산 예약 작업 예약을 구현하는 방법 소개: 기존 PHP 개발에서는 예약 작업 예약을 구현하기 위해 cron을 사용하는 경우가 많습니다. 그러나 cron은 단일 서버에서만 작업을 실행할 수 있으며 높은 동시성 시나리오에 대처할 수 없습니다. Swoole은 PHP를 기반으로 하는 고성능 비동기 동시성 프레임워크로, 완전한 네트워크 통신 기능과 다중 프로세스 지원을 제공하여 분산 예약 작업 스케줄링을 쉽게 구현할 수 있습니다. 이 기사에서는 Swoole을 사용하여 분산 예약 작업 스케줄링을 구현하는 방법을 소개합니다.

Redis를 사용하여 분산 캐시 일관성 달성 Redis를 사용하여 분산 캐시 일관성 달성 Nov 07, 2023 pm 12:05 PM

Redis를 사용하여 분산 캐시 일관성 달성 현대 분산 시스템에서 캐시는 매우 중요한 역할을 합니다. 이는 데이터베이스에 대한 시스템 액세스 빈도를 크게 줄이고 시스템 성능과 처리량을 향상시킬 수 있습니다. 분산 시스템에서 캐시 일관성을 보장하려면 여러 노드 간의 데이터 동기화 문제를 해결해야 합니다. 이 기사에서는 Redis를 사용하여 분산 캐시 일관성을 달성하는 방법을 소개하고 구체적인 코드 예제를 제공합니다. Redis는 지속성, 복제 및 수집을 지원하는 고성능 키-값 데이터베이스입니다.

See all articles