Hadoop高可用安装

Hadoop高可用安装

我在第28步启动journalnode的时候做不出来journalnode进程,返回去看了看某些配置,发现配置hdfs-site.xml时里面的配置信息我粘贴了两次。
我在第31步启动hdfs集群时一直都跳不出来进程,然后界面上出现了password,就想着 也有可能是前面的免密钥没有做好,然后重新做了一遍免密钥后就可以成功启动了。
Hadoop高可用安装_第1张图片
1.将jdk分别分发到node02、03、04三台机子

  • 在node01机子上分别输入:
   -scp jdk-7u67-linux-x64.rpm node02:`pwd`
   -scp jdk-7u67-linux-x64.rpm node03:`pwd`
   -scp jdk-7u67-linux-x64.rpm node04:`pwd`
  • 注意:` 这一符号是数字1左边这个键
  • 分发的运行截图如下:
    Hadoop高可用安装_第2张图片
  • 完成分发后可以在node02,node03,node04三台机子上分别回到家目录下输入“ll”看看是否都已经成功安装上jdk。
  • 分发成功的截图如下:
    在这里插入图片描述

2.分别在node02、03、04三台机子上执行rpm安装命令

  • 在node02、03、04三台机子上分别输入:
	-rpm -i jdk-7u67-linux-x64.rpm   
  • rmp安装命令运行截图node0304都如下所示:
    Hadoop高可用安装_第3张图片

3.在node01上输入cd /etc,在此目录下把profile文件分发到node02、03、04上
- 在node01机子上输入:

		-scp profile node02:`pwd`
  • 分发profile文件的运行截图如下:
    Hadoop高可用安装_第4张图片

4.利用Xshell全部会话栏

  • 在Xshell全部会话栏中输入:
	source /etc/profile

在这里插入图片描述

  • 查看02、03、04这三台机子的jdk是否已经安装好
  • 在Xshell全部会话栏中输入
	jps

在这里插入图片描述

  • 如果node020304三台机子上都可以出现数字和jps就代表jdk安装成功
  • jdk安装成功的运行截图如下:
    在这里插入图片描述

5.查看机子当前的时间

  • 在Xshell全部会话栏中输入
	date

在这里插入图片描述

  • 查看机子时间的运行截图如下:
  • 需要注意的是每台机子之间的时间不能相差太大(差个5秒左右关系不大),否则集群启动后有些进程可能会跑不起来,比如我的机子时间时间相差有点大(下图是我机子时间不一样的截图)(第一张图是node01机子,因为之前名字没对应上,后面才发现这个问题,会改回来)
    在这里插入图片描述
    在这里插入图片描述

6.每台机子的时间不同步,可以进行以下步骤

  • yum进行时间同步器的安装,在node01机子上输入:
	yum -y install ntp
  • yum进行时间同步器的安装的运行截图如下:
    Hadoop高可用安装_第5张图片
    Hadoop高可用安装_第6张图片
    Hadoop高可用安装_第7张图片
  • yum进行时间同步器的安装下载好后,执行同步命令和阿里云服务器时间同步
  • 在node01机子上输入
	ntpdate time1.aliyun.com  
  • 执行同步命令运行截图如下:
    在这里插入图片描述
  • node01 02 03 04时间已同步的运行截图如下:
  • 因为我输入命令的时间不同,所以以下截图时间有少许间隔
  • 第一张图是node01机子,因为之前名字没对应上,后面才发现这个问题,会改回来
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

7.查看HOSTNAME是否正确

  • 在全部对话栏中输入
 	cat /etc/sysconfig/network

在这里插入图片描述

  • 我的node02 03 04的HOSTNAME都可以一一对应上,除了node01
  • 所以在node01上的运行截图都会显示成node02(不要混淆哈哈哈)
  • 查看HOSTNAME的运行截图如下:
    在这里插入图片描述
  • 当HOSTNAME和机子对应不上时,根据如下修改HOSTNAME
  • 我在node01机子上将HOSTNAME改回了node01
    在这里插入图片描述

8.查看IP映射是否正确

  • 在node01输入
	 cat /etc/hosts 
  • 查看IP映射的运行截图如下(都已经对应上):
    Hadoop高可用安装_第8张图片

9.查看cat /etc/sysconfig/selinux里是否SELINUX=disabled

  • 在全部对话栏中输入
	cat /etc/sysconfig/selinux

在这里插入图片描述

  • 出现SELINUX=disabled即正确 运行截图如下:
    Hadoop高可用安装_第9张图片

10.查看防火墙是否关闭

  • 在全部对话栏中输入
	 service iptables status

在这里插入图片描述

  • 防火墙已关闭的运行截图如下:
    在这里插入图片描述

11.在家目录下查看每台机子有无.ssh文件

  • 在全部对话栏中输入
	ll -a

在这里插入图片描述

  • 查看有无.ssh文件运行截图如下(该图中没有.ssh文件):
    Hadoop高可用安装_第10张图片
  • 当没有看到.ssh文件时,就在没有的机子上输入下面的代码
  • 千万记得ssh localhost 之后一定要输入exit!!!
	ssh loalhost
  • ssh loalhost后exit退出再次查看.ssh文件的运行截图如下:
    Hadoop高可用安装_第11张图片

12.查看文件

  • 在全部对话栏中输入以下代码后并ll查看一下
	cd .ssh 

在这里插入图片描述
运行截图如下:
Hadoop高可用安装_第12张图片

13.把node01的公钥发给其他02 03 04三台机子

  • 在node01机子上分别输入
	scp id_dsa.pub node02:`pwd`/node01.pub   
	scp id_dsa.pub node03:`pwd`/node01.pub  
	scp id_dsa.pub node04:`pwd`/node01.pub  
  • 把node01的公钥发给02机子的运行截图如下(0304类似):
    在这里插入图片描述
  • 在node02 03 04里输入ll,发现里面都有node01
  • 在node03上的ll运行截图如下:
    在这里插入图片描述
  • 在node02 03 04机子上看是否有node01.pub
  • 如果有node01.pub ,那就追加到node02 03 04 authorized_keys
  • 在3台机子上分别输入
	cat node02.pub >> authorized_keys
	cat node03.pub >> authorized_keys
	cat node04.pub >> authorized_keys
  • 追加运行截图如下:
    在这里插入图片描述
  • 在node01上看看02 03 04是否已经免密钥
  • 记住要exit
  • 在node01上输入
	ssh node02
	ssh node03
	ssh node04
  • 在node01上看看02 03 04是否免密钥运行截图如下:
    Hadoop高可用安装_第13张图片

14.node01与node02间互相免密钥:

  • node01可免密钥登录node02,现需node02上能免密钥登node01
  • 在node02上输入
	ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa
	cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_keys
  • 运行截图如下:
    Hadoop高可用安装_第14张图片
  • 验证一下
  • 输入
	ssh localhost
  • 运行截图如下:
    在这里插入图片描述
  • 将node02的公钥分发到node01上
	scp id_dsa.pub node01:`pwd`/node02.pub
  • 在node01的.ssh目录下追加输入
	cat node02.pub >> authorized_keys
  • 在node02上ssh node01验证一下可否免密钥登录
  • 这个免密钥我之前没做好,进行到后面启动集群的时候导致启动不起来,所以在后期又重新做了一遍免密钥,这里没有放上运行截图啦

15.根据下图的路径所示找到site .xml

  • 这里就直接放截图不放代码啦
    Hadoop高可用安装_第15张图片
    Hadoop高可用安装_第16张图片在这里插入图片描述

16.进行以下配置后保存退出

  • 在node01的hadoop路径下输入
	vi hdfs-site.xml

根据截图配置:
(有点多,要仔细)
(之前因为不仔细不小心复制了两遍就在后面的jps部分缺少了journalnode节点)
Hadoop高可用安装_第17张图片
Hadoop高可用安装_第18张图片
Hadoop高可用安装_第19张图片

  • 在node01的hadoop路径下输入
	vi core-site.xml
  • 根据截图配置:
    Hadoop高可用安装_第20张图片
  • 在node01的hadoop路径下输入
	vi slaves

根据截图配置:
Hadoop高可用安装_第21张图片

17.安装hadoop cd /opt ,将其下的cyj目录分发到node02、03、04

  • 在node01中分别输入
	scp –r cyj/ node02:`pwd`
	scp –r cyj/ node03:`pwd`
	scp –r cyj/ node04:`pwd`

分发截图如下(会出现类似下面图片的的传输过程(一小部分,没截全)):
在这里插入图片描述Hadoop高可用安装_第22张图片

18.在node02 03 04上的家目录下ll查看是否都有sortware文件

  • 我的查看截图如下:
    Hadoop高可用安装_第23张图片

  • 如果没有software文件,则在没有的机子上创建software(我的0304机子上没有)

  • 则在没有的机子上输入

	 mkdir software
  • 创建software成功的截图如下:
    Hadoop高可用安装_第24张图片

19.将hdfs-site.xml和core-site.xml分发到node02、03、04

  • 在node01hadoop路径上输入
	-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`
  • 分发截图如下:
    在这里插入图片描述

