|
hadoop在官方网站上的集群配置文档实在是不怎么样,看的人头晕眼花,还不知道到底怎么回事,网上搜了很多资料,终于大致配好了。本来么,基于java的程序设置安装不应该很困难的。现在把几个要点记录在这里。
linux的版本问题上,网上有基于ubuntu的教程,但是另有一篇文章说ubuntu上容易报IPC错误,还是CentOS可靠。为了简便,可以直接关掉iptables,或者至少开以下端口,9000900150010500205003050060500705007550090
用root执行hadoop当然也可以,可是为了系统安全么,还是建立专用账号好了,groupaddhadoop
useradd-ghadoophadoop.
hadoop运行起来分master和slave,master要能够不用口令直接shh到各个slave主机执行命令,所以要配置好。其实方法不难,就是把master的公钥加到各个主机的authorized_keys文件里就是了,每个机器都用hadoop登录,在master上执行命令:
ssh-keygen-trsa,在master机器上把/hamel/hadoop/.ssh/id_rsa.pub内容附加到,也就是>>到/home/hadoop/.ssh/authorized_keys,然后把此pub文件scp到各个slave,同样把此文件(即master的pub文件)>>到各authorized_keys文件中。
然后,一定要在master上用ssh命令登录所有主机,包括本机,确保没有问题,并且确认把该机器的密钥加入本地信任库,这样才能保证运行hadoop不出错。
要注意,有的版本ssh对安全要求十分严格,所以要设置好私钥和authroizedkey的权限,如果它发现有除了owner以外的人可以写入authorizedkey或者有其他人可以读取私钥,那么你就不能不输入口令ssh登录,所以简单的办法就是把这两个文件都设为只有owner可以rw。
hadoop的三个site配置文件,core-site,hdfs-site,mapred-site这3个XML文件在所有主机上都要配置,内容一样。
conf/masters和slaves文件也要填好,分别填所有的msater主机名和所有的从机名。当然每个机器的hosts文件也要配好,或者在DNS上都配好。
为了简单,可以在master上配置好,再把整个目录拷贝到其他从机,因为都是java程序,这样操作没啥问题。
在第一次启动前,要格式化HDFS,hadoopnamenode-format,以后启动就不用了。
然后启动hadoop集群,这个操作只要在master上操作就可以了!0.21.0版本要分别执行两步,start-dfs.sh和start-mapred.sh,它会自动调用从机上的Java程序。
如果是namenode和jobtracker分开在两台master机器上的,那么在namenode上面运行start-dfs.sh在jobtracker上面运行start-mapred.sh
|
|
|