目录
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包,然后运行自己的功能。
本文详细介绍Hadoop集群从创建虚拟机、配置IP、SSH免密登录,到上传JDK与Hadoop,配置环境变量,直至集群环境配置、UI管理与单词统计测试的全过程。深入解析Hadoop目录结构与主要配置文件,涵盖格式化主节点、一键启动关闭集群等关键步骤。
1万+

被折叠的 条评论
为什么被折叠?