20.解压安装zookeeper

  • 在node02上输入
	tar xf zookeeper-3.4.6.tar.gz -C /opt/cyj
  • 解压截图如下:
    在这里插入图片描述
  • 解压好后可以输入cd /opt/cyj/查看是否已经装好
  • 查看是否安装好截图如下:
    Hadoop高可用安装_第25张图片

21.修改zookeeper的配置文件

  • 根据截图路径找到zoo_sample.cfg文件 首先在node02中输入
	cd /opt/cyj/zookeeper-3.4.6/conf
  • 截图如下:
    Hadoop高可用安装_第26张图片Hadoop高可用安装_第27张图片
  • 根据以上截图找到了zoo_sample.cfg文件后给复制一份zoo_sample.cfg后重命名
	cp zoo_sample.cfg zoo.cfg
  • 复制重命名截图如下:
    Hadoop高可用安装_第28张图片

22.修改zoo.cfg配置

		vi zoo.cfg

在这里插入图片描述

  • 需修改的信息: dataDir=/var/cyj/zk

  • 在末尾添加:
    server.1=node02:2888:3888
    server.2=node03:2888:3888
    server.3=node04:2888:3888

  • 2888主从通信端口,3888是当主挂断后进行选举机制的端口

  • 信息修改后的截图如下:
    Hadoop高可用安装_第29张图片

