Hadoop高可用安装

Hadoop的高可用安装

本文主要讲hadoop的高可用安装过程以及一些本人在安装过程中遇到的错误和解决方法。

1.HA安装方案

在这里插入图片描述

2.分发jdk到node04,05,06

scp jdk-7u67-linux-x64.rpm node04:`pwd`
scp jdk-7u67-linux-x64.rpm node05:`pwd`
scp jdk-7u67-linux-x64.rpm node06:`pwd`

(注:pwd有``括起来)
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
检查是否已经分发到各个虚拟机上,在全部对话中输入cd ,再ll,得到
在这里插入图片描述

3.安装jdk

分别在node04,05,06三台机子上执行安装命令

rpm -i jdk-7u67-linux-x64.rpm

在这里插入图片描述

在node03上cd /etc,在此目录下把profile文件分发到node04,05,06

scp profile node04:`pwd`
scp profile node05:`pwd`
scp profile node06:`pwd`

(注:pwd有``括起来)
在这里插入图片描述
在这里插入图片描述
利用xshell全部对话栏,source /etc/profile,再jps,查看04,05,06三台机子的jdk是否安装好
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

4.同步所有服务器的时间

输入date命令,查看时间
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
如果时间不同步,安装时间同步器ntpdate yum -y install ntp
在这里插入图片描述
执行同步命令ntpdate time1.aliyun.com,和阿里云服务器时间同步
在这里插入图片描述

5.装机之前的配置文件检查

查看HOSTNAME是否正确 cat /etc/sysconfig/network
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
查看IP映射是否正确cat /etc/hosts,如果不正确,可以改文件,也可以把node03上的用scp分发过去
在这里插入图片描述
查看cat /etc/sysconfig/selinux里是否
SELINUX=disabled
在这里插入图片描述
查看防火墙是否关闭service iptables status
在这里插入图片描述

6.免密钥设置

在家目录下ll -a查看有无.ssh文件(如果没有就ssh localhost一下,再exit),再cd .ssh再ll一下
在这里插入图片描述
在这里插入图片描述
把node03的公钥发给其他三台机子
在这里插入图片描述
在node04,05,06的.ssh目录下看是否有node03.pub
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
如果有,那就追加到authorized_keys

 cat node03.pub>> authorized_keys

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
并且在node03上ssh node04,05,06看是否免密钥了,再exit
在这里插入图片描述

6.两个NN之间互相免密钥

node03与node04间互相免密钥: node03可免密钥登录node04,那现需ode04上能免密钥登node03,所以在node04上:

 ssh-keygen -t  dsa -P '' -f ~/.ssh/id_dsa
cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys

再ssh localhost验证一下, 并分发到node03上:

scp  id_dsa.pub   node03:`pwd`/node04.pub

在node03的.ssh目录下,cat node04.pub>>authorized_keys,
再在node04上ssh node03验证一下能否免密钥登陆
在这里插入图片描述

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

1.配置hdfs-site.xml
在这里插入图片描述
先去掉snn的配置
在这里插入图片描述
然后增加以下property

在这里插入图片描述
在这里插入图片描述
2.配置core-site.xml
在这里插入图片描述
在这里插入图片描述
3.配置slaves
在这里插入图片描述
删除node03,增加node04,05,06
4.安装hadoop
在node03上cd /opt,将其目录下的wjq分发给node04,05,06

scp –r  wjq/ node04:`pwd`
scp –r  wjq/ node05:`pwd`
scp –r  wjq/ node06:`pwd`

在这里插入图片描述
然后在04,05,06上验证是否有wjq目录
在这里插入图片描述
并把hdfs-site.xml和core-site.xml分发到node04,05,06

scp hdfs-site.xml core-site.xml node04:`pwd`
scp hdfs-site.xml core-site.xml node05:`pwd`
scp hdfs-site.xml core-site.xml node06:`pwd`

8.安装zookeeper

1.先在node04,05,06创建一个software目录在这里插入图片描述
将zookeeper安装包传输到node04的software上,在这里插入图片描述
在这里插入图片描述
解压到/opt/wjq目录下,在这里插入图片描述
2修改zookeeper的配置文件,将zoo_sample.cfg改为zoo.cfg在这里插入图片描述
在这里插入图片描述
vi zoo.cfg改dataDir=/var/ldy/zk并在末尾追加

server.1=node04:2888:3888
server.2=node05:2888:3888
server.3=node06:2888:3888

在这里插入图片描述

3.然后将zookeeper分发到node05,06上,ll /opt/wjq检验下是否分发成功在这里插入图片描述
4.给每台机子创建刚配置文件里的路径
mkdir -p /var/wjq/zk在这里插入图片描述
cd /var/wjq/zk
对node04来说,在这里插入图片描述,对node05来说,在这里插入图片描述
对node06来说,在这里插入图片描述
5.在/etc/profile里配置
在这里插入图片描述
6.然后再把/etc/profile分发到node05,node06上,在全部对话中source /etc/profile,然后输入zkCli.s,按tab可以自动补全zkCli.sh在这里插入图片描述
7.启动zookeeper
在全部对话中输入zkServer.sh start,然后用zkServer.sh status查看每个zookeeper节点的状态(若启动不起来,就把/etc/profile里的JAVA_HOME改为绝对路径)
在这里插入图片描述
在这里插入图片描述![在这里插入图片描述]

