tecr 发表于 2016-1-5 13:33:25

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,没有问题。分别在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地址。
  
  以上。
  
  *****************
  南邮福富实验室
  wuxiaochao@live.com
  *****************
页: [1]
查看完整版本: Hadoop以及VMWare虚拟机问题记录