23.把zookeeper分发到其他节点

  • 在node02中分别输入
	scp -r zookeeper-3.4.6/ node03:`pwd`
	scp -r zookeeper-3.4.6/ node04:`pwd`

在这里插入图片描述

  • 传输过程如下图(截了一小部分)
    Hadoop高可用安装_第30张图片
  • 并ll /opt/cyj检查查看是否分发成功 分发成功截图如下:
    在这里插入图片描述

24.给每台机子创建刚配置文件里的路径

  • 分别在四台机子上输入
	mkdir -p /var/cyj/zk

在这里插入图片描述

	node02:	
		echo 1 > /var/cyj/zk/myid
		cat /var/cyj/zk/myid
	node03:	
		echo 2 > /var/cyj/zk/myid
		cat /var/cyj/zk/myid
	node04:	
		echo 3 > /var/cyj/zk/myid
		cat /var/cyj/zk/myid
  • 给每台机子配置其编号(必须是阿拉伯数字)
    在这里插入图片描述

25.配置信息

  • 现根据下图找到路径复制一下/opt/cyj/zookeeper-3.4.6(等会用到)
    Hadoop高可用安装_第31张图片
  • 进入修改输入
	vi + /etc/profile

在这里插入图片描述

  • export ZOOKEEPER_HOME=改成刚刚复制的绝对路径
  • 具体根据下图所示进行修改,截图如下:
    Hadoop高可用安装_第32张图片

26.把/etc/profile分发到node03、node04

  • 在node02上分别输入
	scp /etc/profile node03:/etc
	scp /etc/profile node04:/etc
  • 分发截图如下:
    在这里插入图片描述
  • 千万别忘在node02、03、04里source /etc/profie(刷新一下)
    在这里插入图片描述
  • 验证source这句是否完成,输入zkCli.s,按Tab可以把名字补全zkCli.sh即成功
    在这里插入图片描述

27.启动zookeeper

  • 全部会话中输入zkServer.sh start
  • 接着用zkServer.sh status查看每个zookeeper节点的状态
  • 以下截图没有启动起来
    在这里插入图片描述
  • 如果启动不起来,就把/etc/profile里的JAVA_HOME改成绝对路径。
	 vi + /etc/profile
  • 把JAVA_HOME改成绝对路径的截图如下:
    Hadoop高可用安装_第33张图片
  • 再次重新启动 出现了两台follower和一台leader即启动成功
  • 一般编号大的机子会是leader
    Hadoop高可用安装_第34张图片
    Hadoop高可用安装_第35张图片
    Hadoop高可用安装_第36张图片

