Hadoop高可用安装过程

在Hadoop安装过程中在配置虚拟机网关地址的时候一定要仔细,千万不要弄错了,不然Ping.www.baidu会ping不出来。还有本来老师给了xshell5,然后后来我想试试安装xshell6可不可以,然后之前的步骤是一直没有问题的,但是到了传输文件的时候就不能传输,然后我卸掉了xshell6安装了xshell5之后就可以了。在Hadoop安装过程中千万要做到仔细,不要拼写错误。还有相互免秘钥一定要成功不然之后的集群会启动不起来,在出错的时候,要学会查日志。还有在启动集群之后千万不要忘记关闭集群,如果电脑关机了之后集群跑不出来了,千万崩溃,再来一遍就好了,坚持坚持,很重要。

1、分发jdk到node02、03、04

scp jdk-7u67-linux-x64.rpm node02:pwd
scp jdk-7u67-linux-x64.rpm node03:pwd
scp jdk-7u67-linux-x64.rpm node04:pwd

并在Xshell的全部会话栏里一起ll,看jdk是否发送成功。


2、给node02、03、04分别安装jdk

分别在node02、03、04上执行rpm安装命令
rpm -i jdk-7u67-linux-x64.rpm


在node01上cd /etc,在此目录下把profile文件分发到node02、03、04上。
scp profile node02:pwd

利用Xshell全部会话栏,source /etc/profile
利用Xshell全部会话栏,jps,看02、03、04这三台机子的jdk是否装好。



3、同步所有服务器的时间

date查看机子当前的时间。
时间不能差太大,否则集群启动后某些进程跑不起来。
若时间不同步,
1.yum进行时间同步器的安装
yum -y install ntp




2.执行同步命令
ntpdate time1.aliyun.com 和阿里云服务器时间同步



4、装机之前的配置文件检查

1.cat /etc/sysconfig/network
查看HOSTNAME是否正确





2.cat /etc/hosts
查看IP映射是否正确,若不正确,可以改文件,也可以把node01上的用scp分发过去




3.cat /etc/sysconfig/selinux里是否出现SELINUX=disabled




4.service iptables status查看防火墙是否关闭


5、NN与其他三台机子的免秘钥设置

1.在家目录下 ll -a看下有无.ssh文件,如果没有就ssh loalhost一下(不能忘记exit)



2.cd .ssh ,并ll查看一下



3.把node01的公钥发给其他三台机子
scp id_dsa.pub node02:pwd/node01.pub node02公钥发送到哪台机子
node01的公钥重命名
scp id_dsa.pub node03:pwd/node01.pub
scp id_dsa.pub node04:pwd/node01.pub


4. 在node02的.ssh目录下ll看是否有node01.pub
如果有,那就追加到authorized_keys
cat node01.pub >> authorized_keys
并且在node01上ssh node02看是否免密钥了,千万不要忘了exit

同理给node03、04都追加一下node01.pub,也就是在node03、04的.ssh目录下执行cat node01.pub >> authorized_keys



5.同理给其他节点发送公钥并在各个节点上把node01的公钥追加上
scp id_dsa.pub node03:pwd/node01.pub
scp id_dsa.pub node04:pwd/node01.pub
在node01上分别ssh node02,ssh node03,ssh node04,看是否能免密钥登录,每次ssh都别忘了exit

6、两个NN间互相免密钥

1.node01与node02间互相免密钥: node01可免密钥登录node02,那现需node02上能免密钥登node01,所以
在node02上:
ssh-keygen -t dsa -P ‘’ -f ~/.ssh/id_dsa
cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
ssh localhost验证一下
分发到node01上:scp id_dsa.pub node01:pwd/node02.pub
在node01的.ssh目录下,cat node02.pub >> authorized_keys,
在node02上ssh node01验证一下可否免密钥登录


7、修改namenode的一些配置信息



1.vi hdfs-site.xml

