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

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

  1. 集群主机信息

主机名称


主机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版本

  1. hadoop-2.2.0.tar.gz
  2. apache-hive-1.0.1-bin.tar.gz
  3. sqoop-1.4.4.bin__hadoop-0.20.tar.gz
  4. zookeeper-3.4.6.tar.gz
  5. jdk1.7
  1. 集群组件包
  2. 集群机器配置
  3. 设置静态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 #对应的网卡物。

  1. 修改主机名

vi /etc/sysconfig/network 

hostname=master1

重启一下网络service network restart

验证reboot -h now 立刻重启  然后hostname

  1. 关闭防火墙

关闭已经启动的防火墙: 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

  1. 配置SSH免密码登录

ssh-keygen 生产密码    回车按三下

赋给其他机器的秘钥:ssh-copy-id+ip(例如:ssh-copy-id 10.1.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

  1. 配置zookeeper
  2. tar -zxvf zookeeper-3.4.6.tar.gz   解压zookeeper包
  3. cd  zookeeper安装路径的conf目录修改文件zoo_sample.cfg 为zoo.cfg
  4. 修改配置文件vi  zoo.cfg

  1. 在/usr/local/zookeeoer 目录下建立 data和logs目录(注意:在以后拷贝到其它机器上在其它机器上也得建立这二个目录)
  2. 在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。

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

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

  1. 进入zookeeper的bin目录启动zkServer.sh start 启动之后  输入命令:jps 查看控制台是否有QuorumPeerMain进程存在。成功后启动另外四台机器
  2. 测试zookeeper是否有报错现象进入zookeeper的bin目录输入zkCli.sh 看下是否报错现象.如果正常进行下一步安装.
  3. 配置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

  1. 首先修改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的安装路径即可)

  1. 配置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:

    指定NameNode的元数据在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 fencer

    dfs.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:

    开启故障自动切换至master

    yarn.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

  1. 配置hive
  2. 解压hive包进入hive目录的conf下面修改hive-default.xml.template, hive-env.sh.template 为hvie-site.xml和hive-env.sh
  3. 编辑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 启动如果不报错的话进去

时间: 2024-10-13 16:55:36

Hadoop2.2.0-HA高可用集群环境搭建的相关文章

conga下HA高可用集群的搭建(redhat6.5)

实验环境 redhat6.5虚拟机三台,各1G内存,时间同步 server1  172.25.44.1 server2  172.25.44.2 server3  172.25.44.3 火墙和selinux均处于关闭状态 编辑/etc/hosts文件,加入解析 不支持在集群节点中使用 NetworkManager.如果已经在集群节点中安装了 NetworkManager,应该删除或者禁用该程序. server1  server2 ricci节点 (1).yum源配置 vim /etc/yum.

Hadoop 2.6.0 HA高可用集群配置详解

1 Hadoop HA架构详解 1.1 HDFS HA背景 HDFS集群中NameNode 存在单点故障(SPOF).对于只有一个NameNode的集群,如果NameNode机器出现意外情况,将导致整个集群无法使用,直到NameNode 重新启动. 影响HDFS集群不可用主要包括以下两种情况:一是NameNode机器宕机,将导致集群不可用,重启NameNode之后才可使用:二是计划内的NameNode节点软件或硬件升级,导致集群在短时间内不可用. 为了解决上述问题,Hadoop给出了HDFS的高

企业部分之-HA高可用集群的搭建

高可用念集群的概: 高可用集群就是当某一个节点或服务器发生故障时,另一个节点能够自动且立即向外提供服务,即将有故障节点上的资源转移到另一个节点上去,这样另一个节点有了资源既可以向外提供服务.高可用集群是用于单个节点发生故障时,能够自动将资源.服务进行切换,这样可以保证服务一直在线.在这个过程中,对于客户端来说是透明的. 实验环境:需要三台纯净的虚拟机   iptables关闭  selinux为disabled server1:172.25.45.1   #ricci节点主机 server2:1

Kubernetes1.10HA高可用集群环境搭建

k8s 高可用2个核心 apiserver master 和 etcd etcd:(需高可用)集群的数据中心,用于存放集群的配置以及状态信息,非常重要,如果数据丢失那么集群将无法恢复:因此高可用集群部署首先就是etcd是高可用集群: Apiserver:提供了资源操作的唯一入口,并提供认证.授权.访问控制.API注册和发现等机制.整个集群中其他角色只有通过Apiserver才能访问etcd.CLI工具kubectl也是通过apiserver来对整体集群进行访问控制. Controller-man

Eureka高可用集群环境搭建

注册中心集群 在微服务中,注册中心非常核心,可以实现服务治理,如果一旦注册出现故障的时候,可能会导致整个微服务无法访问,在这时候就需要对注册中心实现高可用集群模式. Eureka集群相当简单:相互注册 Eureka高可用实际上将自己作为服务向其他服务注册中心注册自己,这样就可以形成一组相互注册的服务注册中心,从而实现服务清单的互相同步,达到高可用效果. 集群的服务名称要统一,要相同! 启动时候 报错 正常! 启动时候互相注册  不会同时启动成功的 启动类都是一样的 package com.too

HA 高可用集群概述及其原理解析

HA 高可用集群概述及其原理解析 1. 概述 1)所谓HA(High Available),即高可用(7*24小时不中断服务). 2)实现高可用最关键的策略是消除单点故障.HA严格来说应该分成各个组件的HA机制:HDFS 的HA和YARN的HA. 3)Hadoop2.0之前,在HDFS集群中NameNode存在单点故障(SPOF). 4)NameNode主要在以下两个方面影响HDFS集群: ? NameNode机器发生意外,如宕机,集群将无法使用,直到管理员重启 ? NameNode机器需要升级

Heartbeat学习笔记--HA高可用集群实现

一.部署环境: 服务器版本:CentOS6.5 双主热备模式: VIP:192.168.3.30(MASTER上) VIP:192.168.3.32(BACKUP上) 主机网络参数: 接口 MASTER BACKUP 说明 eth1 192.168.3.23 192.168.3.24 内网管理IP eth2 192.168.5.23 192.168.5.24 心跳线 eth3 192.168.2.23 192.168.2.24 外网(临时下载文件用) 网络拓扑: 二.需求分析: 通过Heartb

搭建HA高可用集群

搭建HA高可用集群 一.搭建集群的准备环境 有三台机器,两台上装ricci,另外一台装luci Luci管理机:172.25.47.6 Ricci节点:172.25.47.4   172.25.47.5 Yum仓库: Yum仓库中要指向其他的一些包 注意:yum仓库一般是从Server目录中下载包,但是也有一些其他的包在其他的目录下,因此此次yum 源的配置会和以往不一样 Yum源中配置的是这几个模块: 防火墙方面: 永久关闭防火墙 Selinux方面: 由于这些套件是redhat自带的,所以可

红帽436——HA高可用集群之概念

一.集群概念: 集群:提高性能,降低成本,提高可扩展性,增强可靠性,任务调度室集群中的核心技术. 集群作用:保证业务不断 集群三种网络:业务网络,集群网络,存储网络 二.集群三种类型: HA:高可用集群     -->正在学习的集群 LP:负载均衡集群 HPC:分布式集群 三.HA模型架构图:(图一.图二) (图一) (图二)