28.启动journalnode

  • 在node01 02 03三台机子上分别输入
	hadoop-daemon.sh start journalnode
  • 接着输入jps检查下进程是否启动
  • 正常情况下0104两个进程 0203三个进程
  • 进程截图如下:
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
  • 如果没有journalnode进程,则输入下面找错误
  • 我之前出不来journalnode进程是因为配置hdfs-site.xml时弄错了
	cd /opt/cyj/hadoop-2.6.5/logs/
	tail -100 hadoop-root-journalnode-node01.log

29.格式化任一namenode

  • 我随意挑了一台node01来格式化 输入
  • 另一台namenode先不用执行,否则clusterID变了会找不到集群
	hdfs namenode –format
  • 只截了一小部分格式化的截图:
    Hadoop高可用安装_第37张图片
  • 启动刚刚格式化的那台namenode
	hadoop-daemon.sh start namenode
  • 启动后的截图如下 可以jps下看看是否成功启动
    在这里插入图片描述

29.给另一namenode同步数据

  • 给另一台namenode(我是node02机子)同步一下数据 输入
	hdfs namenode -bootstrapStandby
  • 同步数据截图如下:
    Hadoop高可用安装_第38张图片

30.格式化zkfc(另一台机子 我的是node02)

  • 在node02机子上输入
	hdfs zkfc -formatZK
  • 格式化截图如下:
    Hadoop高可用安装_第39张图片
    双击在这里插入图片描述
    可以打开在这里插入图片描述
  • 在3node02上输入zkCli.sh
    Hadoop高可用安装_第40张图片
  • 打开zookeeper客户端看hadoop-ha是否打开
  • 输入ls / 查看是否有hadoop-ha
    在这里插入图片描述

31.启动hdfs集群

  • 在node01上启动hdfs集群
	start-dfs.sh
  • 如果那个节点没起来到hadoop目录下去看那个node的日志文件log
  • 也有可能是前面的免密钥没有做好,我之前没有把启动集群,然后重新做了一遍免密钥后就可以成功启动了
  • 成功启动集群的截图如下:
    Hadoop高可用安装_第41张图片

32.全部会话jps看看都有什么进程

  • 以下截图里的进程所对应的机子都需要有
  • 之前我一直少node04上的datanode节点,后来把前面步骤重新试了好多遍才出来
    在这里插入图片描述
    Hadoop高可用安装_第42张图片
    Hadoop高可用安装_第43张图片
    在这里插入图片描述

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

  • 一台active,一台standby
    Hadoop高可用安装_第44张图片
    Hadoop高可用安装_第45张图片

34.为MapReduce做准备

  • 复制mapred-site.xml.template并重新命名
	cp mapred-site.xml.template mapred-site.xml

在这里插入图片描述

  • 在mapred-site.xml里添加如下property
  • 根据截图配置信息:
    Hadoop高可用安装_第46张图片

35.在yarn-site.xml里添加如下property
在这里插入图片描述

  • 根据截图信息配置:
    Hadoop高可用安装_第47张图片
    Hadoop高可用安装_第48张图片

