Hadoop集群环境安装,hadoop集群环境


工具:

虚拟机virtualbox.  JDK  hadoop1.1.2



Hadoop集群环境的搭建:

分布结构

         主节点(1个,是hadoop):NameNode、JobTracker、SecondNameNode

         从节点(2个,是hadoop1、hadoop2):DataNode、Tasktracker

 

Virtuabox里复制出两个节点,作为从节点。改ip.

192.168.56.100

 

以下命令来使设置生效。

servicenetwork restart

 

注意:当上述命令输入之后,出现了问题,这是delete掉以前的网络连接,重启系统,在自动生成的网络连接里改IP。

 

该主机名:

vi  /etc/sysconfig/network

将HOSTNAME改为hadoop1 ,重启使主机名生效。

 

如果改主节点的主机名后,要再改:

Vi  /etc/hosts #将主机名改掉。

Hadoop 里的配置也要改关于主机的部分:

cd/usr/local/Hadoop/conf

vicore-site.xml

vimapred-site.xml

 

 

另个节点相同操作,对网络进行配置。

 

把复制的两个节点ssh配置删了。

cd  /root/.ssh

ls

rm–rf  *

把/usr/local 下的东西全部删了

cd/usr/local

ls

rm–rf  *

把以前配置的环境变量内容也删了

vi  /etc/profile

 

另个节点相同操作,直接如下操作:

rm -rf/root/.ssh/*

rm -rf/usr/local/*

vi/etc/profile

 

各节点重新产生ssh加密文件:

ssh-keygen–t rsa

 

[root@hadoop1local]# cd /root/.ssh

[root@hadoop1.ssh]# cat id_rsa.pub >> authorized_keys

[root@hadoop1.ssh]# ssh localhost

Theauthenticity of host 'localhost (::1)' can't be established.

RSA keyfingerprint is 2a:35:90:55:ab:b0:74:3c:e4:8a:fc:16:ad:c9:28:21.

Are yousure you want to continue connecting (yes/no)? yes

Warning:Permanently added 'localhost' (RSA) to the list of known hosts.

Lastlogin: Sun May 10 15:05:52 2015 from 192.168.56.1

[root@hadoop1~]#exit

编辑各个节点的/etc/hosts,在该文件中含有所有节点的ip与hostname的映射信息

查看是否ssh可以解析本主机名

不能解析要去/etc/hosts 里进行配置 例如:

192.168.56.101hadoop1

 

另一节点是相同配置的

 

如果改了主节点的主机名的话,也要重新产生ssh机密文件,跟以上的操作是一样的。

各主机要相互访问,ping通。要对hosts 文件进行配置

在hosts文件里加入相应ip 和主机名,例如在主机hadoop里加入

192.168.56.101hadoop1

192.168.56.102hadoop2

 

其他两个节点相同做法。这里有个问题如果是100台机器这样操作不累死了?解决办法:

把一台配置好的,我们可以直接把它复制到另两个节点上。这里涉及ssh的免密码登陆。

两两节点之间的SSH免密码登陆

把hadoop的公钥复制到hadoop1上;

ssh-copy-id  -i hadoop1

 

测试是否可以免密码登陆;

sshhadoop1

 

再把hadoop2的公钥复制到hadoop1上;

ssh-copy-id  -i hadoop1

 

测试是否可以免密码登陆;

sshhadoop2

 

hadoop和hadoop2节点应该有相同的配置。为了方便,如下操作:

在hadoop1下 :

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

root@hadoop'spassword:

authorized_keys                                100% 1181     1.2KB/s  00:00

 

在hadoop里测试看是否复制过去了

more/root/.ssh/authorized_keys

 

同理复制给hadoop2

 

把hadoop的hadoop目录下的logs和tmp删除

[root@hadooplocal]# cd hadoop

[root@hadoophadoop]# ls

bin          hadoop-ant-1.1.2.jar          ivy          README.txt

build.xml    hadoop-client-1.1.2.jar       ivy.xml      sbin

c++          hadoop-core-1.1.2.jar         lib          share

CHANGES.txt  hadoop-examples-1.1.2.jar     libexec      src

conf         hadoop-minicluster-1.1.2.jar  LICENSE.txt tmp

contrib      hadoop-test-1.1.2.jar         logs         webapps

docs         hadoop-tools-1.1.2.jar        NOTICE.txt

[root@hadoophadoop]# rm -rf logs/

[root@hadoophadoop]# rm -rf tmp/

 

把hadoop中的jdk、hadoop文件夹复制到hadoop1和hadoop2节点

scp –r/usr/local/jdk  Hadoop1:/usr/local/

scp –r/usr/local/hadoop Hadoop1:/usr/local/

scp –r/usr/local/jdk  Hadoop2:/usr/local/

scp –r/usr/local/hadoop Hadoop2:/usr/local/

 
把hadoop的/etc/profile复制到hadoop1和hadoop2节点,在目标节点中执行source  /etc/profile

[root@hadooplocal]# scp /etc/profile  hadoop1:/etc/

profile                            100% 1986     1.9KB/s  00:00

 

[root@hadoop1local]# source /etc/profile

 

[root@hadooplocal]# scp /etc/profile  hadoop2:/etc/

profile                            100% 1986     1.9KB/s  00:00

 

[root@hadoop2~]# source /etc/profile

 

编辑hadoop的配置文件slaves,改为从节点的hostname,分别是hadoop1和hadoop2

[root@hadooplocal]# cd hadoop/conf

[root@hadoopconf]# vi slaves

 

格式化

在hadoop节点执行hadoopnamenode –format


启动

在hadoop节点执行start-all.sh

浏览器查看启动成功后的界面:


注:对于配置文件core-site.xml和mapred-site.xml在所有节点中都是相同的内容。

 

如何将SecondaryNameNode 和NameNode分布在不同的节点上。

在hadoop 节点下,修改masters内容

[root@hadoopconf]# vi masters

 

比如将里面的localhost改为Hadoop1

效果如下:

Hadoop:

[root@hadoopconf]# jps

7008JobTracker

6836NameNode

7105 Jps

 

Hadoop1:

[root@hadoop1local]# jps

6315DataNode

6470TaskTracker

6561 Jps

6384SecondaryNameNode

 

动态的增加一个hadoop节点

1) 配置新节点的环境

2)  把新节点的hostname配置到主节点的slaves文件中

3) 在新节点,启动进程

                            hadoop-daemon.shstart datanode

                            hadoop-daemon.shstart tasktracker

4)在主节点执行脚本 hadoop dfsadmin -refreshNodes

 

动态的下架一个hadoop节点

模拟:

[root@hadoopconf]# jps

7008JobTracker

7203DataNode

7284TaskTracker

6836NameNode

7401 Jps

[root@hadoopconf]# kill -9 7203

 

在浏览器界面会看到hadoop的lastcontact值会变大,启动datanode它会向namenode汇报,如果联系不上值就会变大,该值为本次汇报的时间 –上次联系的时间。



安全模式

安全模式下 不可以增删改,但可以查看

如下方式可以查看是否在安全模式下

[root@hadoopconf]# hadoop dfsadmin -safemode get

Safe modeis OFF

如何进入进入安全模式如下:

[root@hadoopconf]# hadoop dfsadmin -safemode enter

Safe modeis ON

[root@hadoopconf]# hadoop dfsadmin -safemode get

Safe modeis ON

离开安全模式:

[root@hadoopconf]# hadoop dfsadmin -safemode leave

Safe modeis OFF

[root@hadoopconf]# hadoop dfsadmin -safemode get

Safe modeis OFF



相关内容