本人是在vmware虚拟机下装的ubuntu server 12.04,配置好之后直接把虚拟机文件copy了两份,也就是说集群中有三个主机,本来想偷懒,我把几个虚拟机文件放在了同一个目录,只是把后来copy的两份名字改了一下,在vmware下安装ubuntu server的时候选择了预先分配硬盘空间,这样会形成两个文件:xxxx.vmdk xxxx-falt.vmdk,第二个才是真正的虚拟机文件,第一个估计是配置文件,创建虚拟机的时候选择必须选择第一个文件,选择第二个出错,提示不是vmdk文件,但我单纯的把xxxx.vmdk改为xxxx1.vmdk,把xxxx-falt.vmdk改为xxxx1-falt.vmdk,问题来了,这些文件都在同一个目录下,当copy完了之后再vmware中新建虚拟机选择xxxx1.vmdk创建成功,这时候其实操作的还是xxxx-falt.vmdk而不是xxxx1-falt.vmdk,所以导致出现了很多不可预料的错误,不知道算不算是vmware的bug,估计没几个人会遇到这种问题。
一.创建hadoop账户的时候不要忘记useradd -G -b指定/bin/bash.
二.hadoop.tmp.dir要提前创建,其他的如dfs.name.dir、dfs.data.dir、不能提前创建,否则会出现namenode和datanode无法启动的问题。
三.ubuntu 原有的 /etc/hosts 文件中有将本机计算机名解析为 127.0.1.1 的字段,例如:
127.0.1.1 hadoop-01
请务必删除,否则会由于绑定 ip 不正确导致namenode和jobtracker无法连接的问题。
删除这一行,否则会出现address change detected提醒。
注:hostname命令不带参数是显示主机名,带参数的话参数就是新的主机名。但是这个修改只是临时的,下次登录还是原先的主机名。