9.启动journalnode

在node03、04、05三台机子上分别把journalnode启动起来

 hadoop-daemon.sh start journalnode

再用jps检查下进程启起来了没在这里插入图片描述
我一开始没有journalnode,先去查看journalnode的日志文件发现hdfs-site.xml的第2行出错了在这里插入图片描述,然后打开hdfs-site.xml文件,发现hdfs-site.xml文件下少了点,使单词不完整了,报错了。解决方案:重新复制别人的hdfs-site.xml文件,将原先自己的删至空白。

10.格式化namenode

在node03上执行hdfs namenode –format,然后启动格式化后

hadoop-daemon.sh start namenode

在这里插入图片描述
在这里插入图片描述
一开始我没有namenode,然后照样去查namenode的日志文件,发现是hadoop默认将namenode格式化在/tmp下,而这个目录在重启时会被清空,所以报错。在这里插入图片描述
解决方案:在core-site.xml文件下添加一个property,然后再格式化一次在这里插入图片描述

然后给node04同步下数据

 hdfs namenode -bootstrapStandby

在这里插入图片描述

11.格式化zkfc

在node03上同步格式化zkfc,

hdfs zkfc -formatZK

在这里插入图片描述
在node04上执行zkCli.sh打开zookeeper客户端看hadoop-ha是否打开
在这里插入图片描述

12.启动hdfs集群

start-dfs.sh(如果节点没起来,去Hadoop目录下查看那个node的日志文件log)然后在全部会话窗口jps
在这里插入图片描述
在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述
用浏览器访问node03:50070和node04:50070在这里插入图片描述
在这里插入图片描述

13.关闭集群

关闭集群命令:stop-dfs.sh
关闭zookeeper命令:zkServer.sh stop

14.为MapReduce做准备

把mapred-site.xml.template留个备份,并改为mapred-site.xml,在mapred-site.xml里添加以下property

在这里插入图片描述

在这里插入图片描述在这里插入图片描述
把mapred-site.xml和yarn-site.xml 分发到node04、05、06

scp mapred-site.xml yarn-site.xml node04:`pwd`
scp mapred-site.xml yarn-site.xml node05:`pwd`
scp mapred-site.xml yarn-site.xml node06:`pwd`

在这里插入图片描述

由于node05和node06都是resourcemanager,所以它俩应该相互免密钥
node05上免密钥登录node06:
在node05的.ssh目录下生成密钥

     ssh-keygen -t dsa -P '' -f ./id_dsa

并追加到自己authorized_keys

    cat id_dsa.pub >> authorized_keys

用ssh localhost验证看是否需要密码,别忘了exit
将node05 的公钥分发到node06

     scp id_dsa.pub node06:`pwd`/node05.pub

在node06的.ssh目录下,追加node05.pub

     cat node05.pub >> authorized_keys

在node05上ssh node06,看是否免密钥
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
同理在node06上免密钥登陆node05.
启动进程的命令:
1.启动zookeeper,全部会话zkServer.sh start
2.在node03上启动hdfs,start-dfs.sh
3.在node03上启动yarn,start-yarn.sh
4.在node05、06上分别启动resourcemanager

yarn-daemon.shstart resourcemanager

5.全部会话jps,看进程全不全
在这里插入图片描述在这里插入图片描述
在这里插入图片描述在这里插入图片描述
在浏览器访问node05:8088,查看resourcemanager管理的内容
在这里插入图片描述

15.跑一个wordcount

1.cd /opt/ldy/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
  1. 运行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 

在这里插入图片描述

16.关闭集群

node03:stop-dfs.sh
node03: stop-yarn.sh (停止nodemanager)
node05,node06: yarn-daemon.sh stop resourcemanager
Node04、05、06:zkServer.sh stop

17.在Windows环境下配置Hadoop

把Hadoop压缩包解压后的这三个文件夹放到一个usr文件夹里,把usr放到一个你知道的地方。
然后在我的电脑图标上右击-属性-高级系统设置,更改环境变量,增加HADOOP_HOME在这里插入图片描述并在path后追加HADOOP_HOME的bin目录在这里插入图片描述
然后再建一个新的变量HADOOP_USER_NAME在这里插入图片描述把hadoop.dll拷贝到c:\windows\system32中
安装eclipse-mars版本,如果界面下方没有小象图标,则先在eclipse里把hadoop相关信息填一下,在这里插入图片描述
host里填哪个namenode是active的
在这里插入图片描述
然后在eclipse左侧列表的DFS location里新建一个目录
在eclipse里导入自己建的一个包库在这里插入图片描述
把jar包导入刚建的包库在这里插入图片描述
把刚建的包库引入到project里在这里插入图片描述
把JUnit包库引入到project里在这里插入图片描述
利用xftp把hdfs-site.xml,core-site.xml等几个xml放到project的src目录在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值