去掉snn的配置

dfs.namenode.secondary.http-address
node03:50090

增加以下property

<property>      <name>dfs.nameservices</name>       <value>mycluster</value>
</property>
<property>       <name>dfs.replication</name>        <value>3</value>
</property>
<!-- nameservice 包含哪些namenode,为各个namenode起名 -->
<property>        <name>dfs.ha.namenodes. mycluster</name>                        <value>nn1,nn2</value>
</property>
<property>       <name>dfs.namenode.rpc-address. mycluster.nn1</name>                    <value>node03:9000</value>
</property>
<!--名为nn1的namenode的http地址和端口号,用来和web客户端通讯 -->
<property>        <name>dfs.namenode.http-address. mycluster.nn1</name>                   <value>node03:50070</value>
</property>
<property>       <name>dfs.namenode.rpc-address. mycluster.nn2</name>                    <value>node04:9000</value>
</property>
<!--名为nn2的namenode的http地址和端口号,用来和web客户端通讯 -->
<property>        <name>dfs.namenode.http-address. mycluster.nn2</name>                   <value>node04:50070</value>
</property>
<property>       <name>dfs.namenode.shared.edits.dir</name>                          <value>qjournal://node03:8485;node04:8485;node05:8485/mycluster</value>
</property>
<!-- journalnode 上用于存放edits日志的目录 -->
<property>        <name>dfs.journalnode.edits.dir</name>                              <value>/var/ldy/hadoop/ha/jn</value>
</property>
<property>       <name>dfs.ha.automatic-failover.enabled.cluster</name>                      <value>true</value>
</property>
<!-- 配置失败自动切换实现方式 -->
<property>        <name>dfs.client.failover.proxy.provider.cluster</name>                 <value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider</value>
</property>
<property>       <name>dfs.ha.fencing.methods</name>                             <value>sshfence</value>
</property>
<!-- 如果使用ssh进行故障切换,使用ssh通信时用的密钥存储的位置 -->
<property>        <name>dfs.ha.fencing.ssh.private-key-files</name>                   <value>/root/.ssh/id_rsa</value>
</property>

<!– 集群名称mycluster–>

fs.defaultFS
hdfs://mycluster

<!– zookeeper布署的位置–>

ha.zookeeper.quorum
node07:2181,node08:2181,node09:2181



2.vi slaves
node02
node03
node04

3.安装hadoop
cd /opt ,将其下的tjx目录分发到node02、03、04
scp -r tjx/ node02:pwd
scp -r tjx/ node03:pwd
scp -r tjx/ node04:pwd


4.将hdfs-site.xml和core-site.xml分发到node02、03、04
scp hdfs-site.xml core-site.xml node02:pwd
scp hdfs-site.xml core-site.xml node03:pwd
scp hdfs-site.xml core-site.xml node04:pwd





8、安装zookeeper

1、解压安装zookeeper
tar xf zookeeper-3.4.6.tar.gz -C /opt/tjx
在node02



2. 修改zookeeper的配置文件 cd /opt/tjx/zookeeper-3.4.6/conf
给zoo_sample.cfg改名 cp zoo_sample.cfg zoo.cfg
vi zoo.cfg
改dataDir=/var/tjx/zk
并在末尾追加
server.1=node02:2888:3888
server.2=node03:2888:3888
server.3=node04:2888:3888
其中2888主从通信端口,3888是当主挂断后进行选举机制的端口


3.把zookeeper分发到其他节点
scp -r zookeeper-3.4.6/ node03:pwd scp -r zookeeper-3.4.6/ node04:pwd
并用ll /opt/tjx检查下看分发成功没


4.给每台机子创建刚配置文件里的路径
mkdir -p /var/tjx/zk
对node02来说:
echo 1 > /var/tjx/zk/myid
cat /var/tjx/zk/myid
对node03来说:
echo 2 > /var/tjx/zk/myid
cat /var/tjx/zk/myid
对node04来说:
echo 3 > /var/tjx/zk/myid
cat /var/tjx/zk/myid



