一、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,没有问题。分别在NameNode和DataNode使用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”为NameNode的IP地址“10.10.7.201”
2)一并修改mapred-site.xml,同样替换“localhost”为NameNode的IP地址。
以上。
*****************
南邮福富实验室
*****************