总体步骤

1、分配机器,各安装什么软件

2、每个节点设置时间一致,设置开机自动校验时间。

3、每个节点修改主机名。

4、每个节点配置hosts。

5、每个节点关闭防火墙。

6、上传JDK,配置JDK

7、创建hadoop用户。

8、给hadoop用户配置root组

-------以下hadoop用户的操作---------

9、开启ssh免密登录。

10、上传Zookeeper到HA8,解压

11、环境变量配置zookeeper

12、配置zoo.cfg文件。

13、创建zoo.cfg中配置的文件夹

14、配置myid文件

15、删除zookeeper安装目录下无用的帮助文档。

16、scp zookeeper的安装目录到8,9,10节点。

17、修改其他节点上的 myid文件

18、scp 环境变量到其他节点。

19、source 各个节点的环境变量。

20、启动。

21、查看状态。

22、停止Zookeeper

23、上传hadoop 压缩包,解压

24、配置hadoop 环境变量

25、配置hadoop-HA参数

26、scp环境变量到1~7节点

27、source 环境变量1~7节点

28、scp hadoop.xxx文件夹到1~7节点

29、启动

*将整个过程编程shell或Python命令

1、分配机器

10台centos

机器名

安装的软件

进程

HA1

JDK,hadoop

namenode,zkfc

HA2

JDK,hadoop

namenode,zkfc

HA3

JDK,hadoop

resourcemanager

HA4

JDK,hadoop

resourcemanager

HA5

JDK,hadoop

datenode,nodemanager

HA6

JDK,hadoop

datenode,nodemanager

HA7

JDK,hadoop

datenode,nodemanager

HA8

JDK,zookeeper,hadoop

JournalNode、QuorumPeerMain,zkfc状态值,yarn的ha状态值

HA9

JDK,zookeeper,hadoop

JournalNode、QuorumPeerMain,zkfc状态值,yarn的ha状态值

HA10

JDK,zookeeper,hadoop

JournalNode、QuorumPeerMain,zkfc状态值,yarn的ha状态值

2、每个节点设置时间一致,设置开机自动校验时间。

chkconfig --list

chkconfig --level 12345 ntpdate on

service ntpdate start

3、每个节点修改主机名。

vi /etc/sysconfig/network

hostname HA123456...10

4、每个节点配置hosts。

vi /etc/hosts

192.168.18.136 HA1

192.168.18.137 HA2

192.168.18.138 HA3

192.168.18.139 HA4

192.168.18.140 HA5

192.168.18.141 HA6

192.168.18.142 HA7

192.168.18.143 HA8

192.168.18.144 HA9

192.168.18.145 HA10

//要编写一个shell脚本,如果集群里有几十台怎么办?

5、每个节点关闭防火墙。

chkconfig iptables off

service iptables stop

6、新建application文件夹,上传JDK,配置JDK

每台机器都需要

1、HA1上传JDK压缩包到根目录

2、解压到根目录

tar -xzvf jdk-8u73-linux-x64.tar.gz

vi /etc/profile

export JAVA_HOME=/jdk1.8.0_73

export PATH=$PATH:$JAVA_HOME/bin

删除一些无用的文件

拷贝到其他机器,在向所有窗口发送中输入:

scp -r HA1:/jdk1.8.0_73/ $HOSTNAME:/

拷贝 /etc/profile 到其他机器

scp HA1:/etc/profile $HOSTNAME:/etc/profile

source /etc/profile

7、 创建hadoop账号

adduser hadoop

passwd hadoop

123456

8、给hadoop用户配置root组

vi /etc/sudoers

## Allow root to run any commands anywhere

root ALL=(ALL) ALL

在这里添加

hadoop ALL=(ALL) ALL

------------以下hadoop用户的操作-----------------

9、开启ssh免密登录。

ssh-keygen -t rsa

touch authorized_keys

修改authorized_keys文件权 限为 600,命令:chmod 600 authorized_keys

如果不修改权限,通不过linux的权限认证,ssh会无效的

这个ssh免密登录是针对hadoop用户。root用户没有配置,不能免密登录对方。ssh免密是用户有效

10、上传Zookeeper到HA8,解压

上传到home文件夹下

解压到home文件夹下

tar -xzvf zookeeper-3.3.6.tar.gz

11、环境变量配置zookeeper

sudo vi /etc/profile

export ZOOKEEPER_HOME=/home/hadoop/zookeeper-3.3.6

export PATH=$PATH:$JAVA_HOME/bin:$ZOOKEEPER_HOME/bin

12、配置zoo.cfg文件。

cd conf/

cp zoo_sample.cfg zoo.cfg

vi zoo.cfg

dataDir=/home/hadoop/zookeeper-3.3.6/data

