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.xmlfs.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搭建(全), 感谢原作者分享。

InnoDBBufferPool通过缓存数据和索引页来减少磁盘I/O,提升数据库性能。其工作原理包括:1.数据读取:从BufferPool中读取数据;2.数据写入:修改数据后写入BufferPool并定期刷新到磁盘;3.缓存管理:使用LRU算法管理缓存页;4.预读机制:提前加载相邻数据页。通过调整BufferPool大小和使用多个实例,可以优化数据库性能。

MySQL与其他编程语言相比,主要用于存储和管理数据,而其他语言如Python、Java、C 则用于逻辑处理和应用开发。 MySQL以其高性能、可扩展性和跨平台支持着称,适合数据管理需求,而其他语言在各自领域如数据分析、企业应用和系统编程中各有优势。

MySQL值得学习,因为它是强大的开源数据库管理系统,适用于数据存储、管理和分析。1)MySQL是关系型数据库,使用SQL操作数据,适合结构化数据管理。2)SQL语言是与MySQL交互的关键,支持CRUD操作。3)MySQL的工作原理包括客户端/服务器架构、存储引擎和查询优化器。4)基本用法包括创建数据库和表,高级用法涉及使用JOIN连接表。5)常见错误包括语法错误和权限问题,调试技巧包括检查语法和使用EXPLAIN命令。6)性能优化涉及使用索引、优化SQL语句和定期维护数据库。

MySQL适合初学者学习数据库技能。1.安装MySQL服务器和客户端工具。2.理解基本SQL查询,如SELECT。3.掌握数据操作:创建表、插入、更新、删除数据。4.学习高级技巧:子查询和窗口函数。5.调试和优化:检查语法、使用索引、避免SELECT*,并使用LIMIT。

MySQL通过表结构和SQL查询高效管理结构化数据,并通过外键实现表间关系。1.创建表时定义数据格式和类型。2.使用外键建立表间关系。3.通过索引和查询优化提高性能。4.定期备份和监控数据库确保数据安全和性能优化。

MySQL是一个开源的关系型数据库管理系统,广泛应用于Web开发。它的关键特性包括:1.支持多种存储引擎,如InnoDB和MyISAM,适用于不同场景;2.提供主从复制功能,利于负载均衡和数据备份;3.通过查询优化和索引使用提高查询效率。

SQL用于与MySQL数据库交互,实现数据的增、删、改、查及数据库设计。1)SQL通过SELECT、INSERT、UPDATE、DELETE语句进行数据操作;2)使用CREATE、ALTER、DROP语句进行数据库设计和管理;3)复杂查询和数据分析通过SQL实现,提升业务决策效率。

MySQL的基本操作包括创建数据库、表格,及使用SQL进行数据的CRUD操作。1.创建数据库:CREATEDATABASEmy_first_db;2.创建表格:CREATETABLEbooks(idINTAUTO_INCREMENTPRIMARYKEY,titleVARCHAR(100)NOTNULL,authorVARCHAR(100)NOTNULL,published_yearINT);3.插入数据:INSERTINTObooks(title,author,published_year)VA


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

SecLists
SecLists是最终安全测试人员的伙伴。它是一个包含各种类型列表的集合,这些列表在安全评估过程中经常使用,都在一个地方。SecLists通过方便地提供安全测试人员可能需要的所有列表,帮助提高安全测试的效率和生产力。列表类型包括用户名、密码、URL、模糊测试有效载荷、敏感数据模式、Web shell等等。测试人员只需将此存储库拉到新的测试机上,他就可以访问到所需的每种类型的列表。

EditPlus 中文破解版
体积小,语法高亮,不支持代码提示功能

禅工作室 13.0.1
功能强大的PHP集成开发环境

SublimeText3 英文版
推荐:为Win版本,支持代码提示!

PhpStorm Mac 版本
最新(2018.2.1 )专业的PHP集成开发工具