Hadoop2.7.5 HA集群搭建

1、安装CentOS 7.3操作系统mini版本即可

2、设置关闭Selinux

*编辑  /etc/selinux/config

vi /etc/selinux/config

SELINUX=disabled

*重启机器,查看selinux状态

sestatus

# SELinux status:                 disabled

3、关闭Firewalld

systemctl stop firewalld

systemctl disable firewalld

firewall-cmd --state

4、关闭NetworkManager服务

#停止服务

service NetworkManager stop

#禁用服务,下次不自动启动

chkconfig NetworkManager off

*安装epel源

yum install –y epel-release

*查看repo情况

yum repolist

5、更新Hostname,设置hostname cluster201,让机器可以通过hostname进行互相访问,统一 /etc/hosts文件

hostnamectl --static --transient  set-hostname Master1

vi /etc/hosts

127.0.0.1   localhost localhost.localdomain localhost4
localhost4.localdomain4

::1         localhost localhost.localdomain
localhost6 localhost6.localdomain6

10.0.0.14 Master01

10.0.0.13 Master02

10.0.0.3 Master03

10.0.0.12 SparkNode01

10.0.0.7 SparkNode02

10.0.0.10 SparkNode03

6、安装JDK

mkdir -p /usr/local/java

cp
/opt/jdk-linux-x64.tar.gz /usr/local/java/

cd /usr/local/java

tar -zxvf
jdk-8u121-linux-x64.tar.gz

vi /etc/profile

添加:

JAVA_HOME=/usr/local/java/jdk1.8.0_121

CLASSPATH=$JAVA_HOME/lib/

PATH=$PATH:$JAVA_HOME/bin

export PATH JAVA_HOME
CLASSPATH

source /etc/profile

java –version

7. 设置ssh免密登录

1、所有节点都删除.ssh 里所有文件重新做:

mkdir ~/.ssh/

cd ~/.ssh/

2、所有节点都生成公密匙

ssh-keygen -t rsa

chmod 700 ~/.ssh

chmod 600 ~/.ssh/id_rsa

3、所有节点都复制授权key文件

cat id_rsa.pub >>
authorized_keys

利用vi编辑authorized_keys文件,相互复制获取彼此公匙

vi ~/.ssh/authorized_keys

chmod 700 ~/.ssh

chmod 600
~/.ssh/authorized_keys

8. 安装Zookeeper

cd /opt

wget http://mirrors.tuna.tsinghua.edu.cn/apache/zookeeper/zookeeper-3.4.10/zookeeper-3.4.10.tar.gz

tar -zvxf zookeeper-3.4.10.tar.gz

mv zookeeper-3.4.10
zookeeper

vi /etc/profile

添加:

#zookeeper

export
ZOOKEEPER_HOME=/opt/zookeeper

export
PATH=$PATH:$ZOOKEEPER_HOME/bin

source /etc/profile

cd /opt/zookeeper

mkdir data

mkdir log

cd conf

cp zoo_sample.cfg zoo.cfg

vi zoo.cfg

修改

#配置数据存放目录

dataDir=/opt/zookeeper/data

#配置日志存放目录

dataLogDir=/opt/zookeeper/log

末尾添加

#配置集群地址

server.1= Master01:2888:3888

server.2= Master02:2888:3888

server.3= Master03:2888:3888

cd ..

Master01节点执行

echo 1 > data/myid

Master02节点执行

echo 2 > data/myid

Master03节点执行

echo 3 > data/myid

zkServer.sh start

zkServer.sh status

9.安装hadoop2.7集群

cd opt

wget http://124.202.164.15/files/311200000B258CDE/mirror.bit.edu.cn/apache/hadoop/common/hadoop-2.7.5/hadoop-2.7.5.tar.gz

tar xzvf hadoop-2.7.5.tar.gz

mv hadoop-2.7.5 hadoop

cd hadoop/etc/hadoop/

vi hadoop-env.sh

修改:

export
JAVA_HOME=/usr/local/java/jdk1.8.0_121

export
HADOOP_CONF_DIR=/opt/hadoop/etc/hadoop

vi core-site.xml

<configuration>

<property>

<name>fs.defaultFS</name>

<value>hdfs://ns</value>

</property>

<property>

<name>hadoop.tmp.dir</name>

<value>/opt/hadoop/tmp</value>

</property>

<property>

<name>ha.zookeeper.quorum</name>

<value>Master01:2181,Master02:2181,Master03:2181</value>

