您的位置:首页 > 运维架构 > 网站架构

Hadoop2.2.0-HA高可用集群环境搭建

2015-09-15 00:00 921 查看

Hadoop2.2.0-HA高可用集群环境搭建

集群主机信息

主机名称主机ip配置主要功能
master1硬盘300G,内存32G,CPU8核管理主节点
master2硬盘300G,内存32G,CPU8核管理备份节点
slave1硬盘300G,内存8G,CPU4核数据节点
slave2硬盘300G,内存8G,CPU4核数据节点
slave3硬盘300G,内存8G,CPU4核数据节点
slave4硬盘500G,内存4G,CPU2核mysql数据库
本次集群使用6台物理机,操作系统都采用centOS6.4版本

hadoop-2.2.0.tar.gz

apache-hive-1.0.1-bin.tar.gz

sqoop-1.4.4.bin__hadoop-0.20.tar.gz

zookeeper-3.4.6.tar.gz

jdk1.7

集群组件包

集群机器配置

设置静态IP

vim /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0 #描述网卡对应的设备别名,例如ifcfg-eth0的文件中它为eth0
BOOTPROTO=static #设置网卡获得ip地址的方式,可能的选项为static,dhcp或bootp,分别对应静态指定的 ip地址,通过dhcp协议获得的ip地址,通过bootp协议获得的ip地址
BROADCAST=192.168.0.255 #对应的子网广播地址
HWADDR=00:07:E9:05:E8:B4 #对应的网卡物。

修改主机名

vi /etc/sysconfig/network
hostname=master1
重启一下网络service network restart
验证reboot -h now 立刻重启 然后hostname

关闭防火墙

关闭已经启动的防火墙:service iptables stop (只能关闭当前)
验证:service iptables status
Firewall is not running
关闭防火墙开机自动启动功能:
(1). 先查看查看: chkconfig --list |grep iptables
iptables 0:off 1:off 2:on 3:on 4:on 5:on 6:off
(2). 关闭chkconfig iptables off
验证:chkconfig --list |grep iptables

配置SSH免密码登录

ssh-keygen 生产密码 回车按三下
赋给其他机器的秘钥:ssh-copy-id+ip(例如:ssh-copy-id 10.1.1.1)
六台机器每台机器都要把当前机器的秘钥发送到其他五台机器上,实现五台机器免秘钥登录。

安装JDK

把机器自带的jdk删掉:显示机器安装过的jdk命令rpm -qa | grep jdk
卸载命令:
# rpm -e --nodeps java-1.6.0-openjdk-1.6.0.0-1.62.1.11.11.90.el6_4.x86_64
# rpm -e --nodeps java-1.7.0-openjdk-1.7.0.25-2.3.10.4.el6_4.x86_64
# rpm -e --nodeps tzdata-java-2013c-2.el6.noarch

配置zookeeper

tar -zxvf zookeeper-3.4.6.tar.gz 解压zookeeper包

cd zookeeper安装路径的conf目录修改文件zoo_sample.cfg 为zoo.cfg

修改配置文件vi zoo.cfg



在/usr/local/zookeeoer 目录下建立 data和logs目录(注意:在以后拷贝到其它机器上在其它机器上也得建立这二个目录)

在server.1的data目录下编写一个叫 myid的文件命令为:vi myid 里面写上1

在server.2的data目录下编写一个叫 myid的文件命令为:vi myid 里面写上2
在server.3的data目录下编写一个叫 myid的文件命令为:vi myid 里面写上3
在server.4的data目录下编写一个叫 myid的文件命令为:vi myid 里面写上4
在server.5的data目录下编写一个叫 myid的文件命令为:vi myid 里面写上5。

将配置好的zookeeper拷贝到其它四台机器上(注:修改每台机器上的myid)

scp -r /usr/local/zookeeper IP:/usr/local/

进入zookeeper的bin目录启动zkServer.sh start 启动之后 输入命令:jps 查看控制台是否有QuorumPeerMain进程存在。成功后启动另外四台机器

测试zookeeper是否有报错现象进入zookeeper的bin目录输入zkCli.sh 看下是否报错现象.如果正常进行下一步安装.

配置hadoop

解压hadoop-2.2.0.tar.gz 进入hadoop解压的etc/hadoop/目录编辑六个文件分别是:core-site.xml, hadoop-env.sh, hdfs-site.xml , mapred-site.xml, yarn-site.xml, slaves

首先修改core-site.xml 配置如下:



配置解释:
fs.defaultFs:指定hdfs的nameservice为ns1,是NameNode的URI。hdfs://主机名:端口
hadoop.tmp.dir:这里的路径默认是NameNode、DataNode、JournalNode等存放数据的公共目录。用户也可以自己单独指定这三类节点的目录
ha.zookeeper.quorum:这里是ZooKeeper集群的地址和端口。注意,数量一定是奇数,且不少于三个节点。
配置hadoop-env.sh (只需要指定jdk的安装路径即可)



配置hdfs-site.xml