5.在/etc/profile里面配置
export ZOOKEEPER_HOME=/opt/tjx/zookeeper-3.4.6
export ::PATH=PATH:/usr/java/jdk1.7.067/bin:PATH:/usr/java/jdk1.7.0_67/bin:PATH:/usr/java/jdk1.7.06​7/bin:HADOOP_HOME/bin:HADOOPHOME/sbin:HADOOP_HOME/sbin:HADOOPH​OME/sbin:ZOOKEEPER_HOME/bin




6.然后在把/etc/profile分发到其他node03、node04
scp /etc/profile node03:/etc
scp /etc/profile node04:/etc

在node02、03、04 source /etc/profile,验证source这句是否完成,输入zkCli.s,按Tab可以把名字补全zkCli.sh最后把zkCli.sh删掉)

同理可得03、04


7.启动zookeeper
在node02中全部会话:zkServer.sh start
接着用zkServer.sh status查看每个zookeeper节点的状态



8、启动journalnode

在01、02、03三台机子上分别把journalnode启动起来
hadoop-daemon.sh start journalnode



9、格式化任一namenode

选择node01上执行hdfs namenode -format


然后,启动刚刚格式化的namenode01
hadoop-daemon.sh start namenode

10、给另一namenode同步数据

给node02另外同步数据
hdfs namenode -bootstrapStandby


11、格式化zkfc

hdfs zkfc -formatZK


在node02上执行zkCli.sh打开zookeeper客户端看hadoop-ha是否打开 (ls / 查看)

12、启动hdfs集群

在node01中启动hdfs集群start-dfs.sh

全部会话jps





用浏览器访问node01:50070和node02:50070


关闭集群命令:stop-dfs.sh(在node01里面)
关闭zookeeper命令:zkServer.sh stop(全部对话框)





启动hdfs集群
注意:你下一次启动hdfs集群的时候start-dfs.sh

13、为MapReduce做准备

把mapred-site.xml.template留个备份,并且改下名字
cp mapred-site.xml.template mapred-site.xml
在mapred-site.xml里添加如下property

mapreduce.framework.name
yarn


在yarn-site.xml里添加如下property

yarn.nodemanager.aux-services
mapreduce_shuffle

yarn.resourcemanager.ha.enabled
true

yarn.resourcemanager.cluster-id
cluster1

yarn.resourcemanager.ha.rm-ids
rm1,rm2

yarn.resourcemanager.hostname.rm1
node03

yarn.resourcemanager.hostname.rm2
node04

yarn.resourcemanager.zk-address
node02:2181,node03:2181,node04:2181


把mapred-site.xml和yarn-site.xml 分发到node02、03、04
scp mapred-site.xml yarn-site.xml node02:pwd
scp mapred-site.xml yarn-site.xml node03:pwd
scp mapred-site.xml yarn-site.xml node04:pwd

由于node03和node04都是resourcemanager,所以它俩应该相互免密钥
node03上免密钥登录node04:
在node03的.ssh目录下生成密钥
ssh-keygen -t dsa -P ‘’ -f ./id_dsa
并追加到自己authorized_keys
cat id_dsa.pub >> authorized_keys
用ssh localhost验证看是否需要密码,别忘了exit
将node03 的公钥分发到node04
scp id_dsa.pub node04:pwd/node03.pub
在node04的.ssh目录下,追加node03.pub
cat node03.pub >> authorized_keys
在node03上ssh node04,看是否免密钥


node04上免密钥登录node03:
在node04的.ssh目录下生成密钥
ssh-keygen -t dsa -P ‘’ -f ./id_dsa
并追加到自己authorized_keys
cat id_dsa.pub >> authorized_keys
用ssh localhost验证看是否需要密码,别忘了exit
将node04 的公钥分发到node03
scp id_dsa.pub node03:pwd/node04.pub
在node03的.ssh目录下,追加node04.pub
cat node04.pub >> authorized_keys
在node04上ssh node03,看是否免密钥


