日期:2014-05-16  浏览次数:20814 次

Hadoop在linux下的安装部署

[转载http://wenku.it168.com/d_000049179.shtml]

?

?

1.说明
共有两台机器(一台式一笔记本),主机名为gislq-1gislq-2
IP
地址:192.9.116.20192.9.116.67
操作系统:均为Ubuntu 10.10
hadoop
hadoop-0.16.3.tar.gz1
gislq-1
作为namenodemaster),gislq-2作为datanodeslave
1】遇到问题 我最初下载的是最新的hadoop版本0.21.0,但是到最后所有配置完成后,输入命令$ start-all.sh 提示DEPRECATED: Use of this script to execute hdfs command is deprecated. Instead use the hdfs command for it。但是当我使用hdfs命令时又出现Hadoop common not found。后来发现好象是新版本里的一个bug(或者是新版本还需要新的设置),安装0.16.3版问题消失

2.ping
机器
网上说一个很简单的测试办法就是ping一下主机名,比如在gislq-1ping gislq-2,如果能ping通就OK!我不知道什么叫能ping通。。。同事说只要在终端输入ping gislq-2命令,如果能能传输数据包即可。我照做,用这个命令可以ping通,但是到了后面使用scp命令复制文件时【2】,如果目标地址使用主机名表示,则不能复制,过很长时间后提示:
ssh: connect to host gislq-2 port 22: Connection timed out
lost connection
如果目标地址使用IP地址表示,则没有问题。同样ssh也不能用主机名连接
解决办法就是修改/etc/hosts文件,如果该台机器作Namenode用,则需要在hosts文件中加上集群中所有机器的IP地址及其对应的主机名;如果该台机器作Datanode用,则只需要在hosts文件中加上本机IP地址和Namenode机器的IP地址。
以本机为例,gislq-1中的/etc/hosts文件看起来是这样的
127.0.0.0???????? localhost???? localhost
192.9.116.20????? gislq-1?????? gislq-1
192.9.116.20????? gislq-2?????? gislq-2
gislq-2
中的/etc/hosts文件看起来是这样的
127.0.0.0???????? localhost???? localhost
192.9.116.20????? gislq-1?????? gislq-1
192.9.116.20????? gislq-2?????? gislq-2
2】使用scp命令时,会询问目标机器的root管理员的密码,普通用户(就是不管是安装时自己设的用户,还是后来添加的管理员用户)的密码无效。ubuntu默认root用户密码为空 输入命令passwd root