centos7搭建hadoop集群(完全分布式模式)

1. 创建虚拟机

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
到这里一台裸机就创建好了。
接下来就是添加镜像:hadoop01界面编辑虚拟机设置,添加镜像。
在这里插入图片描述
在这里插入图片描述
然后点击开启此虚拟机
在这里插入图片描述
接下来就是为裸机安装一个操作系统:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
至此,虚拟机创建完成。

2. 设置ip及机器名映射

打开hostname文件
在这里插入图片描述
修改内容为下,保存并退出
在这里插入图片描述
输入命令:vi /etc/sysconfig/network-scripts/ifcfg-ens33
在这里插入图片描述
修改代码:

#修改
BOOTPROTO=static
ONBOOT=yes
#添加
IPADDR=192.168.121.134
NETMASK=255.255.255.0
GATEWAY=192.168.121.2
DNS1=192.168.121.2

在这里插入图片描述
重启网络:service network restart
这里有个小插曲,重启失败,显示network.service failed,而且ifconfig后,ens33网卡没有了
资料发现网卡挂掉了

CentOS系统上,有NetworkManager和network两种网络管理工具,如果两种都配置会引起冲突,而且NetworkManager在网络断开的时候,会清理路由,如果一些自定义的路由,没有加入到NetworkManager的配置文件中,路由就被清理掉

运行下面命令停掉NetworkManager后,重启网络成功
在这里插入图片描述
如果还连接不到网络,看看自己的服务有没有开
在这里插入图片描述
输入命令:vi /etc/hosts,添加三台虚拟机的ip和主机名(设置主机名是为了使机器互相之间通过主机名连通)
在这里插入图片描述
然后ping一下自己,看是否可以通
在这里插入图片描述

3. 克隆hadoop02、hadoop03

克隆之前需要先关闭虚拟机hadoop01:init 0
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
同样的方法克隆hadoop03
然后开启三台虚拟机,此时hadoop02、hadoop03的ip和hadoop01 也相同,我们需要修改hadoop02、hadoop03ip,然后重启网络。
先修改主机名:vi /etc/hostname
在这里插入图片描述
修改ip:vi /etc/sysconfig/network-scripts/ifcfg-ens33
在这里插入图片描述
重启网络:
在这里插入图片描述
同样修改hadoop03
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
然后ping hostname
查看三天主机是否能够互相连通,可以,就表示成功了。
ifconfig,查看各个主机的配置的ip,使用远程主机连接。

4. 设置SSH免密(下面开始,三台虚拟机都要做相同的操作)

先同步一下时间,时间有问题会出错(如果时间没问题,可以省略)
下载ntp
在这里插入图片描述
同步系统时间
在这里插入图片描述
将同步时间写入到硬件中
在这里插入图片描述
关闭防火墙
在这里插入图片描述
检查登录
在这里插入图片描述
这里的远程登录都需要密码,太麻烦,下面就是设置SSH远程免密登录(注意三台机器都要操作)

客户端生成秘钥:(中间遇到卡顿,需要输入三次回车)
在这里插入图片描述
进入 .ssh,查看公钥(id_rsa.pub为公钥,id_rsa为私钥)
在这里插入图片描述
复制公钥到hadoop01中的authorized_keys中(三个机器都运行同样的命令:ssh-copy-id hadoop01)
在这里插入图片描述
在这里插入图片描述
之后查看,可以发现三个机器的公钥都放在了authorized_keys中了
在这里插入图片描述

举例:
每个机器都有自己的公钥、私钥
如:hadoop01将自己的公钥给hadoop02,那之后,hadoop01就可以任意登录hadoop02了

将authorized_keys使用scp分发到另外两台机器的 ~/.ssh下
在这里插入图片描述
免密登录测试(注意登录完要exit,才能登录下一个)
在这里插入图片描述

5. 上传jdk、hadoop,以及配置环境变量(三个机器同样操作)

创建三个目录:

  • data:存放数据类文件
  • servers:放服务类文件(解压到这里)
  • software:存放压缩包文件

在这里插入图片描述
把压缩包放到software中:
方法一:cd 到software目录下,输入命令rz然后选文件(这个速度有点慢)
使用rz命令需要下载一个软件
在这里插入图片描述
方法二:使用xshell的文件传输
在这里插入图片描述
在这里插入图片描述
然后解压
在这里插入图片描述
在这里插入图片描述
移动,相当于重命名
在这里插入图片描述
然后配置环境变量
在这里插入图片描述
在末尾添加:

#java
export JAVA_HOME=/export/servers/jdk
export PATH=$PATH:$JAVA_HOME/bin
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
#hadoop
export HADOOP_HOME=/export/servers/hadoop
export PATH=$PATH:$HADOOP_HOME/bin:$HADOOP_HOME/sbin

在这里插入图片描述
配置完成后需要使用source命令使配置文件生效
在这里插入图片描述

6. hadoop集群环境配置

进入目录:cd /export/servers/hadoop/etc/hadoop/
可以看到有这些文件
在这里插入图片描述
我们需要配置一些文件(三个机器相同配置)
vi hadoop-env.sh,修改java路径,指定jdk的位置
在这里插入图片描述
vi core-site.xml

    <property>
       <name>fs.defaultFS</name>
       <value>hdfs://hadoop01:9000</value>
   </property>
   <property>
       <name>hadoop.tmp.dir</name>
       <value>/export/servers/hadoop/tmp</value> #指定临时文件的位置,如果后面不小心多次格式化,要在这里删除临时文件
   </property>