1.启动zookeeper,全部会话zkServer.sh start




2.在node01上启动hdfs,start-dfs.sh

3.在node01上启动yarn,start-yarn.sh

4.在node03、04上分别启动resourcemanager,
yarn-daemon.sh start resourcemanager


5.全部会话jps,看进程全不全




在浏览器访问node03:8088,查看resourcemanager管理的内容

14、跑一个wordcount试试

1.cd /opt/tjx/hadoop-2.6.5/share/hadoop/mapreduce
2.在hdfs里建立输入目录和输出目录
hdfs dfs -mkdir -p /data/in
hdfs dfs -mkdir -p /data/out
3.将要统计数据的文件上传到输入目录并查看
hdfs dfs -put ~/500miles.txt /data/in
hdfs dfs -ls /data/in
4. 运行wordcount(注意:此时的/data/out必须是空目录
hadoop jar hadoop-mapreduce-examples-2.6.5.jar wordcount /data/in /data/out/result




5.查看运行结果
hdfs dfs -ls /data/out/result
hdfs dfs -cat /data/out/result/part-r-00000


15、关闭集群:

node01: stop-dfs.sh
node01: stop-yarn.sh (停止nodemanager)
node03,node04: yarn-daemon.sh stop resourcemanager
Node02、03、04:zkServer.sh stop





16、在Windows下配置hadoop的环境

1.把压缩包解压后的这三个文件夹放到一个usr文件夹里,把usr放到一个你知道的地方。


2.“此电脑”右键-属性-高级系统设置

3.更改环境变量,增加HADOOP_HOME(上次就配好了没有截图所以我就直接打开了)

4.并且给path后追加HADOOP_HOME的bin目录,注意:Windows里path的路径分隔符是分号;,而不是冒号:

5.然后再新建一个变量HADOOP_USER_NAME


6.把hadoop.dll拷贝到以下路径


7.安装ecipse-mars,此版本的eclipse带插件,可以可视化的看到hadoop的一些东西,比较方便

8.如果eclipse界面下方没有小象图标,则做后续三步调出上次已做已出现小象)点others


9.在eclipse里把hadoop相关信息填一下(上次已改已填)



(Hos中查哪个namenode是active就填哪一个)


10.这样在eclipse左侧列表的DFS location里新建一个目录,对应hdfs里也就建好了,可以用浏览器查看一下,自己试试。
11.在eclipse里导入自己建一个包库


12.把jar包导入刚建的包库

13.把刚建的包库引入到project里

14.把JUnit包库引入到project里


15.利用xftp把hdfs-site.xml,core-site.xml等几个xml放到project的src目录


16.结果(最后得到的结果如下图所示)

