Hadoop集群环境安装,hadoop集群环境
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
评论暂时关闭