在这里插入图片描述
vi hdfs-site.xml

  <property>
      <name>dfs.replication</name>
      <value>2</value>  <!--默认是3-->
  </property>
  <property>
      <name>dfs.namenode.secondary.http-address</name> #namenode备份secondaryNameNode,namenode坏了,会自动开启这个备份
      <value>hadoop02:50090</value>
  </property>

在这里插入图片描述
ll map*
我们可以看到,没有mapred-site.xml,只有一个模板文件,所以要创一个相同内容的mapred-site.xml
在这里插入图片描述
cp mapred-site.xml.template mapred-site.xml,把mapred-site.xml.template内容复制到mapred-site.xml中

vi mapred-site.xml

    <property>
        <name>mapreduce.framework.name</name>
        <value>yarn</value>
    </property>

在这里插入图片描述
vi yarn-site.xml

    <property>
        <name>yarn.resourcemanager.hostname</name>
        <value>hadoop01</value>
    </property>
    <property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
    </property>

在这里插入图片描述
vi slaves
在这里插入图片描述
格式化文件系统(在集群中任何一台机器执行都可以)
hadoop namenode -format

(格式化一次就好,不要格式化太多次,会出错,出错后,需要把临时文件和日志文件删除后再格式化)

7. 开启集群并测试

在随便目录下都可以,开启集群可以一个一个节点的开,也可以一键开启
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
解释
hadoop01中有NameNode和DataNode
hadoop02有DataNode和SecondaryNameNode(NameNode的备份)
hadoop03只有DataNode
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
关闭集群:把上面开启的start改成stop就可(关闭集群才能关闭操作系统,否则文件可能会出错)
在这里插入图片描述
在这里插入图片描述
开启集群
./start-all.sh(不推荐)
在这里插入图片描述
输入命令:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
关闭集群:./stop-all.sh

8. UI界面管理集群

要在windows下的浏览器中访问,需要在Windows下配置ip地址的映射(配置后在cmd中可以通过ping hadoop01 ping通)
进入下面目录:C:\Windows\System32\drivers\etc
管理员权限打开hosts文件,修改文件
在这里插入图片描述
添加下面内容,进行ip映射
在这里插入图片描述
在浏览器中访问:
在这里插入图片描述
在这里插入图片描述

9. 测试集群-单词统计wordcount

方法一:
在这里插入图片描述
查看数据文件
在这里插入图片描述
初始没有
首先先在/export目录下创建data目录(之前已经创建过了)
data下新建word.txt,编写一些单词
然后将文件导入到hdfs文件系统中
在这里插入图片描述
上传文件到目录
在这里插入图片描述
上传jar包
jar包位置:/export/servers/hadoop/share/hadoop/mapreduce下
在这里插入图片描述
运行jar包
在这里插入图片描述
在这里插入图片描述
之后我们就可以自己写MapReduce的jar包,然后运行自己的功能。


补充:
hadoop集群部署模式:

在这里插入图片描述

hadoop目录及各目录的作用

bin:hadoop服务脚本
etc:配置文件
include:C++相关的服务文件
lib:一些库文件
libexec:shell相关的配置文件
sbin:hadoop管理脚本
share:各种各样的jar包
src:hadoop源码包

hadoop集群主要配置文件解释

在这里插入图片描述

hadoop集群修改配置文件及解释

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
下面这一步只限于只在hadoop01中配置,其他两个机器进行分发,如果其他两个机器已经配置过了,可以省略这一步,要不会重复。
在这里插入图片描述

格式化主节点的文件系统

在这里插入图片描述
在这里插入图片描述

启动和关闭hadoop集群

单节点逐个启动
在这里插入图片描述
启动主节点,namenode
在这里插入图片描述
启动datanode
在这里插入图片描述
使用jps查看已经启动的京城目录
然后启动其他两个虚拟机的datanode节点

启动yarn的主节点
在这里插入图片描述
启动nodemanager
在这里插入图片描述
然后启动其他两个虚拟机的nodemanager节点

启动secondaryNameNode
在这里插入图片描述
关闭节点,把start换成stop就可以了
在这里插入图片描述

一键启动和关闭
在这里插入图片描述
执行脚本,启动node集群
在这里插入图片描述
启动yarn集群
在这里插入图片描述

通过ui界面,查看hadoop集群运行状态

50070:hdfs监控端口
8088:yarn监控端口
在这里插入图片描述
配置ip地址的映射
C:\Windows\System32\drivers\etc
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
进入hadoop集群运行管理界面
在这里插入图片描述
进入yarn集群管理界面
在这里插入图片描述

体验hadoop集群

在这里插入图片描述
在这里插入图片描述
查看数据文件
在这里插入图片描述
初始没有
首先先在/export目录下创建data目录
data下新建word.txt,编写一些单词
然后将文件导入到hdfs文件系统中
在这里插入图片描述
上传文件到目录
在这里插入图片描述
上传jar包
jar包位置:/export/servers/hadoop/share/hadoop/mapreduce下
在这里插入图片描述
运行jar包
在这里插入图片描述
在这里插入图片描述
之后我们就可以自己写MapReduce的jar包,然后运行自己的功能。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值