Hadoop高可用安装相关推荐

  1. hadoop高可用安装教程(刘浩)

    hadoop高可用安装 date: 2020-06-18 21:11:28 categories: 大数据 hadoop 前期准备 准备好四台安装了centos系统的虚拟机,并在其中一台完成伪分布式的 ...

  2. CLOUD 04:zookeeper,kafka,hadoop高可用

    zookeeper 安装 1 禁用防火墙和 selinux 2 设置 /etc/hosts ip 主机名对应关系 3 安装 openjdk zookeeper 角色,选举 leader 集群主节点 f ...

  3. hadoop 查看节点主备装填_基于ZooKeeper搭建Hadoop高可用集群

    作者博客:https://blog.csdn.net/m0_37809146/ 一.高可用简介 Hadoop 高可用 (High Availability) 分为 HDFS 高可用和 YARN 高可用 ...

  4. HA:HADOOP高可用机制

    课程大纲(HADOOP高可用机制) HA运作机制 什么是HA HADOOP如何实现HA HDFS-HA详解 HA集群搭建 目标: 掌握分布式系统中HA机制的思想 掌握HADOOP内置HA的运作机制 掌 ...

  5. 大数据-HADOOP高可用、联邦机制- 学习笔记 -BH4

    HADOOP高可用.联邦机制 正式引入HA机制是从hadoop2.0开始,之前的版本中没有HA机制 HA的运作机制 hadoop-HA集群运作机制介绍 所谓HA,即高可用(7*24小时不中断服务),实 ...

  6. sealos kubernetes(k8s)高可用安装教程

    官网地址 https://www.sealyun.com/instructions 快速开始 环境信息 主机名 IP地址 master0 192.168.0.2 master1 192.168.0.3 ...

  7. 镭速(Raysync)文件传输高可用安装部署介绍!

    使用HeartBeat实现高可用HA的配置.HA即(high available)高可用,又被叫做双机热备,用于关键性业务.简单理解就是,有2台机器 A 和 B,正常是 A提供服务,B待命闲置,当 A ...

  8. Ghost 的高可用安装 安装篇

    前面详细的讲述了,在 Node.js 4.x 环境下安装 Ghost 博客平台的准备工作,包括配置.系统的选择,组建的选择等等,如果没有看过的同学,一定要去看一下! 门:<Ghost 的高可用安 ...

  9. Hadoop高可用集群下namenode格式化失败问题解决

    Hadoop高可用集群下namenode格式化失败问题解决 输入hdfs namenode -format报如下错误 解决方法: 1.在zookeeper目录下执行./bin/zkServer.sh ...

  10. Kubernetes实战(一):k8s v1.11.x v1.12.x 高可用安装

    说明:部署的过程中请保证每个命令都有在相应的节点执行,并且执行成功,此文档已经帮助几十人(仅包含和我取得联系的)快速部署k8s高可用集群,文档不足之处也已更改,在部署过程中遇到问题请先检查是否遗忘某个 ...

最新文章

  1. JavaScript如何声明对象、函数以及对象中的函数(即方法)
  2. 2 行代码,将 .NET 执行时间降低 87%!(附代码)
  3. bat、sh等批处理文件(脚本文件)
  4. UIViewController 生命周期
  5. c++中获取蓝图组件_蓝图C++混合编程
  6. python-字符串的切片操作
  7. 传动系统结构简图_立式砂磨机与卧式砂磨机的结构特点比较
  8. LINUX下载编译OpenSSL
  9. 仿QQ音乐(HTML+CSS)
  10. 电脑绣花制版软件评比(上)
  11. Kotlin教程,从入门到精通
  12. 小程序中从后台获取内容纯数字、纯字母超出父盒子宽度时不换行 解决方法
  13. Maven错误:was cached in the local repository, resolution will not be reattempted until the update
  14. 浙江大学精品课程视频合集
  15. 无法远程连接到计算机 凭证,远程连接凭据不工作如何处理_远程桌面连接提示凭据无法工作的解决教程-win7之家...
  16. 扣扣机器人唱歌_qq小冰唱歌指令生成器下载-qq小冰唱歌关键字命令生成器 _5577安卓网...
  17. Unity笔记之动画遮罩
  18. 计算机二级C语言-B程序修改题
  19. r语言绘制精美pcoa图_「R」数据可视化5:PCA和PCoA图
  20. Hutool - 信息脱敏工具 - DesensitizedUtil

热门文章

  1. vue实现生成二维码与扫描二维码
  2. springBoot接入阿里云oss
  3. Problem A: 推理出今天是星期几
  4. 七大热门小程序框架横评,谁是性能之王
  5. php 星期几大写,php日期转大写
  6. java实现日期转中文大写形式
  7. 按键截屏功能源码流程讲解
  8. Java中文英文数字混合掩码_Java8 中文教程
  9. [读书笔记]Spring中的容器设计详解
  10. C盘中哪些文件可以删除?