自己从零安装hadoop-HA集群
总体步骤
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集群相关推荐
- 虚拟机CentOS 7.5.1804下无外网Hadoop HA集群安装
网上有很多Hadoop HA集群安装的资料,我当时安装也是参考了官方文档和这些资料才安装成功的.由于使用的环境和软件版本可能有所不同,且因工作环境网络所限无法连接外网,加之记录一下自己的安装过程,不枉 ...
- (超详细)基于Zookeeper的Hadoop HA集群的搭建
基于Zookeeper的Hadoop HA集群的搭建 JunLeon--go big or go home 前言: 高可用(high availability,HA)指的是若当前工作中的机器宕机了,系 ...
- (五)Hadoop HA高可用集群的配置-Hadoop HA集群模式的安装
目录 一.目的及要求: 实验目的: 实验要求: 二.环境要求: 集群规划: 三.具体步骤: 项目一:Hadoop的基本安装配置 项目二:Hadoop高可用完全分布模式配置 项目三:同步安装和配置 项目 ...
- 基于ZooKeeper的Hadoop HA集群搭建
集群的规划 Zookeeper集群: 192.168.142.12 (bigdata12) 192.168.142.13 (bigdata13) 192.168.142.14 (bigdata14) ...
- Hadoop HA集群的搭建
HA 集群搭建的难度主要在于配置文件的编写, 心细,心细,心细! ha模式下,secondary namenode节点不存在... 集群部署节点角色的规划(7节点) ----------------- ...
- Hadoop Ha集群配置
为什么要配置HDFS HA? 首先:HDFS集群中NameNode 如果存在单点故障.对于只有一个NameNode的集群,如果NameNode机器出现意外情况,将导致整个集群无法使用. 而影响HD ...
- Hadoop HA集群配置问题记录
打算用3个节点搭建一个HA 集群,规划如下 HA集群规划 NameNode DataNode JournalNode node1 是 是 是 ndoe2 是 是 是 node3 是 是 hdf ...
- Hadoop集群搭建(五:Hadoop HA集群模式的安装)
实验 目的 要求 目的: 1.Hadoop的高可用完全分布模式的安装和验证 要求: 完成Hadoop的高可用完全分布模式的安装: Hadoop的相关服务进程能够正常的启动: HDFS能够正常的使用: ...
- 基于Hadoop HA集群部署HBase HA集群(详细版)
文章目录 1.前言 2.ZooKeeper与Hadoop.HBase的关系 3.Hadoop与HBase的关系 4.架构资源规划 5.ZooKeeper集群设置 5.1 设置nn节点的zoo.conf ...
- Hadoop HA集群部署 - A - 详解
理论简介: HA 概念以及作用 HA(High Available), 高可用性群集,是保证业务连续性的有效解决方案,一般有两个或两个以上的节点,且分为活动节点及备用节点.通常把正在执行业务 ...
最新文章
- JavaWeb的web.xml中context-param、listener、filter、servlet加载顺序(重点)
- vb获取textbox数字_Spectrum仪器PCIe数字化仪可额外扩展8个数字输入
- java熄灯问题_枚举 - bailian 2811:熄灯问题
- 35 点击全图后发现地图“不见了”
- matlab的灰色关联,灰色关联度Matlab代码
- mysql order by按照汉字拼音进行排序
- MySQL:定时任务被拒绝
- Qt那些事0.0.2
- azure模型训练_如何在Azure Machine Learning Studio上开发K-Means模型
- 护考人机对话用计算机吗,2018护士执业资格考试人机对话怎么考 有什么注意事项...
- DNS和活动目录的关系
- Atitti 固化数据库表结构方案
- IOS 关于扬声器和听话筒的设置 ----自己试验过的,可以达到扩音器和听筒播放的效果...
- 计算机计费管理系统,中央空调时间型计费管理系统-中央空调计费系统
- mysql var和varp的区别_var方差(var和方差的区别)
- 296 最佳的碰头地点
- 怀旧小虎队 谨防挂马网站和极虎病毒
- CrateDB三机三节点部署(Docker Overlay网络)
- 中国微单相机市场深度研究分析报告
- SCIENCE CHINA LATEX模板缺少的一个重要文件psfig.sty,File `picins.sty’ not found.
热门文章
- 高并发编程_高并发编程系列:全面剖析Java并发编程之AQS的核心实现
- 12c集群日志位置_Kubernetes(k8s)那些套路之日志收集
- 32汇编语言程序说明_Linux 汇编语言学习--编译和链接
- amp 符号 php,php中引用符号(amp;)的使用详解_PHP教程
- Maven 系列 2:Maven 本地仓库与远程仓库配置完整步骤以及修改 settings.xml 后的完整内容(配置非私服,远程仓储镜像强力推荐阿里云)
- codeforces George and Job
- poj 2226 Muddy Fields(合理建图+二分匹配)
- mac mysql prefpane_【MySQL数据库开发之一】Mac下配置安装数据库-MySQL
- drbd(三):drbd的状态说明
- 添加自定义监控项目,配置邮件告警,测试告警,不发邮件的问题处理