自己从零安装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管理界面)

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/537683.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

蓝牙基础知识进阶——Physical channel

蓝牙基础知识进阶——Physical channel二、物理通道物理通道是piconet区分的标准&#xff0c;它是蓝牙系统结构层次中的最底层了。Q1&#xff1a;物理通道有哪些类型物理通道通常可以分为四种类型&#xff1a;1、basicpiconet channel2、adaptedpiconet channel这两种channel是…

深度学习数据驱动_利用深度学习实现手绘数据可视化的生成

前一段时间&#xff0c;我开发了Sketchify&#xff0c; 该工具可以把任何以SVG为渲染技术的可视化转化为手绘风格。&#xff08;参考手绘风格的数据可视化实现 Sketchify&#xff09;那么问题来了&#xff0c;很多的chart是以Canvas为渲染技术的&#xff0c;那要怎么办&#xf…

远程计算机无法操作,win7系统的QQ远程协助无法控制计算机的问题的解决方法

在使用win7系统的计算机工作和学习过程中&#xff0c;可能会发生win7系统的QQ远程协助无法控制计算机的情况. 如何处理win7系统的QQ远程控制无法控制计算机的问题&#xff1f;对于计算机级别的用户&#xff0c;如果win7系统qq远程协助无法控制计算机&#xff0c;通常不知道该怎…

微软全新Chromium版Edge浏览器下载

下载地址&#xff1a; https://www.microsoft.com/en-us/edge

企业网站 源码 服务邮箱:_后来才知道:温州腾讯企业邮箱定制服务

后来才知道&#xff1a;温州腾讯企业邮箱定制服务 qnmsptdb后来才知道&#xff1a;温州腾讯企业邮箱定制服务 软文推广得到大家的转发之后&#xff0c;那么软文的经济价值也会随之而来。内容更新质量言外之意&#xff0c;如果你长期更新低质量内容&#xff0c;是不可取的&#…

圣三一学院计算机专业,360教育集团:爱尔兰都柏林大学圣三一学院计算机专业...

应用&#xff0c;新产品设计。网络和分布系统的安全和管理课程介绍计算机基层和网络安全&#xff0c;研究网络管理的方法和高端信息服务的管理。这六个部分内容的学习包括每周大概20小时的沟通时间&#xff0c;包括讲座、辅导、研讨会、试验等。绝大部分课程要求学生完成其他课…

in最多可以放多少?_汽车最多可以停放多少天不开?维修师傅:尽可能别超过这个时间...

在当下&#xff0c;买车似乎已经成为了一种消费潮流&#xff0c;其中不乏一些本身用车需求不明显但也随大流买车的人&#xff0c;结果车买回来之后最初的新鲜劲一过就放在那里不怎么用了。当然也有部分车主是因为自己的工作修需要经常需要在外出差&#xff0c;那么就算想天天开…

计算机电源风扇安装方法,机箱风扇怎么装 电脑机箱风扇电源线接法

夏天天气炎热&#xff0c;电脑机箱内温度也较高&#xff0c;温度过高会影响电脑性能出现死机等问题&#xff0c;甚至影响硬件寿命。所以给机箱装风扇来散热是非常重要的。那么&#xff0c;机箱风扇怎么装合理呢?机箱风扇的电源线怎么接呢?下面分享一下机箱风...夏天天气炎热&…

市场压力只有老板扛?柏明顿阿米巴如何传递经营压力

内部交易是阿米巴经营模式中的一个重要环节&#xff0c;通过内部交易&#xff0c;使企业内部上下道工序之间以价格为纽带&#xff0c;以服务和产品进行等价交换&#xff0c;统一结算交易。通过内部交易行为&#xff0c;可以掌握各个阿米巴单元的盈亏状态。阿米巴构建内部市场&a…

flutter怎么添加ios网络权限_视频号直播间怎么添加购物车商品;超详细流程步骤。丨国仁网络资讯...

蘑菇租房的联合创始人龙东平前几个月曾说&#xff1a;“视频号是一次掀翻桌子重新排座次的机会&#xff0c;是巨浪滔天&#xff0c;是新世界&#xff0c;新秩序。”视频号发展趋势愈加迅猛&#xff0c;越来越多的玩家涌入&#xff0c;正在获得新一波社交流量。为什么更加受欢迎…

