使用虚拟机搭建Hadoop集群的步骤及出现问题总结

2023-05-16

虚拟机搭建hadoop集群的步骤及问题总结

1. 总体描述

​ 尝试使用VMware搭建hadoop集群,共设置四台装有Hadoop环境的虚拟机,其中一台设置为主,其余为从,他们都在同一局域网下,网关为192.168.106.2:,各节点具体信息如下:

主机名IPNameNodeSecondNameNodeDataNode
node1/hadoop-master192.168.106.200
node2192.168.106.202
node3192.168.106.203
node4192.168.106.204

2. 虚拟机安装centos7

参考文章: https://blog.csdn.net/qq_41938660/article/details/104184727

3. 虚拟机相关配置

3.1 设置固定IP

​ 默认情况下centos7安装好后,他的IP是通过DHCP协议动态分配的,但在我们实际的使用虚拟机的过程是通过xshell之类的远程连接工具连接虚拟机后操作的,这就带来了一个问题,初始一阵子没问题,但是过几天xshell就连接不上了,这是因为DHCP获取的动态IP改变了,不在是我们xshell中记录的那个IP,所以我们需要把IP地址设置成静态的,将它固定下来。

3.2 可能遇到的问题

配置错误:

  1. 要保证开启vm的服务,重点是nat,(搜索->服务)

    image-20220606212825596

  2. 配置 vmware8虚拟网卡的地址,要和VMware中的网关在同一网段 win10 -> 设置 ->网络和Internet ->更改适配器

    image-20220606221742008

**参考文章:**https://www.cnblogs.com/lfhappy/p/10798400.html

3.2 启动centos直接进入命令行界面

  1. 打开虚拟机,启动centos,默认进入图形界面,使用root用户登录后,右键终端terminal

  2. 终端输入“init 3” 回车进入命令行

  3. 输入“systemctl get-default” 获得当前系统启动模式(mult-user.target 为命令行)

  4. systemctl set-default multi-user.target 将图形改为命令行

  5. systemctl set-default graphical.target 将命令行改成图形

3.3 安装sftp服务

参考文章: https://blog.csdn.net/zhangyingchengqi/article/details/103566761

3.4 关闭防火墙

  1. 查看防火墙状态
  systemctl status firewalld 
  1. 关闭防火墙
systemctl stop firewalld
  1. 取消开机自动开启防火墙
systemctl disable firewalld.service

4. 基础环境搭建

4.1 jdk安装

参考文章: https://www.cnblogs.com/dai123/p/15736690.html

遇到的问题:

  1. 自己没有jdk安装包,需要去Oracle的官网下载,下错版本了

    错误提示:/bin/java: cannot execute binary file: Exec format error

    image-20220606223228651

    参考文章:https://blog.csdn.net/qq_45699990/article/details/122004336?spm=1001.2101.3001.6650.1&utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-1-122004336-blog-78974185.pc_relevant_antiscanv2&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-1-122004336-blog-78974185.pc_relevant_antiscanv2&utm_relevant_index=2

4.2 时间同步

**参考文件:**https://blog.csdn.net/Owen_goodman/article/details/122807721

4.3 配置host文件

这个就是为了地址映射,比如说node1就映射成192.168.106.200。

  1. 在centos 7中的 /etc/hosts中添加一下信息:

​ 192.168.76.200 node1 hadoop-master nn
​ 192.168.76.202 hadoop-node2 snn dn1
​ 192.168.76.203 hadoop-node3 dn2
​ 192.168.76.204 hadoop-node4 dn3

  1. windows 中的 C:\Windows\System32\drivers\etc\hosts也加入上述信息。

5. 横向扩展虚拟机数量

遇到的问题:

  1. 将hadoop-master虚拟机复制一份,重命名成hadoop-node2,然后将其IP地址改成192.168.102.4后,使用 xshell还是连接不上。

原因: 当我们通过(service sshd status)命令查看ssh服务,发现其启动失败

解决方案: https://blog.csdn.net/sj349781478/article/details/122859361

6. 免密设置

node1/hadoop-master免密登录

  1. 第一步,先尝试着在node1节点登录node1节点,我们发现还是需要输入密码的:

image-20220607133410356

  1. 在node1节点上生成公钥和私钥:

image-20220607133635990

  1. 将生成的公钥放入受信任的authorized_keys文件中去:

image-20220607133822556

  1. 再次尝试着登录node1,我们发现不需要密码了:

image-20220607133905614

扩展到所有节点

  1. 通过scp将node1节点的公钥文件传入node2的/tmp目录,其余节点同理:

image-20220607134928075

查看一下,是否上传成功了:

image-20220607135144965

  1. node2 节点生成公钥和私钥,并将自己的公钥和node1的公钥存入受信任文件中:

image-20220607140111760

注意: 这个图中的authorized_key是个错的还需要加一个‘s’。

  1. 其余节点同理操作,测试一下,可见不需要密码了:

image-20220607141148358

遇到问题

  1. scp命令不存在

    注意:发送方和接受方都必须安装好scp

    参考文章: https://blog.csdn.net/h254541060/article/details/48378489

7 Hadoop配置

在/etc/profile中配置hadoop的环境信息

注意两点:1. HADOOP_NAME 的路径配置正确

​ 2.记得发布HADOOP_NAME ( export )

验证:

  1. 查看hadoop的版本信息和输入一个常用命令(hdfs)是否有如下提示:

image-20220607144331405

修改hadoop配置文件

  1. 在hadoop271/etc/hadoop/hadoop-env.sh中添加 JAVA_HOME

image-20220607152609457

  1. 在hadoop271/etc/hadoop/core-site.xml中添加如下配置,

image-20220607152851101

注意:hadoopdata文件夹是不存在的,有hadoop自己创建,如果有请删除。

image-20220607153533855

  1. 在hadoop271/etc/hadoop/slaves 中指定 三台datanode:

image-20220607153750775

  1. 自己创建masters文件,添加如下信息,指定secondaryNameNode:

image-20220607153911039

运行

​ 在hadoop-master(node1)节点中输入start-dfs.sh运行hadoop,看看自己的那么node,secondaryName,DataNode是不是和当初设想对的上(在总体描述中的表格里面)。

image-20220607154946717

8 测试

进程信息

  1. node1/hadoop-master

image-20220607161932475

  1. hadoop-node2(它既是datanode也是secondaryNameNode ,所以有两个进程)

    image-20220607162133086

  2. hadoop-node3

image-20220607162308062

  1. hadoop-node4和hadoop-node3类似

web页面测试

  1. 浏览器测试namenode http://node1:50070

image-20220607155101693

  1. 浏览器测试node2 http://hadoop-node2:50090

image-20220607155123668

注意: 如果访问不了,先关闭node1和node2的防火墙。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用虚拟机搭建Hadoop集群的步骤及出现问题总结 的相关文章

随机推荐