Hadoop以及VMWare虚拟机问题记录

一、VMWare

 

问1)在VCENTER克隆虚拟机时提示:“在主机的当前连接状态下不允许执行此操作”

此问题出现在VCENTER克隆虚拟机的第二步,选择主机的时候,主机下方会提示以上信息。个人经验是关闭服务器的时候没有先关闭VCENTER,VCENTER随服务器启动后主机状态可能没有同步。此时断开服务器主机,然后重新连接是没用的。

解决步骤:

1)重新启动VCENTER,此时在克隆虚拟机的第二部会提示“验证成功”,就可以继续了。

 

问2)克隆虚拟机之后,配置了网络适配器,还是无网络连接

克隆虚拟机的时候没有修改任何配置,所以问题是MAC地址重复了。此时在服务器的【“配置”页签->“网络”】下,可以看到虚拟机是联网的,但是在虚拟机中修改IP没有效果,以为是IP重了。

解决步骤:

1)打开虚拟机,修改MAC地址。选中克隆的虚拟机,在【“入门”页签->“编辑虚拟机设置”->“网络适配器”】里可以看到自动生成的MAC地址,在虚拟机内按这个MAC地址配置就OK了。

 

问3)VMWare客户端无法连接到服务器:“将数据发送到服务器时出现通信错误...基础连接已经关闭:发送时发生错误...”

如果可以ping通服务器,那就是防火墙的问题了

解决步骤:

1)关闭防火墙

 

问4)Fedora15虚拟机如何安装VMWare Tools?

VMWare软件自带了linux和windows的VMWare Tools安装包,但你不需要到安装目录寻找安装包,VMWare提供更方便的操作。

解决步骤:

1)右键要安装VMWare Tools的虚拟机,客户机(G)->安装/升级VMWare Tools(W)

2)此时打开Fedora15虚拟机会发现多了光盘驱动,将tar.gz解压到虚拟机本地目录

3)在控制台切换到解压目录,然后执行:

$ ./vmware-install.pl
 

 

问5)Fedora15虚拟机安装VMWare Tools:What is the location of the gcc program on your machine?或者What is the location of the directory of C header files that match your running kernel?

VMWare Tools安装需要用到linux编译器gcc和kernel-devel软件包。下载对应的软件包即可完成安装。第二个问题出现有几种情况,一是没有安装kernel-devel软件包;二是kernel-devel和系统内核版本不一致;三是安装或者升级kernel/kernel-devel之后没有重启系统

解决步骤:

1)以root用户安装gcc:

 

$ yum -y install gcc

2)安装/更新kernel-devel:

# 查看kernel-devel是否安装
$ yum info kernel-devel
... 错误:没有匹配的软件包可以列出 ...

# 则安装kernel-devel
$ yum -y install kernel-devel

# 查看kernel-devel版本
$ yum info kernel-info
... 
Version: 2.6.42.9
Release: 2.fc15
...
# 查看kernel版本
$ uname -r
2.6.42.9-2.fc15.x86_64 ...
# kernel和kernel-devel版本号必须一致,否则需要升级
$ yum -y update kernel kernel-devel

3)若安装或者更新了kernel/kernel-devel,务必重启虚拟机

 

二、Hadoop

 

问1)Pig-0.9.2:hadoop已经启动完毕,在执行Pig命令的时候出现ERROR 2998,Unhandled internal error...JobControl.addJob...

原因是Hadoop的版本问题!Pig-0.9.2匹配的Hadoop版本是0.20*,我实验中使用的版本是hadoop-0.21.0。

解决步骤:

1)下载0.20版本的Hadoop,地址:http://labs.renren.com/apache-mirror//hadoop/common/

2)这里我下载的时0.20.205.0版本,然后修改conf下的配置文件(记得修改hadoop-env.sh中的JAVA_HOME),修改系统环境变量

3)然后你就见过pig跑了。

 

问2)Pig-0.9.2:分布式模式在Grunt Shell执行dump命令失败,ERROR1066: Unable to open iterator for alias A ...

检查发现失败信息还包括Input(s): Failed to read data from “hdfs://localhost:9000/user/hadoop/A”,因为分布式模式下,输入输出文件都必须在HDFS文件系统内,在执行dump语句前,并没有将数据文件上传至HDFS,所以执行失败。

解决步骤:

1将输入文件上传至HDFS即可

 

问3)Hadoop-0.20.205.0:在配置和Hadoop-0.21.0没有差别的情况下,无法启动DataNode和Task Tracker进程,查看节点log文件发现UnknownHostException: localhost.shb: 未知的名称或服务

有人解释是,尽管你在配置文件指定了IP地址,Hadoop还是会逆向查找主机名,也就是异常信息里的“localhost.shb”。在控制台执行hostname命令查看主机名,的确是“localhost.shb”。也许是版本的差别,因为跑Hadoop-0.21.0是没有问题的。

国际友人的解释:http://stackoverflow.com/questions/4730148/unknownhostexception-on-tasktracker-in-hadoop-cluster

解决步骤:

1)修改/etc/sysconfig/network文件,修改hostname为“localhost”

2)然后重启或者注销,以便使修改生效,然后Hadoop就能运行了。

 

问4)Hadoop-0.20.205.0:通过命令行向HDFS复制文件时报错,RemoteException: ...could only be replicated to 0 nodes, instead of 1 ...

以为是/conf目录下的hdfs-site.xml没有配置正确,结果打开看时配置的备份数是3,没有问题。分别在NameNodeDataNode使用jps命令查看java进程,也都是启动的。于是查看DataNode的日志发现全是:Retrying connect to server: localhost/127.0.0.1:9000…分析是/conf目录下的core-site.xml文件配置的是localhost:9000引起的。这是我遇到的情况,也有替换Hadoop版本没有清理残留文件,也可能导致此问题。

解决步骤:

1)编辑各节点/conf目录下的core-site.xml文件,替换“localhost”为NameNodeIP地址“10.10.7.201

2)一并修改mapred-site.xml,同样替换“localhost”为NameNodeIP地址。

 

以上。

 

*****************

南邮福富实验室

[email protected]

*****************

你可能感兴趣的:(vmware,hadoop)