Hadoop学习笔记(十一)---hadoop集群安装及配置

来源:互联网 发布:striptags php 编辑:程序博客网 时间:2024/04/30 00:22

前面我们已经学习了如何在伪分布式的模式下运行hadoop,下面我们介绍一下如何进行hadoop集群的安装机器配置:

1.这里需要克隆3份虚拟机,一台master, 两台slaves,虚拟机怎么克隆就不说了,自己百度

2.对各个服务器进行网络配置,这个可以看第一讲

3.修改机器名字:

每台计算机都执行以下下面的代码:

[root@hadoop0 hadoop]# vim /etc/sysconfig/network

内容如下:

NETWORKING=yesHOSTNAME=hadoop0

然后把HOSTNAME分别改为:hadoop0, hadoop1, hadoop2,之后都重启。

4.添加hosts配置:

三台计算机分别执行代码:

[root@hadoop0 hadoop]# vim /etc/hosts

添加下面的hosts信息:

127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4::1         localhost localhost.localdomain localhost6 localhost6.localdomain6172.21.15.189 hadoop0172.21.15.30 hadoop1172.21.15.47 hadoop2

添加下面的三行,注意这里添加的是你自己的机器的ip,而不是我上面的ip,三台机器都添加

5.关闭防火墙(如果已经关了请忽略这一步):

[root@hadoop0 hadoop]# service iptables stop

6.修改hadoop里面的配置文件的服务器名称,core-site.xmlmapred-site.xml,全都改为指向主服务器,也就是下面的样子:

<configuration>   <property>     <name>fs.default.name</name>     <value>hdfs://hadoop0:9000</value>   </property>   <property>     <name>hadoop.tmp.dir</name>     <value>/usr/local/hadoop/tmp</value>   </property></configuration>
<configuration>   <property>     <name>mapred.job.tracker</name>     <value>hadoop0:9001</value>   </property></configuration>

6.设置ssh相互免密码登陆:

每台服务器上都执行以下下面的操作:

[root@hadoop0 conf]# cd ~/.ssh

删除里面的文件:

[root@hadoop0 .ssh]# rm -rf *

重新生成秘钥:

[root@hadoop0 .ssh]# ssh-keygen -t dsa

输出到授权文件中:

[root@hadoop0 .ssh]# cat id_dsa.pub >> authorized.keys

每一台服务器完成上面步骤后,接下来在hadoop0和hadoop1上进行如下的操作:

ssh-copy-id -i /root/.ssh/id_dsa.pub hadoop2

这样hadoop2上面就有了三台服务器的ssh密钥了,我们只需要在hadoop2上面执行下面的命令把三台服务的密钥分别复制到hadoop0和hadoop1:

[root@hadoop2 .ssh]# scp /root/.ssh/authorized_keys hadoop0:/root/.ssh/
[root@hadoop2 .ssh]# scp /root/.ssh/authorized_keys hadoop1:/root/.ssh/

这样三台机器就可以免密码登陆了。

7.在hadoop0上修改hadooop的配置文件:

配置从节点:

[root@hadoop0 ~]# vim /usr/local/hadoop/conf/slaves

将原先的内容删掉,添加下面两个从节点:

hadoop1hadoop2

之前因为我们是在伪分布模式下面的运行的hadoop,我们现在需要删除三台服务器hadoop目录下面的logs和tmp文件夹,不然hadoop会启动不起来:

[root@hadoop2 ~]# cd /usr/local/hadoop
[root@hadoop2 hadoop]# rm -rf logs tmp

8.下面就是在hadoop0上格式化namenode:

[root@hadoop0 hadoop]# hadoop namenode -format

9.下面就可以启动hadoop集群了:在hadoop0上执行如下的命令:

[root@hadoop0 bin]# start-all.sh
[root@hadoop0 bin]# jps3004 SecondaryNameNode3175 Jps3079 JobTracker
[root@hadoop1 conf]# jps1899 TaskTracker1969 Jps1834 DataNode

如果你想把secondNameNode迁移到其他的服务器上,你就需要在hadoop0上配置如下:

[root@hadoop0 conf]# vim /usr/local/hadoop/conf/masters

把里面的内容删掉,改成你所希望的secondnamenode服务器:

比如我改为:

hadoop1

这里我发现了一个问题,就是我的hadoop0的namenode不能启动,解决方法如下:

[root@hadoop0 bin]# vim /usr/local/hadoop/conf/core-site.xml
<configuration>   <property>     <name>fs.default.name</name>     <value>hdfs://hadoop0:9000</value>   </property>   <property>     <name>hadoop.tmp.dir</name>     <value>/home/hadoop/tmp</value>   </property></configuration>

把tmp目录的位置改到你的用户名下面的tmp文件夹下,重新格式化namenode,启动便可

0 0
原创粉丝点击