36.把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`
  • 分发截图如下:
    Hadoop高可用安装_第49张图片

37.由于node03和node04都是resourcemanager,所以0304之间应该相互免密钥
node03上免密钥登录node04

  • 在node03的.ssh目录下生成密钥
  • 在node03中输入
	ssh-keygen -t dsa -P '' -f ./id_dsa
  • 生成密钥截图如下:
    Hadoop高可用安装_第50张图片
  • 并追加到自己authorized_keys
  • ssh localhost验证是否需要密码
  • exit退出
	cat id_dsa.pub >> authorized_keys
	ssh localhost
	exit

Hadoop高可用安装_第51张图片

  • 将node03的公钥分发到node04
  • 在node03中输入
	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
  • 生成密钥截图:
    Hadoop高可用安装_第52张图片
  • 并追加到自己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,看是否免密钥
    在这里插入图片描述

38.
1.启动zookeeper

  • 在全部会话框中输入
	zkServer.sh start
  • 启动zookeeper截图:
    在这里插入图片描述

2.在node01上启动hdfs

	start-dfs.sh
  • 启动hdfs的截图:
    Hadoop高可用安装_第53张图片

3.在node01上启动yarn

	start-yarn.sh
  • 启动yarn的截图:
    Hadoop高可用安装_第54张图片

4.在node03 04上分别启动resourcemanager

yarn-daemon.sh start resourcemanager
  • 启动resourcemanager:
    在这里插入图片描述
  • jps后所有的进程,需要和截图一样:
    Hadoop高可用安装_第55张图片
    Hadoop高可用安装_第56张图片
    在这里插入图片描述

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

  • 会看到有3个活跃的节点
    Hadoop高可用安装_第57张图片

40.尝试跑一个wordcount
1.在node01输入cd /opt/cyj/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
  • 运行wordcount的截图如下:
    Hadoop高可用安装_第58张图片
    在这里插入图片描述

41.查看运行结果

	hdfs dfs -ls /data/out/result 
	hdfs dfs -cat /data/out/result/part-r-00000
  • 运行结果如图:
    Hadoop高可用安装_第59张图片

42.集群的启动和关闭

- 启动:

  • 启动zookeeper,全部会话zkServer.sh start
  • 在node01上启动hdfs,start-dfs.sh
  • 在node01上启动yarn,start-yarn.sh
  • 在node03、04上分别启动resourcemanager
    yarn-daemon.sh start resourcemanager

- 关闭:

  • node01: 输入stop-dfs.sh
  • node01: 输入stop-yarn.sh (停止nodemanager)
  • node03,node04:两台机子都要输入 yarn-daemon.sh stop resourcemanager
  • node02、03、04(可以在全部对话框中输入):输入zkServer.sh stop

43.在Windows下配置hadoop的环境
1.把uer压缩包解压后的这三个文件夹放到一个usr文件夹里,放到一个自己知道的地方
Hadoop高可用安装_第60张图片
2.我的电脑右键-属性-高级系统设置

  • 更改环境变量,增加HADOOP_HOME
    Hadoop高可用安装_第61张图片

3.然后再新建一个变量HADOOP_USER_NAME
Hadoop高可用安装_第62张图片

4.给path追加HADOOP_HOME的bin目录

  • 注意:Windows里path的路径分隔符是分号,而不是冒号
    在这里插入图片描述

5.把usr里的hadoop.dll拷贝到windows的system32里
Hadoop高可用安装_第63张图片
在这里插入图片描述

6.安装ecipse-mars,这个版本的eclipse带插件,可以可视化的看到hadoop的一些东西,比较方便
在这里插入图片描述

7.如果eclipse界面下方没有小象图标,则按照以下部分进行操作
Hadoop高可用安装_第64张图片
Hadoop高可用安装_第65张图片

8.在eclipse里配置hadoop相关信息
Hadoop高可用安装_第66张图片

  • 将之前环境配置时的HADOOP_HOME里配置的路径复制上
    Hadoop高可用安装_第67张图片

9.新建一个hadoop localtion
Hadoop高可用安装_第68张图片

  • Location name:自己取一个名字

  • 取消UseM/R Master hoet前面的方框中的√

  • 右侧的Host填入node01
    (因为我访问浏览器的时候,node01时active,即哪台是active就填哪台机子)
    右侧的Port填写8020
    Hadoop高可用安装_第69张图片

    10.新建好hadoop localtion就能在eclipse左侧列表中看到DFS location
    在DFS location里新建一个目录,对应的hdfs里也就建好

    Hadoop高可用安装_第70张图片
    Hadoop高可用安装_第71张图片

    11.如图在eclipse里导入自己建一个包库
    Hadoop高可用安装_第72张图片

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

  • 选中Hadoop2020jars,选择右侧的Add External…,选择hadoop-lib导入
    Hadoop高可用安装_第73张图片

  • 导入后的截图
    Hadoop高可用安装_第74张图片

13.新建一个project,把刚建的包库引入到project里(根据下图所示)

  • 我建了一个test2020
    Hadoop高可用安装_第75张图片
  • 点击上方libraries
  • 点击右侧Add Libraries
  • 点击User Library
    Hadoop高可用安装_第76张图片
  • 选中hadoop2020jars
    Hadoop高可用安装_第77张图片
  • 把JUnit包库引入到project里
  • 同上进入Library添加
    Hadoop高可用安装_第78张图片

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

  • 右击打开properties
    Hadoop高可用安装_第79张图片
  • 点击resource复制里面的location
    Hadoop高可用安装_第80张图片
  • 把刚刚复制的location粘贴到左侧的搜索栏上
    Hadoop高可用安装_第81张图片
  • 把右侧里所有的xml文件传输到左边
    Hadoop高可用安装_第82张图片

你可能感兴趣的:(Hadoop高可用安装)