配置解释:dfs.namenode.name.dir :指定namenode名称空间的存储地址。dfs.namenode.data.dir:指定datanode数据存储地址dfs.replication:指定数据冗余份数。dfs.nameservices:指定hdfs的nameservice为cluster1,需要和core-site.xml中的保持一致。dfs.ha.namenodes.cluster1:cluster1下面有两个NameNode,分别是master1,master2.dfs.namenode.rpc-address.cluster1.master1:maste1的RPC通信地址.dfs.namenode.http-address.cluster1.master1:master1的http通信地址dfs.namenode.rpc-address.cluster1.master2:maste1的RPC通信地址dfs.namenode.http-address.cluster1.master2: master1的http通信地址dfs.namenode.shared.edits.dir:指定NameNode的元数据在JournalNode上的存放位置dfs.ha.automatic-failover.enabled.cluster1:指定支持高可用自动切换机制dfs.client.failover.proxy.provider.cluster1: 配置失败自动切换实现方式dfs.journalnode.edits.dir: 指定Journalnode的元数据在JournalNode上的存放位置dfs.ha.fencing.methods: 配置隔离机制dfs.ha.fencing.ssh.private-key-files:使用隔离机制时需要ssh免密码登陆ha.failover-controller.cli-check.rpc-timeout.ms:手动运行的FC功能(从CLI)等待健康检查、服务状态的超时时间。ipc.client.connect.timeout:SSH连接超时,毫秒,仅适用于内建的sshfence fencerdfs.image.transfer.bandwidthPerSec: Image文件传输时可以使用的最大带宽,秒字节。0表示没有限制。HA方式使用不到,可不关注dfs.web.ugi:Web服务器使用的用户名。如果将这个参数设置为超级用户的名称,则所有Web客户就可以看到所有的信息4.配置mapred-site.xml


配置解释:mapreduce.framework.name:mapreduce:建立在指定yarn之上mapred.local.dir:MR 的中介数据文件存放目录mapreduce.jobhistory.address: 配置 MapReduce JobHistory Server 地址,默认端口10020 mapreduce.jobhistory.webapp.address: 配置 MapReduce JobHistory Server web ui 地址,默认端口19888 5.配置yarn-site.xml

配置解释:yarn.resourcemanager.hostname:开启故障自动切换至masteryarn.resourcemanager.address:ResourceManager 对客户端暴露的地址。客户端通过该地址向RM提交应用程序,杀死应用程序等yarn.resourcemanager.scheduler.address: ResourceManager 对ApplicationMaster暴露的访问地址。ApplicationMaster通过该地址向RM申请资源、释放资源等。yarn.resourcemanager.webapp.address: ResourceManager对外web ui地址。用户可通过该地址在浏览器中查看集群各类信息。yarn.resourcemanager.resource-tracker.address :ResourceManager 对NodeManager暴露的地址.。NodeManager通过该地址向RM汇报心跳,领取任务等yarn.nodemanager.aux-services:NodeManager上运行的附属服务。需配置成mapreduce_shuffle,才可运行MapReduce程序配置slaves


7.启动hadoop集群

1. 首先五台机器启动zookeeper zkServer.sh start启动journalnode 在master1,master2,slave1,slave2,slave3 的sbin目录中 hadoop-daemon.sh start journalnode。
2.格式化zookeeper在master1上即可命令: hdfs zkfc -formatZK
3.对master1主节点进行HDFS格式化bin/hadoop namenode –format,看是否报错。。如果没有报错进行下一步,启动主节点的namenode命令是:sbin/hadoop-daemon.sh start namenode.
4.对master2主节点进行HDFS格式化bin/hadoop namenode -bootstrapStandby,看是否报错。。如果没有报错进行下一步,启动主节点的namenode命令是:sbin/hadoop-daemon.sh start namenode
5.在master1和master2启动zkfc:

sbin/hadoop-daemon.sh start zkfc 我们的master1、master2有一个节点就会变为active状态.6.启动datanode :在master1上执行sbin/hadoop-daemon.sh start datanode
7.启动yarn 在master1,master2上sbin/start-yarn.sh
8.检查是否启动成功在控制台上jps 看下进程是否正确主节点



备用节点进程显示如下:



在访问50070端口和8088端口是否能够访问,正常的话hadoop集群算是成功了.

8.配置hive

配置hive

解压hive包进入hive目录的conf下面修改hive-default.xml.template, hive-env.sh.template 为hvie-site.xml和hive-env.sh

编辑hive-site.xml(最好是自己vi一个hive-site.xml因为默认配置文件里面的配置都是系统配置的)







配置解释:
hive.metastore.warehouse.dir:
(HDFS上的)数据目录默认值是/user/hive/warehouse
hive.exec.scratchdir:
(HDFS上的)临时文件目录,默认值是/tmp/hive-${user.name}
hive.querylog.location:
Hive 实时查询日志所在的目录,如果该值为空,将不创建实时的查询日志。
javax.jdo.option.ConnectionURL:
元数据库的连接 URL。
javax.jdo.option.ConnectionDriverName:
JDBC驱动
javax.jdo.option.ConnectionUserName:
用户名
javax.jdo.option.ConnectionPassword:
密码
hive.metastore.authorization.storage.checks:
属性被设置成true时,Hive将会阻止没有权限的用户进行表删除操作

3.编辑hive-env.sh (指定hadoop安装目录)





4.加载mysql驱动到hive的lib目录中

5.在10.1.3.125上安装mysql数据库建立database 为hive的数据库设置alter database hive character set latin1; 改变hive元数据库的字符集.当前连接的用户远程连接权限.

6.启动hive 进入hive安装bin目录./hive 启动如果不报错的话进去
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: