CentoOS6下搭建hadoop高可用平台——含多种错误解决方法

@Hadoop高可用搭建

前期搭建可以通过以下链接学习:
一、如何安装虚拟机与通过克隆在虚拟机里安装四台Linux系统及配置安装
二、伪分布式安装

你好! 本篇文章主要对完全分布式Hadoop集群环境的安装与配置步骤进行介绍。
本文章的特点是,操作详细,在实践过程中出现的错误进行分析,对常见问题进行了解决,希望可以帮到大家。

下面是需要的一些安装文件,需要者自取
[ 提取码:657t ] jdk安装包、Hadoop、xshell、xftp

hostname idadderess
node01 NameNode、Jps、JournalNode、DFSZKFailoverController
node02 NameNode、Jps、JournalNode、DFSZKFailoverController、DataNode、QuorumPeerMain、NodeManager
node03 Jps、JournalNode、DataNode、QuorumPeerMain、NodeManager、ResourceManager
node04 Jps、DataNode、QuorumPeerMain、NodeManager、ResourceManager

在这里插入图片描述

1、前期准备

我们首先需要下载虚拟机,同时在虚拟机里面安装四台Linux。方便起见,可以选择先添加一台Linux,配置完成后进行克隆。还需要用到xshell方便操作(这里只简要概述,不具体介绍,具体见前面目录一)

1.1 设置IP :VM:编辑>虚拟网络编辑器

vi etc/sysconfig/network-scripts/ifcfg-eth0

1.2 配置主机名:

vi /etc/sysconfig/network

1.3 配置hosts:

vi /etc/hosts

1.4 关闭防火墙&Selinux:

(1)service iptables stop
(2) chkconfig iptables off
(3) vi /etc/selinux/config
SELINUX=disabled
这样设置更安全,如时间错了就把相应文件变成只读文件

1.5 建立需要的文件夹存放安装文档

(1)存放安装软件 mkdir software
(2)在opt目录中建立gy 文件夹cd /opt
mkdir gy

2、jdk安装

2.1用xshell传文件

  1. 安装好xshell之后需要下载Xftp4(用于传文件,链接中有下载文件xshell、Xftp4哦)
  2. 如何传文件?
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

2.2. 用rpm装jdk,首先在node01上安装

  1. 在根目录下,输入安装命令
  • rpm -i jdk-7u67-linux-x64.rpm
  • whereis java
    在这里插入图片描述
  1. 配置文件
    目录: vi + /etc/profile
    export JAVA_HOME=/usr/bin/java
    export PATH=$PATH:$JAVA_HOME/bin

  2. 更新一下文件
    source /etc/profile

    红色框内为打错的,大家可不要出现输入错误哦
    在这里插入图片描述
    输入jps,结果出现 xxxx jps,说明安装成功
    注意:出现 command not find

    <1>、查看是否输入正确,source必须执行,否则修改无效
    <2>、更改绝对路径
    export JAVA_HOME=/usr/bin/java
    export PATH=$PATH:/usr/java/jdk1.7.0_67/bin

2.3 将jdk 分发到node02、node03、node04,并安装(方法同node01安装相同)

(1)传文件(在node01上):
注意pwd左右两边的符号,是tab键上面那个

scp jdk-7u67-linux-x64.rpm node02:`pwd`
scp jdk-7u67-linux-x64.rpm node03:`pwd`
scp jdk-7u67-linux-x64.rpm node04:`pwd` 

(2)安装文件

  • 在node03、node04、node05上执行rpm安装命令:-rpm -i jdk-7u67-linux-x64.rpm

  • 分发文件node01中的profile文件分发node02、node03、node04

     scp profile node02:`pwd`
     scp profile node03:`pwd`
     scp profile node04:`pwd`
    

注意pwd左右两边的符号,是tab键上面那个

(3) 检查是否安装完成
利用Xshell全部会话栏,source /etc/profile
利用Xshell全部会话栏,jps,看02、03、04这三台机子的jdk是否装好。
输入jps,结果出现 xxxx jps,说明安装成功在这里插入图片描述

3、同步所有服务器时间

3.1为什么要同步时间

时间相差太大,集群启动后某些进程跑不起来,所以要同步时间

3.2如何同步时间

  1. yum进行时间同步器的安装
    yum -yinstall nt
  2. 执行同步命令
    ntpdate time1.aliyun.com 和阿里云服务器时间同步
    在这里插入图片描述

4、检查配置文件

  1. 查看HOSTNAME是否正确(四台机子都要看)
    cat /etc/sysconfig/network
    在这里插入图片描述
  2. 查看IP映射是否正确(四台机子都要查看)
    cat /etc/hosts
    在这里插入图片描述
  3. 查看SELINUX是否disabled(四个都要看)
    cat /etc/sysconfig/selinux
    SELINUX=disabled
    在这里插入图片描述
  4. 查看防火墙(四个都要看,全部会话即可)
    service iptables status
    在这里插入图片描述

5、免秘钥设置

5.1如何给每台虚拟机免秘钥

  1. 在家目录下ll -a:查看有无.ssh文件,如果没有就ssh localhost
    ssh localhost 之后一定要exit退出,不然出大问题哦

  2. cd .ssh ,并ll 查看当前文件

  3. 免秘钥操作

    -ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa
    -cat ~/.ssh/id_dsa.pub >> ~/.ssh/authorized_key
    验证
    ssh localhost 看看需不需要输入密码

    一定要exit哦

    补充说明:(借用老师上课时用的图片说明一下)
    在这里插入图片描述
    在这里插入图片描述

5.2 如何让node01与其他三台机子免密

  1. 在node01上给其他三个发送公钥( 路径为:cd .ssh

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

  2. 查看一下发送成功没有(到node02、node03、node04的.ssh文件下去看)
    首先到目录:cd .ssh
    接下来去查看一下 node02:
    在这里插入图片描述
    node03:
    在这里插入图片描述
    node04:
    在这里插入图片描述

  3. 在另外三台机子上追加(node02、node03、node04都要哦)
    cat node01.pub >> authorized_keys
    验证:
    在node01上分别ssh node02,ssh node03,ssh node04,看看能否免秘钥登录
    记得ssh 登录以后以后一定要exit
    在这里插入图片描述

5.3 让两个Namenode之间免秘钥

首先做5、1 使每台机子自己可以免秘钥登录
现在实现让node02也可以直接登录node01

  1. 在 node02上:
    scp id_dsa.pub node01:'pwd'/node02.pub
    在node01的.ssh目录下:
    cat node02.pub >> authorized_keys
  2. 在node02上ssh node01 验证可否免秘钥登录
    在这里插入图片描述

6、namenode信息的配置信息修改

6.1 vi hdfs-site.xml修改

到Hadoop目录下更改:cd /opt/gy/hadoop-2.6.5/etc/hadoop/
(1)去掉snn的配置

<property>
       <name>dfs.namenode.secondary.http-address</name>
        <value>node03:50090</value>
 </property>

(2)增加以下property

<!-- 为namenode集群定义一个services name -->	
	<property> 		
		<name>dfs.nameservices</name>  		
		<value>mycluster</value>	
	</property>

<!--指定HDFS副本的数量,不能超过机器节点数-->	
	<property>		
		<name>dfs.replication</name>		
		<value>3</value>	
	</property>	

	<!-- nameservice 包含哪些namenode,为各个namenode起名 -->	
	<property>  		
		<name>dfs.ha.namenodes. mycluster</name>
		<value>nn1,nn2</value>	
	</property> 


<!-- 名为nn1的namenode的rpc地址和端口号,rpc用来和datanode通讯 -->	
	<property>  		
		<name>dfs.namenode.rpc-address. mycluster.nn1</name>
		<value>node01:9000</value>	
	</property> 	
	<!--名为nn1的namenode的http地址和端口号,用来和web客户端通讯 -->	
	<property>  		
		<name>dfs.namenode.http-address. mycluster.nn1</name>  					
		<value>node01:50070</value>	
	</property> 

	<!-- 名为nn2的namenode的rpc地址和端口号,rpc用来和datanode通讯 -->	
	<property>  		
		<name>dfs.namenode.rpc-address.mycluster.nn2</name>  					
		<value>node02:9000</value>	
	</property> 	
	<!--名为nn2的namenode的http地址和端口号,用来和web客户端通讯 -->	
	<property>  		
		<name>dfs.namenode.http-address.mycluster.nn2</name>  					
		<value>node02:50070</value>	
	</property> 	

<!-- namenode间用于共享编辑日志的journal节点列表 -->	
	<property>  		
		<name>dfs.namenode.shared.edits.dir</name>  						
		<value>qjournal://node02:8485;node03:8485;node04:8485/mycluster</value>
	</property>    
	<!-- journalnode 上用于存放edits日志的目录 -->	
	<property>  		
		<name>dfs.journalnode.edits.dir</name>  							
		<value>/var/gy/hadoop/ha/jn</value>	                            //这里的gy改成你建立的名字
	</property>  


	<!-- 指定该集群出现故障时,是否自动切换到另一台namenode -->	
	<property>  		
		<name>dfs.ha.automatic-failover.enabled.cluster</name>  					
		<value>true</value>	
	</property>	
	<!-- 配置失败自动切换实现方式 -->	
	<property>    	
		<name>dfs.client.failover.proxy.provider.cluster</name> 		 
		<value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider</value>
	</property>  


<!-- 一旦需要NameNode切换,使用ssh方式进行操作 -->	
	<property>  		
		<name>dfs.ha.fencing.methods</name> 
		<value>sshfence</value>	
	</property>  	
	<!-- 如果使用ssh进行故障切换,使用ssh通信时用的密钥存储的位置 -->	
	<property>  		
		<name>dfs.ha.fencing.ssh.private-key-files</name>  					
		<value>/root/.ssh/id_rsa</value>	
	</property>

改动处写有文字注释、注意修改哦

6.2 vi core-site.xml 配置

<!– 集群名称mycluster-->
<property>
  <name>fs.defaultFS</name>
  <value>hdfs://mycluster</value>
</property>
<!– zookeeper布署的位置-->
<property>
   <name>ha.zookeeper.quorum</name>
   <value>node02:2181,node03:2181,node04:2181</value>
</property>

vi slaves删除node01 添加如下
node02
node03
node04
在这里插入图片描述
这段文字改动很小,创建文件名改一下,主机名改一下,但是,一定要注意检查多遍,以防错误,后面查日志文件多半是这里出错

7、安装hadoop2.6.5

7.1如何安装Hadoop

先在node01中安装,后面传输一下即可,传文件方法前面已介绍

  1. 利用tar 命令直接解压安装包(此处的gy是自己创建的,具体在文章开头已介绍)
    -tar xf hadoop-2.6.5.tar.gz -C /opt/gy (注:-C的C 是大写)

    到/opt/gy目录下看是否解压好 cd /opt/gy/hadoop-2.6.5

在这里插入图片描述

  1. 想要实现任意目录下均可启动hadoop
    在目录:cd /opt/gy/hadoop-2.6.5/etc/hadoop/
    vi + /etc/profile

    export JAVA_HOME=/usr/bin/java
    export HADOOP_HOME=/opt/ldy/hadoop-2.6.5
    export PATH=$PATH:/usr/java/jdk1.7.0_67/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin
    

    在hadoop路径下(前面完整路径,黄色加粗字体),修改profile文件
    在这里插入图片描述
    进入文件内修改(修改完 !wq 保存退出)
    在这里插入图片描述
    修改完成一定要source
    在这里插入图片描述
    验证:输入hd按Tab键可以联想出hdfs
    输入start-d按Tab键可以联想出start-dfs.
    就表示配置成功了
    不要忘记source,更改会不生效哦

7.2修改Hadoop配置文件

  1. 在etc目录中修改:cd /opt/ldy/hadoop-2.6.5/etc/hadoop
    以上路径的etc不是根目录的etc

    vi hadoop-env.sh
    vi mapred-env.sh
    vi yarn-env.sh
    

    给这三个文件夹的JAVA_HOME改成绝对路径:/usr/java/jdk1.7.0_67

    如下图所示修改
    修改的那句如果有#须要去除
    在这里插入图片描述
    PS:详细的过程可以参考目录下二、伪分布式安装,进行对比学习

7.2.3如何实现四台机子方便的配置

  1. 到opt目录下,将其下的目录分发到node02、node03、node04
    在目录:cd /opt

    scp –r  gy/ node02:`pwd`
    scp –r  gy/ node03:`pwd`
    scp –r  gy/ node04:`pwd`
    

    pwd左右的符号是tab键上方的键

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

    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`
    

    pwd上的符号注意注意

8、安装zookeeper

8.1解压安装配置文件

zookeeper是在node02、node03、node04上安装的

  1. 解压安装zookeeper
    (1)在目录:cd /sotfware(四台都在sotfware里安装,如果无根目录下mkdir softer
    tar xf zookeeper-3.4.6.tar.gz -C /opt/gy


    (2)下载传输完成后可以看到在software里看到文件
    在这里插入图片描述
    (3)在sotfware目录下解压安装 tar xf zookeeper-3.4.6.tar.gz -C /opt/gy(gy是你新建的文件夹,在前期准备中有 介绍)
    (4)安装完成在gy文件夹下查看
    在这里插入图片描述

  2. 修改zookeeper的配置文件
    (1) cd /opt/gy/zookeeper-3.4.6/conf
    在这里插入图片描述
    (2) 给zoo_sample.cfg改名(以防改错,我们这里用复制命令)
    cp zoo_sample.cfg zoo.cfg

  3. vi zoo.cfg

    修改信息

     dataDir=/var/gy/zk
    

    (1)查看是否有zoo.cfg文件
    在这里插入图片描述
    (2)进行修改(数据路径)
    在这里插入图片描述

    (3)并在末尾追加

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

    在这里插入图片描述
    其中2888主从通信端口,3888是当主挂断后进行选举机制的端口

8.2如何方便的实现其他几台zookeeper搭建

  1. 把zookeeper分发到其他节点
    当gy目录下:cd /opt/gy

    scp -r zookeeper-3.4.6/ node03:`pwd`
    scp -r zookeeper-3.4.6/ node04:`pwd`
    

    并用ll /opt/gy检查下看分发成功没
    修改pwd上方符号

  2. 给每台机子创建刚配置文件里的路径
    (1)绝对路径,任意目录下均可:mkdir -p /var/gy/zk
    cd /var/gy/zk/

    对node02来说:	
    	echo 1 > /var/gy/zk/myid
    	cat /var/gy/zk/myid
    对node03来说:	
    	echo 2 > /var/gy/zk/myid
    	cat /var/gy/zk/myid
    对node04来说:	
    	echo 3 > /var/gy/zk/myid
    	cat /var/gy/zk/myid
    

    (2)图片示意(node04):
    编号必须是数字
    在这里插入图片描述

  3. 分发profile文件

    (1)先确定zookeeper-3.4.6的路径(按照下载的一般是/opt/gy/zookeeper-3.4.6其中gy是自己建立的文件名)
    在这里插入图片描述
    (2)在node02中的 /etc/profile里面配置
    vi + /etc/profile

    export ZOOKEEPER_HOME=/opt/gy/zookeeper-3.4.6
    export PATH=$PATH:/usr/java/jdk1.7.0_67/bin:$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$ZOOKEEPER_HOME/bin
    

    第一行是添加、第二行是修改
    在这里插入图片描述
    (2)在node02中,然后在把/etc/profile分发到其他node03、node04(绝对路径,所以在哪个路径下皆可以)

    scp /etc/profile node05:/etc
    scp /etc/profile node06:/etc
    

    (3)在node02、03、04里source /etc/profie
    输入zkCli.s,按Tab可以把名字补全zkCli.sh
    在这里插入图片描述

8.3启动zookeeper

  1. 全部会话:zkServer.sh start
    在这里插入图片描述

  2. 接着用zkServer.sh status查看每个zookeeper节点的状态
    在这里插入图片描述

    注意:如果启动不起来,请把/etc/profile里的 JAVA_HOME改
    成绝对路径。然后记得source刷新一下

    export JAVA_HOME=/usr/bin/java
    export PATH=$PATH:/usr/java/jdk1.7.0_67/bin

    source /etc/profie
    如下图所示:就是启动失败在这里插入图片描述
    修改绝对路径(四台都要改)
    在这里插入图片描述
    由于我们是在node02、node03、node04上装的,所以全部会话,在node01上找不到命令,是正常的

9、启动journalnode

  1. 启动namenode的原因:为了使两台namenode间完成数据同步

  2. 在01、02、03三台机子上分别把journalnode启动起来
    hadoop-daemon.sh start journalnode
    用jps检查下进程启起来了没

    node01:
    在这里插入图片描述
    node02:
    在这里插入图片描述
    node03:在这里插入图片描述
    没启动起来
    检查日志:cd /opt/gy/hadoop-2.6.5/logs/
    tail -100 hadoop-root-journalnode-node01.log(相应的日志里去找一下)
    常见问题:配置文件括号对应、出现空格等

10、格式化任一namenode

  1. 随意挑一台namenode上执行hdfs namenode –format
    另一台namenode不用执行,否则clusterID变了,找不到集群了。

  2. 然后,启动刚刚格式化的那台namenode
    hadoop-daemon.sh start namenode

    jps命令出现namenode,没有的话查日志(hdfs配置)
    下面这个错误就是括号不对应,参考一下在这里插入图片描述

  3. 我们要给另一台namenode同步一下数据,用以下命令
    (1)hdfs namenode -bootstrapStandby
    在这里插入图片描述(2)格式化zkfc

    1. 在node01上执行
      hdfs zkfc -formatZK

    2. 在node02上双击开启另一个,执行zkCli.sh打开zookeeper客户端看hadoop-ha是否打开,ls / 看是否成功打开Hadoop-ha

      双击node02:

      在双击后形成的3 node02上执行zkCli.sh、ls查看
      在这里插入图片描述
      PS:因为执行完zkcli.sh命令以后会导致无法返回,所以先多开一个,方便操作

11、启动集群

  1. 在node01上启动hdfs集群:start-dfs.sh 在这里插入图片描述

  2. 全部会话jps查看都有些什么进程,如果和下图一样,恭喜小可爱成功一半啦
    node01:
    在这里插入图片描述node02:
    在这里插入图片描述
    node03:
    在这里插入图片描述
    node04:
    在这里插入图片描述

  3. 如果那个节点没起来到hadoop目录下去看那个node的日志文件log
    静下心来慢慢找错,日志会提示错误哦

     hadoop-daemon.sh start journalnode
     cd /opt/ldy/hadoop-2.6.5/logs/
     tail -100 hadoop-root-journalnode-node03.log
    
  4. 接下来去浏览器访问node01:50070和node02:50070
    在这里插入图片描述
    在这里插入图片描述

  5. 关闭集群:stop-dfs.sh

  6. 关闭zookeeper命令:zkServer.sh stop

注意:你下一次启动hdfs集群的时候不需要用hadoop-daemon.sh start journalnode命令启动journalnode
只要start-dfs.sh就可以了。我们之前启动journalnode是为了同步两个namenode之间的信息。

12、为MapReduce做准备

  1. 把mapred-site.xml.template留个备份,并且改下名字 node01里先改,发送到node02、node03、node04
    cp mapred-site.xml.template mapred-site.xml
    在mapred-site.xml里添加如下property
	<property>
        		<name>mapreduce.framework.name</name>
        		<value>yarn</value>
	</property>
  1. 在yarn-site.xml里添加如下property
<property>
        <name>yarn.nodemanager.aux-services</name>
        <value>mapreduce_shuffle</value>
    </property>
<property>
   <name>yarn.resourcemanager.ha.enabled</name>
   <value>true</value>
 </property>
 <property>
   <name>yarn.resourcemanager.cluster-id</name>
   <value>cluster1</value>
 </property>


<property>
   <name>yarn.resourcemanager.ha.rm-ids</name>
   <value>rm1,rm2</value>
 </property>
 <property>
   <name>yarn.resourcemanager.hostname.rm1</name>
   <value>node03</value>
 </property>
 <property>
   <name>yarn.resourcemanager.hostname.rm2</name>
   <value>node04</value>
 </property>
 <property>
   <name>yarn.resourcemanager.zk-address</name>
   <value>node02:2181,node03:2181,node04:2181</value>
 </property>

  1. 把mapred-site.xml和yarn-site.xml 分发到node04、05、06
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`

  1. node03和node04之间相互免秘钥(参考5)
    用localhost以后一定要exit
    PS:node 03与node04都是resourcemanager,所以他们相互免秘钥

  2. 完整的启动步骤
    启动zookeeper,全部会话zkServer.sh start
    在node01上启动hdfs,start-dfs.sh
    在node01上启动yarn,start-yarn.sh
    在node02、03上分别启动resourcemanager,
    yarn-daemon.sh start resourcemanager
    全部会话jps,看进程全不全

    node01:
    在这里插入图片描述
    node02:
    在这里插入图片描述
    node03:
    在这里插入图片描述
    node04:
    在这里插入图片描述

  3. 在浏览器访问node03:8088,查看resourcemanager
    在这里插入图片描述

  4. 完整的退出步骤

    关闭集群:
    node01: stop-dfs.sh
    node01: stop-yarn.sh (停止nodemanager)
    node03,node04:yarn-daemon.sh stop resourcemanager
    Node02、03、04:zkServer.sh stop
    如何看是否完全退出
    jps之后只有jps xxx

13、完成一个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/input	
    hdfs dfs -ls /data/input	
    
  4. 运行wordcount(注意:此时的/data/out必须是空目录)
    hadoop jar hadoop-mapreduce-examples-2.6.5.jar wordcount /data/in /data/out/result

  5. 你成功了吗?

    首先观察一下,是否出现如下进程map变化
    在这里插入图片描述
    其次去网页观察一下,有sucess嘛
    在这里插入图片描述
    最后我们再去看一下运行完的程序结果
    在这里插入图片描述
    记住此时的/data/out必须是空目录
    补充:1、运行失败查看日志文件,多半是配置错误,回到6检查一遍哦
    2、运行较慢可能出现map百分之75,最后100%,这样问题不大, 可以成功等等就好
    3、data/out 运行第二次不为空了,创建另一个文件
    hadoop jar hadoop-mapreduce-examples-2.6.5.jar wordcount /data/in /data/out/result_1或者删除
    在dfs中删除目录:hadoop fs -rm -r /data/out/result
    在这里插入图片描述

14、错误小结

问题小结–个人比较粗心遇到的问题比较多,不过解决后收获较多

  • jps后namenode总不出来
    1、根据日志报错(前面有如何看日志介绍见12、3)
    2、日志居然找不到错误,检查一下配置(见6 namenode配置,没有空格的地方不要多空格)
    3、修改了node01的配置文件,一定记得传输给其他之前同样配置机子。

  • node01与node02同步了
    1、localhost忘记退出了导致混乱,千万不要犯这种低级错误

  • 实现wordout总出现错误
    1、根据mycluster,找到有关他的配置文件,如果无误
    在这里插入图片描述

    2、etc/hosts 文件是否配对
    在这里插入图片描述

  • 出现命令找不到
    1、查找自己是否打错,要细心哦
    2、查看目录,看一下是否存在

  • 输入易错点
    1、免秘钥处 -f前面有空格 -ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa
    2、pwd上面的符号,在tab上方,不要打成分号
    3、输入目录名可以利用tab键自动生成剩余完整的目录名

  • 浏览器打不开
    1、hosts里面配置检查一遍
    cat /etc/sysconfig/network
    在这里插入图片描述

  1. 查看IP映射是否正确
    cat /etc/hosts
    在这里插入图片描述
    3、浏览器不要用360、QQ浏览器,最好用火狐
  • 物理内存不足(实际内存够的)
    在这里插入图片描述
    找到编辑->首选项
    在这里插入图片描述
    选择允许交换大部分虚拟机内存
    在这里插入图片描述
  • 打不开也关不掉虚拟机显示繁忙(特别常见)
    在这里插入图片描述
    这个问题很容易解决,可以关机重启,删除对应虚拟机存储文件多出的前四个文件
    (这个方法最有效,虚拟机多次出现这个问题已解决)
    删除的文件可以参考这个链接: https://blog.csdn.net/s546889/article/details/105045714.

以上就是整个过程,如果还有什么问题欢迎评论

猜你喜欢

转载自blog.csdn.net/weixin_44926307/article/details/106736658
今日推荐