目錄
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 Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

無法引導到Windows復原環境 無法引導到Windows復原環境 Feb 19, 2024 pm 11:12 PM

Windows復原環境(WinRE)是用來修復Windows作業系統錯誤的環境。進入WinRE後,您可以執行系統還原、出廠重設、卸載更新等操作。如果無法引導到WinRE,本文將指導您使用修復程式解決此問題。無法引導至Windows復原環境如果無法引導至Windows復原環境,請使用下方提供的修復程式:檢查Windows復原環境的狀態使用其他方法進入Windows復原環境您是否意外刪除了Windows復原分割區?執行Windows的就地升級或全新安裝下面,我們已經詳細解釋了所有這些修復。 1]檢查Wi

節點從Proxmox VE徹底撤離及再次加入集群 節點從Proxmox VE徹底撤離及再次加入集群 Feb 21, 2024 pm 12:40 PM

節點從ProxmoxVE徹底撤離及再次加入叢集場景描述當ProxmoxVE叢集中有節點損壞無法快速修復時,需要將故障節點乾淨的從叢集踢出,並把殘留資訊清理乾淨。否則,新的節點用故障節點曾使用用的IP的位址將無法正常加入叢集;同樣,從叢集中脫離出來的故障節點修復後,雖然與叢集已經毫無關係,但存取此單節點的Web管理後台,將出現原ProxmoxVE叢集其它節點的訊息,非常惱火。從集群中驅逐節點如果ProxmoxVE是Ceph超融合集群,則需要登入集群任意節點(欲刪除節點除外)宿主系統Debian,命令

如何使用Redis實現分散式資料同步 如何使用Redis實現分散式資料同步 Nov 07, 2023 pm 03:55 PM

如何使用Redis實現分散式資料同步隨著互聯網技術的發展和應用場景的日益複雜,分散式系統的概念越來越被廣泛採用。在分散式系統中,資料同步是一個重要的問題。 Redis作為一個高效能的記憶體資料庫,不僅可以用來儲存數據,還可以用來實現分散式資料同步。對於分散式資料同步,一般有兩種常見的模式:發布/訂閱(Publish/Subscribe)模式和主從複製(Maste

Redis如何實現分散式會話管理 Redis如何實現分散式會話管理 Nov 07, 2023 am 11:10 AM

Redis如何實現分散式會話管理,需要具體程式碼範例分散式會話管理是當下網路熱門話題之一,面對高並發、大數據量的場景,傳統的會話管理方式逐漸顯得力不從心。 Redis作為一個高效能的鍵值資料庫,提供了分散式會話管理的解決方案。本文將介紹如何使用Redis實現分散式會話管理,並給出具體的程式碼範例。一、Redis作為分散式會話儲存介紹傳統的會話管理方式是將會話信

利用MongoDB實現分散式任務調度與執行的經驗分享 利用MongoDB實現分散式任務調度與執行的經驗分享 Nov 02, 2023 am 09:39 AM

MongoDB是一個開源的NoSQL資料庫,具有高效能、擴充性和靈活性的特性。在分散式系統中,任務調度與執行是一個關鍵的問題,透過利用MongoDB的特性,可以實現分散式任務調度與執行的方案。一、分散式任務調度的需求分析在分散式系統中,任務調度是將任務分配給不同的節點進行執行的過程。常見的任務排程需求包括:1.任務的請求分發:將任務請求傳送給可用的執行節點。

如何使用Docker進行多節點叢集的管理與擴充 如何使用Docker進行多節點叢集的管理與擴充 Nov 07, 2023 am 10:06 AM

在當今雲端運算時代,容器化技術已成為開源界最受歡迎的技術之一。 Docker的出現使得雲端運算變得更加便利、高效,成為了開發人員、維運人員不可或缺的工具。而多節點叢集技術的應用更是在Docker的基礎上被廣泛使用。透過多節點叢集部署,我們可以更有效地利用資源,提高可靠性和可擴展性,同時也能更靈活地進行部署和管理。接下來,我們將為大家介紹如何使用Docker進

利用Redis實現分散式快取一致性 利用Redis實現分散式快取一致性 Nov 07, 2023 pm 12:05 PM

利用Redis實現分散式快取一致性在現代分散式系統中,快取扮演著非常重要的角色。它可以大大降低系統對資料庫的存取頻率,提高系統的效能和吞吐量。而在分散式系統中,為了確保快取的一致性,我們需要解決多個節點之間的資料同步問題。在本文中,我們將介紹如何利用Redis實現分散式快取一致性,並給出具體的程式碼範例。 Redis是一個高效能的鍵值資料庫,它支援持久化、複製和集

如何使用Swoole實現分散式定時任務調度 如何使用Swoole實現分散式定時任務調度 Nov 07, 2023 am 11:04 AM

如何使用Swoole實現分散式定時任務調度引言:在傳統的PHP開發中,我們經常使用cron來實現定時任務調度,但是cron只能在單一伺服器上執行任務,無法應對高並發的場景。而Swoole是一款基於PHP的高效能非同步並發框架,它提供了完善的網路通訊能力和多進程支持,使得我們能夠輕鬆實現分散式定時任務調度。本文將介紹如何使用Swoole來實現分散式定時任務調度

See all articles