dataLogDir=/application/zookeeper-3.3.6/log

server.1=HA8:2888:3888

server.2=HA9:2888:3888

server.3=HA10:2888:3888

13、创建zoo.cfg中配置的文件夹

[hadoop@HA8 zookeeper-3.3.6]$ mkdir data

[hadoop@HA8 zookeeper-3.3.6]$ mkdir log

14、配置myid文件

cd data

vi myid

1

不能带有空格或空行

15、删除zookeeper安装目录下无用的帮助文档。

rm -rf docs dist-maven/

rm -rf src.zip *.txt javafx-src.zip *.html

rm -rf *.xml *.txt src zookeeper-3.3.6.jar.*

16、scp zookeeper的安装目录到8,9,10节点。

[hadoop@HA8 ~]$ scp -r zookeeper-3.3.6 HA9:/home/hadoop

[hadoop@HA8 ~]$ scp -r zookeeper-3.3.6 HA10:/home/hadoop

17、修改其他节点上的 myid文件

cd data

vi myid

2  另一台 3

不能带有空格或空行

18、scp 环境变量到其他节点。

sudo scp /etc/profile HA9:/etc/profile

sudo scp /etc/profile HA10:/etc/profile

19、source 各个节点的环境变量。

source /etc/profile

20、启动。

8,9,10三台机器都要运行

zkServer.sh start

21、查看状态。

8,9,10三台都要运行

jsp

zkServer.sh status

22、停止Zookeeper

Zookeeper安装启动成功后,先stop。

8,9,10三台都要运行

zkServer.sh stop

23、上传hadoop 压缩包,解压

[hadoop@HA1 hadoop-2.7.3]$ tar -xzvf hadoop-2.7.3.tar.gz

24、配置hadoop 环境变量

sodu vi /etc/profile

export HADOOP_HOME=/home/hadoop/hadoop-2.7.3

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

除了配置HA1,还要配置 HA8,9,10

25、配置hadoop-HA参数

25.1修改hadoop-env.sh

vi hadoop-env.sh

#export JAVA_HOME=${JAVA_HOME}

export JAVA_HOME=/jdk1.8.0_73

25.2修改core-site.xml

<configuration>

<!-- 指定hdfs的nameservice为nbdo -->

<property>

<name>fs.defaultFS</name>

<value>hdfs://nbdo/</value>

</property>

<!-- 指定hadoop临时目录 -->

<property>

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

<value>/home/hadoop/app/hdpdata/</value>

</property>

<!-- 指定zookeeper地址 -->

<property>

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

<value>HA8:2181,HA9:2181,HA10:2181</value>

</property>

</configuration>

25.3修改hdfs-site.xml

<configuration>

<!--指定hdfs的nameservice为nbdo,需要和core-site.xml中的保持一致 -->

<property>

<name>dfs.nameservices</name>

<value>nbdo</value>

</property>

<!-- nbdo下面有两个NameNode,分别是nn1,nn2 -->

<property>

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

<value>nn1,nn2</value>

</property>

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

<property>

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

<value>HA1:9000</value>

</property>

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

<property>

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

<value>HA1:50070</value>

</property>

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

<property>

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

<value>HA2:9000</value>

</property>

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

<property>

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

<value>HA2:50070</value>

</property>

<!-- 指定NameNode的edits元数据在JournalNode上的存放位置 -->

<property>

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

<value>qjournal://HA8:8485;HA9:8485;HA10:8485/nbdo</value>

</property>

<!-- 指定JournalNode在本地磁盘存放数据的位置 -->

<property>

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

<value>/home/hadoop/journaldata</value>

</property>

<!-- 开启NameNode失败自动切换 -->

<property>

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

<value>true</value>

</property>

<!-- 配置失败自动切换实现方式 -->

<property>

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

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

</property>

<!-- 配置隔离机制方法,多个机制用换行分割,即每个机制暂用一行,防止脑裂问题-->

<property>

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

<value>

sshfence

shell(/bin/true)

</value>

</property>

<!-- 使用sshfence隔离机制时需要ssh免登陆 -->

<property>

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

<value>/home/hadoop/.ssh/id_rsa</value>

</property>

<!-- 配置sshfence隔离机制超时时间 -->

<property>

<name>dfs.ha.fencing.ssh.connect-timeout</name>

<value>30000</value>

</property>

</configuration>

25.4修改mapred-site.xml

[hadoop@HA1 hadoop]$ cp mapred-site.xml.template mapred-site.xml

[hadoop@HA1 hadoop]$ vi mapred-site.xml

<configuration>

<!-- 指定mr框架为yarn方式 -->

<property>

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

<value>yarn</value>

</property>

</configuration>