网络中服务器是指为网络提供资源,并对这些资源进行管理的计算机,2016年职称计算机考试Internet冲刺试题及答案3...

1、Internet的通信协议是( A )A、TCP/IP B、OSI/ISOC、NetBEUI D、NWLink2、把计算机网络分为有线和无线网的主要分类依据是(C)A、网络成本 B、网络的物理位置C、网络的传输介质 D、网络的拓扑结构3、要将两台计算机直接相连&#xff0c;那么使用双绞线的类型为(A)A、交叉线 B、…

mos管开关电路_【电路】MOS管开关电路图详解(一)

MOS管的开关特性静态特性MOS管作为开关元件&#xff0c;同样是工作在截止或导通两种状态。由于MOS管是电压控制元件&#xff0c;所以主要由栅源电压uGS决定其工作状态。工作特性如下&#xff1a;※uGS※ uGS>开启电压UT:MOS管工作在导通区&#xff0c;漏源电流iDSUDD/(RDrDS…

Visio图形自动编号

操作步骤&#xff1a; 1.进入“视图”--“加载项” 2.“加载项”---“运行加载项” 3.“运行加载项”---“给形状编号”

Java面试170题答案解析(1-20题)

为什么80%的码农都做不了架构师&#xff1f;>>> 转载于:https://my.oschina.net/lanyu96/blog/2250020

Visio各图形如何一键自动对齐?

在创作的过程中&#xff0c;不用管图形是否对齐&#xff0c;间距是否一致&#xff0c;在最后的时候&#xff0c;一键对齐 具体操作&#xff1a; 开始---------位置------自动对齐与自动调整间距

黎明之路服务器正在维护,黎明之路进不去怎么办_黎明之路更新失败怎么办_玩游戏网...

《代号Z》什么时候上线根据最新的消息&#xff0c;《代号Z》这款游戏已经正式更名为《黎明之路》&#xff0c;那么名字也最终确定了&#xff0c;这款游戏到底什么时候上线呢&#xff1f;下面就跟着玩游戏网的小编一起了解一下吧~《代号Z》上线时间&#xff1a;游戏将会在4月26日…

php修改学生信息代码_值得收藏的CRM软件客户管理系统(包括JAVA/PHP)

悟空CRM是一款永久开源免费的CRM管理系统&#xff0c;悟空CRM-基于JAVA/TP5.0vueElementUI的前后端分离CRM系统 ,悟空CRM是基于JAVA/PHP多语言的B/S架构的管理软件&#xff0c;为企业提供行业专属的crm客户管理方案。 悟空CRM,CRM,免费CRM,开源HRMS,开源OA,移动办公,办公软件,手…

ajax验证码验证对错,jQuery Ajax显示对号和错号用于验证输入验证码是否正确

AJAX 的 jQuery Ajax显示对号和错号用于验证输入验证码是否正确废话不多说了&#xff0c;直接给大家贴代码了&#xff0c;具体代码如下所示&#xff1a;$(document).ready(function(e) {$(#yes).hide();$(#no).hide();$(input[namegcode]).keyup(function(){if($(this).val().l…

灰度内测是什么意思?

灰度测试是什么意思&#xff1f;如果您对互联网软件开发行业了解不多&#xff0c;您可能对这个词不太熟悉。事实上&#xff0c;灰度测试是指如果软件要在不久的将来推出新功能&#xff0c;或者进行重大修改&#xff0c;你必须首先做少量的试验工作&#xff0c;然后慢慢增加数量…

给点建议!开源项目架构选择!仿腾讯IM后端项目!InChat!

希望各位猿类给点建议或者提一些新的方案思路&#xff01; 前言 小弟无心插柳的聊天项目InChat&#xff08;一开始叫SBToNettyChat&#xff09;在广大互联网朋友的积极推动下&#xff0c;慢慢步入正轨&#xff0c;目前2个月&#xff08;一周4小时开发时间的速度&#xff09;迭代…