</property>

</configuration>

vi hdfs-site.xml

<configuration>

<!--执行hdfs的nameservice为ns,和core-site.xml保持一致-->

<property>

<name>dfs.nameservices</name>

<value>ns</value>

</property>

<!--ns下有两个namenode,分别是nn1,nn2-->

<property>

<name>dfs.ha.namenodes.ns</name>

<value>nn1,nn2</value>

</property>

<!--nn1的RPC通信地址-->

<property>

<name>dfs.namenode.rpc-address.ns.nn1</name>

<value>Master01:9000</value>

</property>

<!--nn1的http通信地址-->

<property>

<name>dfs.namenode.http-address.ns.nn1</name>

<value>Master01:50070</value>

</property>

<!--nn2的RPC通信地址-->

<property>

<name>dfs.namenode.rpc-address.ns.nn2</name>

<value>Master02:9000</value>

</property>

<!--nn2的http通信地址-->

<property>

<name>dfs.namenode.http-address.ns.nn2</name>

<value>Master02:50070</value>

</property>

<!--指定namenode的元数据在JournalNode上的存放位置,这样,namenode2可以 从jn集群里获取最新的namenode的信息,达到热备的效果-->

<property>

<name>dfs.namenode.shared.edits.dir</name>

<value>qjournal://SparkNode01:8485;SparkNode02:8485;SparkNode03:8485/ns</value>

</property>

<!--指定JournalNode存放数据的位置-->

<property>

<name>dfs.journalnode.edits.dir</name>

<value>/opt/hadoop/journal</value>

</property>

<!--开启 namenode 故障时自动切换-->

<property>

<name>dfs.ha.automatic-failover.enabled</name>

<value>true</value>

</property>

<!--配置切换的实现方式-->

<property>

<name>dfs.client.failover.proxy.provider.ns</name>

<value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider</value>

</property>

<!--配置隔离机制-->

<property>

<name>dfs.ha.fencing.methods</name>

<value>sshfence</value>

</property>

<!--配置隔离机制的ssh登录秘钥所在的位置-->

<property>

<name>dfs.ha.fencing.ssh.private-key-files</name>

<value>/root/.ssh/id_rsa</value>

</property>

<!--配置namenode数据存放的位置,可以不配置,如果不配置,默认用的是core-site.xml里配置的hadoop.tmp.dir的路径-->

<property>

<name>dfs.namenode.name.dir</name>

<value>file:///opt/hadoop/tmp/namenode</value>

</property>

<!--执行hdfs的nameservice为ns,和core-site.xml保持一致-->

<property>

<name>dfs.nameservices</name>

<value>ns</value>

</property>

<!--ns下有两个namenode,分别是nn1,nn2-->

<property>

<name>dfs.ha.namenodes.ns</name>

<value>nn1,nn2</value>

</property>

<!--nn1的RPC通信地址-->

<property>

<name>dfs.namenode.rpc-address.ns.nn1</name>

<value>Master01:9000</value>

</property>

<!--nn1的http通信地址-->

<property>

<name>dfs.namenode.http-address.ns.nn1</name>

<value>Master01:50070</value>

</property>

<!--nn2的RPC通信地址-->

<property>

<name>dfs.namenode.rpc-address.ns.nn2</name>

<value>Master02:9000</value>

</property>

<!--nn2的http通信地址-->

<property>

<name>dfs.namenode.http-address.ns.nn2</name>

<value>Master02:50070</value>

</property>

<!--指定namenode的元数据在JournalNode上的存放位置,这样,namenode2可以 从jn集群里获取最新的namenode的信息,达到热备的效果-->

<property>

<name>dfs.namenode.shared.edits.dir</name>

<value>qjournal://SparkNode01:8485;SparkNode02:8485;SparkNode03:8485/ns</value>

</property>

<!--指定JournalNode存放数据的位置-->

<property>

<name>dfs.journalnode.edits.dir</name>

<value>/opt/hadoop/journal</value>

</property>

<!--开启 namenode 故障时自动切换-->

<property>

<name>dfs.ha.automatic-failover.enabled</name>

<value>true</value>

</property>

<!--配置切换的实现方式-->

<property>

<name>dfs.client.failover.proxy.provider.ns</name>

<value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider</value>

</property>

<!--配置隔离机制-->

<property>

<name>dfs.ha.fencing.methods</name>

<value>sshfence</value>

</property>

<!--配置隔离机制的ssh登录秘钥所在的位置-->