25.5修改yarn-site.xml

<configuration>

<!-- 开启RM高可用 -->

<property>

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

<value>true</value>

</property>

<!-- 指定RM的cluster id -->

<property>

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

<value>yrc</value>

</property>

<!-- 指定RM的名字 -->

<property>

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

<value>rm1,rm2</value>

</property>

<!-- 分别指定RM的地址 -->

<property>

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

<value>HA3</value>

</property>

<property>

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

<value>HA4</value>

</property>

<!-- 指定zk集群地址 -->

<property>

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

<value>HA8:2181,HA9:2181,HA10:2181</value>

</property>

<property>

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

<value>mapreduce_shuffle</value>

</property>

</configuration>

25.5修改slaves

(slaves是指定子节点的位置,因为要在HA1和HA2上启动HDFS、在HA3和HA4启动yarn,所以HA1和HA2上的slaves文件指定的是datanode的位置,HA3和HA4上的slaves文件指定的是nodemanager的位置)

HA5

HA6

HA7

26、scp环境变量到1~7节点

sudo scp HA1:/etc/profile $HOSTNAME:/etc/profile

27、source 环境变量1~7节点

source /etc/profile

28、scp hadoop.xxx文件夹其他9台机器

删除share文件下的doc文件夹

rm -rf doc

scp -r HA1:/home/hadoop/hadoop-2.7.3 $HOSTNAME:/home/hadoop/

29、启动

顺序严格按照

29.1启动Zookeeper

HA8,9,10

zkServer.sh start

29.2启动journalnode

HA8,9,10

hadoop-daemon.sh start journalnode

29.3格式化HDFS

#在HA1上执行命令:

hdfs namenode -format

#格式化后会在根据core-site.xml中的hadoop.tmp.dir配置生成个文件,这里我配置的是/home/hadoop/app/hdpdata/,然后将/home/hadoop/app/hdpdata/拷贝到HA2的/home/hadoop/app/hdpdata/。

scp -r

##也可以这样,建议HA2上运行:hdfs namenode -bootstrapStandby

29.4格式化ZKFC(在HA1上执行一次即可)

hdfs zkfc -formatZK

29.5启动HDFS(在HA1上执行)

sbin/start-dfs.sh

29.6启动YARN