<property>

<name>dfs.ha.fencing.ssh.private-key-files</name>

<value>/root/.ssh/id_rsa</value>

</property>

<!--配置namenode数据存放的位置,可以不配置,如果不配置,默认用的是core-site.xml里配置的hadoop.tmp.dir的路径-->

<property>

<name>dfs.namenode.name.dir</name>

<value>file:///opt/hadoop/tmp/namenode</value>

</property>

</configuration>

cp
mapred-site.xml.template mapred-site.xml

vi mapred-site.xml

<property>

<name>mapreduce.framework.name</name>

<value>yarn</value>

</property>

vi yarn-site.xml

<configuration>

<!-- Site specific
YARN configuration properties -->

<!--开启YARN HA
-->

<property>

<name>yarn.resourcemanager.ha.enabled</name>

<value>true</value>

</property>

<!--指定两个
resourcemanager 的名称-->

<property>

<name>yarn.resourcemanager.ha.rm-ids</name>

<value>rm1,rm2</value>

</property>

<!--配置rm1,rm2的主机-->

<property>

<name>yarn.resourcemanager.hostname.rm1</name>

<value>Master01</value>

</property>

<property>

<name>yarn.resourcemanager.hostname.rm2</name>

<value>Master03</value>

</property>

<!--开启yarn恢复机制-->

<property>

<name>yarn.resourcemanager.recovery.enabled</name>

<value>true</value>

</property>

<!--配置zookeeper的地址-->

<property>

<name>yarn.resourcemanager.zk-address</name>

<value>Master01:2181,Master02:2181,Master03:2181</value>

<description>For multiple
zk services, separate them with comma</description>

</property>

<!--指定YARN HA的名称-->

<property>

<name>yarn.resourcemanager.cluster-id</name>

<value>yarn-ha</value>

</property>

<!--指定yarn的老大resoucemanager的地址-->

<property>

<name>yarn.resourcemanager.hostname</name>

<value>Master01</value>

</property>

<property>

<!--NodeManager 获取数据的方式-->

<name>yarn.nodemanager.aux-services</name>

<value>mapreduce_shuffle</value>

</property>

<property>

<name>yarn.nodemanager.aux-services.mapreduce.shuffle.class</name>

<value>org.apache.hadoop.mapred.ShuffleHandler</value>

</property>

<property>

<name>yarn.nodemanager.pmem-check-enabled</name>

<value>false</value>

</property>

<property>

<name>yarn.nodemanager.vmem-check-enabled</name>

<value>false</value>

</property>

</configuration>

vi slaves

SparkNode01

SparkNode02

SparkNode03

配置 hadoop 的环境变量(可不配)

JAVA_HOME=/home/software/jdk1.8

HADOOP_HOME=/home/software/hadoop-2.7.4

CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

PATH=$JAVA_HOME/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH

export JAVA_HOME PATH CLASSPATH HADOOP_HOME

根据配置文件,创建相关的文件夹,用来存放对应数据

mkdir -p
/opt/hadoop/journal

mkdir -p
/opt/hadoop/tmp

mkdir -p
/opt/hadoop/tmp/namenode

mkdir -p
/opt/hadoop/tmp/datanode

通过scp 命令,将hadoop安装目录远程copy到其他5台机器上

比如向Master02节点传输:

scp -r hadoop Master02:/opt/

启动zookeeper集群

在Zookeeper安装目录的bin目录下执行:

sh zkServer.sh start

利用sh
zkServer.sh status检查状态

格式化zookeeper

在zk的leader节点上执行:

cd /opt/hadoop/bin

./hdfs
zkfc -formatZK

,这个指令的作用是在zookeeper集群上生成ha节点 (ns节点)

 

进入hadoop安装目录的sbin目录,执行:

cd /opt/hadoop/sbin

./start-dfs.sh

cd /opt/hadoop/bin

hadoop namenode
 -format

在 01 节点上执行:

hadoop-daemon.sh start
namenode

把02节点的namenode节点变为standby
namenode节点

在02节点上执行:

hdfs
namenode -bootstrapStandby

启动 02 节点的 namenode 节点

在02节点上执行:

hadoop-daemon.sh start
namenode

在01节点上启动主Resourcemanager

在01节点上执行:

start-yarn.sh

启动成功后,04,05,06节点上应该有nodemanager 的进程

在 03 节点上启动副 Resoucemanager

在03节点上执行:

yarn-daemon.sh start
resourcemanager

测试

输入地址: http://ip:50070 ,查看 namenode 的信息,是active状态 的

然后停掉01节点的namenode,此时返现standby的namenode变为active。

28、 查看 yarn 的管理地址

http://192.168.234.21:8088(节点01的8088端口)

原文地址:https://www.cnblogs.com/weidafei/p/8461752.html

时间: 2024-11-09 20:14:06

Hadoop2.7.5 HA集群搭建的相关文章

Hadoop-2.8.5的HA集群搭建

一.Hadoop HA 机制的学习 1.1.Hadoop 2.X 的架构图 2.x版本中,HDFS架构解决了单点故障问题,即引入双NameNode架构,同时借助共享存储系统来进行元数据的同步,共享存储系统类型一般有几类,如:Shared NAS+NFS.BookKeeper.BackupNode 和 Quorum Journal Manager(QJM),上图中用的是QJM作为共享存储组件,通过搭建奇数结点的JournalNode实现主备NameNode元数据操作信息同步. 1.2.QJM原理

hadoop 的HA集群搭建

1.关闭防火墙 1.1 查看防火墙状态 service iptables status 1.2 关闭防火墙 service iptables off 1.3 关闭防火墙开机启动 chkconfig iptables off 2.关闭selinux vi /etc/selinux/config 将 SELINUX=enforcing 改为 SELINUX=disabled 3.ssh免密登陆 ssh-keygen -t rsa ssh-copy-id hostname 4.解压安装hadoop j

Hadoop2.6.5分布式集群搭建和测试

vmware虚拟机环境:                 192.168.60.128    master                 192.168.60.129    node129                 192.168.60.130    node130 1.修改每台虚拟机的/etc/sysconfig/network和/etc/hosts #修改hostname:vim /etc/sysconfig/network #修改hosts内容如下:vim /etc/hosts  

hadoop2.8 ha 集群搭建

简介: 最近在看hadoop的一些知识,下面搭建一个ha (高可用)的hadoop完整分布式集群: 搭建步骤: 1>  关闭防火墙,禁止设置开机启动: (1) //临时关闭 systemctl stop firewalld (2) //禁止开机启动 systemctl disable firewalld   注意:centos7防火墙默认是:firewalld centos6 的命令是: //临时关闭 service iptables stop //禁止开机启动 chkconfig iptabl

基于Hadoop2.5.0的集群搭建

http://download.csdn.net/download/yameing/8011891 一. 规划 1.  准备安装包 JDK:http://download.oracle.com/otn-pub/java/jdk/7u67-b01/jdk-7u67-linux-x64.tar.gz Hadoop:http://mirrors.cnnic.cn/apache/hadoop/common/hadoop-2.5.0/hadoop-2.5.0.tar.gz Hive:http://apac

大数据-spark HA集群搭建

一.安装scala 我们安装的是scala-2.11.8 5台机器全部安装 下载需要的安装包并进行解压 配置环境变量 [root@master1 ~]# vi /etc/profile export SCALA_HOME=/opt/software/scala-2.11.8 export PATH=$SCALA_HOME/bin:$PATH [root@master1 ~]# source /etc/profile 启动scala [root@master1 workspace]# vim /e

Hadoop集群搭建配置文件汇总

核心内容: 1.Hadoop1.1.2伪分布(或集群)搭建核心配置文件 2.Hadoop2.4.1伪分布(或集群无HA)搭建核心配置文件 3.Hadoop2.4.1 + HA 集群搭建核心配置文件 1.Hadoop1.1.2伪分布(或集群)搭建核心配置文件 hadoop1.1.2伪分布(集群)搭建 前期准备(略) 安装hadoop1.1.2 1.解压缩 2.修改配置文件 ----------------------core-site.xml--------------------- <prope

Hadoop HA集群的搭建

HA 集群搭建的难度主要在于配置文件的编写, 心细,心细,心细! ha模式下,secondary namenode节点不存在... 集群部署节点角色的规划(7节点)------------------server01 namenode zkfcserver02 namenode zkfcserver03 resourcemanagerserver04 resourcemanagerserver05 datanode nodemanager zookeeper journal nodeserver

Hadoop HA高可用集群搭建(2.7.2)

1.集群规划: 主机名        IP                安装的软件                            运行的进程 drguo1  192.168.80.149 jdk.hadoop                         NameNode.DFSZKFailoverController(zkfc).ResourceManager drguo2 192.168.80.150  jdk.hadoop                         Nam