(#####注意#####:是在HA3上执行start-yarn.sh,把namenode和resourcemanager分开是因为性能问题,因为他们都要占用大量资源,所以把他们分开了,他们分开了就要分别在不同的机器上启动)

HA3上:sbin/start-yarn.sh

HA4上:yarn-daemon.sh start resourcemanager

yarn-ha,还需要手动启动(HA4上:yarn-daemon.sh start resourcemanager)第二个resourcemanager,

因为start-yarn.sh不具备启动第二个resourcemanager的功能

[hadoop@HA1 .ssh]$ jps

2949 DFSZKFailoverController

3064 Jps

2622 NameNode

[hadoop@HA1 .ssh]$

[hadoop@HA2 .ssh]$ jps

2040 NameNode

2154 DFSZKFailoverController

2287 Jps

[hadoop@HA3 ~]$ jps

2593 ResourceManager

2859 Jps

[hadoop@HA4 ~]$ jps

2320 ResourceManager

2376 Jps

[hadoop@HA4 ~]$

[hadoop@HA5 ~]$ jps

2331 Jps

2220 NodeManager

2015 DataNode

[hadoop@HA5 ~]$

[hadoop@HA6 ~]$ jps

2317 Jps

2206 NodeManager

2015 DataNode

[hadoop@HA6 ~]$

[hadoop@HA7 ~]$ jps

2419 NodeManager

2551 Jps

2008 DataNode

[hadoop@HA7 ~]$

[hadoop@HA8 ~]$ jps

2187 Jps

1979 QuorumPeerMain

2031 JournalNode

[hadoop@HA8 ~]$

[hadoop@HA9 ~]$ jps

2001 JournalNode

2157 Jps

1951 QuorumPeerMain

[hadoop@HA9 ~]$

[hadoop@HA10 ~]$ jps

2178 Jps

2019 JournalNode

1961 QuorumPeerMain

[hadoop@HA10 ~]$

http://192.168.18.136:50070/(HDFS管理界面)

http://192.168.18.138:8088/ (MR管理界面)

自己从零安装hadoop-HA集群相关推荐

  1. 虚拟机CentOS 7.5.1804下无外网Hadoop HA集群安装

    网上有很多Hadoop HA集群安装的资料,我当时安装也是参考了官方文档和这些资料才安装成功的.由于使用的环境和软件版本可能有所不同,且因工作环境网络所限无法连接外网,加之记录一下自己的安装过程,不枉 ...

  2. (超详细)基于Zookeeper的Hadoop HA集群的搭建

    基于Zookeeper的Hadoop HA集群的搭建 JunLeon--go big or go home 前言: 高可用(high availability,HA)指的是若当前工作中的机器宕机了,系 ...

  3. (五)Hadoop HA高可用集群的配置-Hadoop HA集群模式的安装

    目录 一.目的及要求: 实验目的: 实验要求: 二.环境要求: 集群规划: 三.具体步骤: 项目一:Hadoop的基本安装配置 项目二:Hadoop高可用完全分布模式配置 项目三:同步安装和配置 项目 ...

  4. 基于ZooKeeper的Hadoop HA集群搭建

    集群的规划 Zookeeper集群: 192.168.142.12 (bigdata12) 192.168.142.13 (bigdata13) 192.168.142.14 (bigdata14) ...

  5. Hadoop HA集群的搭建

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

  6. Hadoop Ha集群配置

    为什么要配置HDFS HA?   首先:HDFS集群中NameNode 如果存在单点故障.对于只有一个NameNode的集群,如果NameNode机器出现意外情况,将导致整个集群无法使用. 而影响HD ...

  7. Hadoop HA集群配置问题记录

    打算用3个节点搭建一个HA 集群,规划如下 HA集群规划   NameNode DataNode JournalNode node1 是 是 是 ndoe2 是 是 是 node3   是 是 hdf ...

  8. Hadoop集群搭建(五:Hadoop HA集群模式的安装)

    实验 目的 要求 目的: 1.Hadoop的高可用完全分布模式的安装和验证 要求: 完成Hadoop的高可用完全分布模式的安装: Hadoop的相关服务进程能够正常的启动: HDFS能够正常的使用: ...

  9. 基于Hadoop HA集群部署HBase HA集群(详细版)

    文章目录 1.前言 2.ZooKeeper与Hadoop.HBase的关系 3.Hadoop与HBase的关系 4.架构资源规划 5.ZooKeeper集群设置 5.1 设置nn节点的zoo.conf ...

  10. Hadoop HA集群部署 - A - 详解

    理论简介:  HA 概念以及作用     HA(High Available), 高可用性群集,是保证业务连续性的有效解决方案,一般有两个或两个以上的节点,且分为活动节点及备用节点.通常把正在执行业务 ...

最新文章

  1. JavaWeb的web.xml中context-param、listener、filter、servlet加载顺序(重点)
  2. vb获取textbox数字_Spectrum仪器PCIe数字化仪可额外扩展8个数字输入
  3. java熄灯问题_枚举 - bailian 2811:熄灯问题
  4. 35 点击全图后发现地图“不见了”
  5. matlab的灰色关联,灰色关联度Matlab代码
  6. mysql order by按照汉字拼音进行排序
  7. MySQL:定时任务被拒绝
  8. Qt那些事0.0.2
  9. azure模型训练_如何在Azure Machine Learning Studio上开发K-Means模型
  10. 护考人机对话用计算机吗,2018护士执业资格考试人机对话怎么考 有什么注意事项...
  11. DNS和活动目录的关系
  12. Atitti 固化数据库表结构方案
  13. IOS 关于扬声器和听话筒的设置 ----自己试验过的,可以达到扩音器和听筒播放的效果...
  14. 计算机计费管理系统,中央空调时间型计费管理系统-中央空调计费系统
  15. mysql var和varp的区别_var方差(var和方差的区别)
  16. 296 最佳的碰头地点
  17. 怀旧小虎队 谨防挂马网站和极虎病毒
  18. CrateDB三机三节点部署(Docker Overlay网络)
  19. 中国微单相机市场深度研究分析报告
  20. SCIENCE CHINA LATEX模板缺少的一个重要文件psfig.sty,File `picins.sty’ not found.

热门文章

  1. 高并发编程_高并发编程系列:全面剖析Java并发编程之AQS的核心实现
  2. 12c集群日志位置_Kubernetes(k8s)那些套路之日志收集
  3. 32汇编语言程序说明_Linux 汇编语言学习--编译和链接
  4. amp 符号 php,php中引用符号(amp;)的使用详解_PHP教程
  5. Maven 系列 2:Maven 本地仓库与远程仓库配置完整步骤以及修改 settings.xml 后的完整内容(配置非私服,远程仓储镜像强力推荐阿里云)
  6. codeforces George and Job
  7. poj 2226 Muddy Fields(合理建图+二分匹配)
  8. mac mysql prefpane_【MySQL数据库开发之一】Mac下配置安装数据库-MySQL
  9. drbd(三):drbd的状态说明
  10. 添加自定义监控项目,配置邮件告警,测试告警,不发邮件的问题处理