**
根据安装步骤一步一步仔仔细细做下来,基本上不会遇到问题。
我整个做下来,在启动zookeeper的时候node03无法启动,最终通过重新克隆虚拟机node05代替node03解决这个问题,后面这个错误有详细的解决方法
还有一些问题去hadoop logs里看看
路径:cd /opt/sym/hadoop-2.6.5/logs
打开:tail -100 文件名
修改hdfs-site.xml这种比较长的
可以通过xftp 把xml文件传到桌面,然后用edit with notepad++打开编辑,更方便检查修改,完成后把xml 文件传回相应的位置
**
Hadoop HA原理
为了防止单点故障(对于只有一个NameNode的集群,如果NameNode机器出现意外情况,比如机器挂掉了,或者节点软件或硬件的升级,将导致整个集群无法使用)采用高可用模式:
很多台 DataNode向NameNode汇报数据(比如block块发生什么变化,时间发生什么变化…)
有两台NameNode,一个处于active状态,另一个处于standby状态。在任一时刻,只有一个NameNode处于active状态,另一个处于standby状态。standby可以确保在集群出错时,命名空间状态已经完全同步了。
Active NameNode对外提供服务,比如处理来自客户端的RPC请求,而Standby NameNode仅同步Active NameNode的状态,以便能够在它失败时快速进行切换。
JournalNode管理2台NameNode数据交换,控制NameNode数据同步。
如果发现一台有问题,就切换active,当active状态的NameNode的命名空间有任何修改时,会告知大部分的JournalNode进程。standby状态的NameNode有能力读取JN中的变更信息,并且一直监控edit log的变化,把变化应用于自己的命名空间。
而JournalNode是手动切换的,下面讲的ZooKeeper是自动切换(集群里都是用zookeeper自动切换)。
ZooKeeper 有两个进程监视器ZooKeeper Failover Controller(ZKFC),每一台NameNode都有一台ZKFC监视它,当ZKFC监视的NameNode挂掉了,马上汇报给ZooKeeper,ZooKeeper查看另一台是Standby状态,赶快把Standby状态显示active,让它顶上去起作用。
1.四台服务器集群规划
2.分发jkd到node02、03、04
-scp jdk-7u67-linux-x64.rpm node02:pwd
-scp jdk-7u67-linux-x64.rpm node03:pwd
-scp jdk-7u67-linux-x64.rpm node04:pwd
并在Xshell的全部会话栏里一起ll,看jdk是否发送成功。
*注意:` 这一符号是数字1左边这个键
cd ll 一下看看jdk有没有发好
3.给node02、03、04分别安装jdk
- 分别在node02、03、04上执行rpm安装命令
-rpm -i jdk-7u67-linux-x64.rpm
- 在node01上cd /etc,在此目录下把profile文件分发到node02、03、04上。
-scp profile node04:pwd
- 利用Xshell全部会话栏,source /etc/profile
- 利用Xshell全部会话栏,jps,看02、03、04这三台机子的jdk是否装好。
4.同步所有服务器的时间
- -date 查看机子当前的时间。
(4台都看一下)
若时间不同步: - yum进行时间同步器的安装
-yum -y install ntp
- 执行同步命令
-ntpdate time1.aliyun.com 和阿里云服务器时间同步
5 .装机之前的配置文件检查
(1)查看HOSTNAME是否正确
-cat /etc/sysconfig/network
(2)查看IP映射是否正确
-cat /etc/hosts
若不正确,可以改文件,也可以把node01上的用scp分发过去。
(3)检查SELINUX=disabled
-cat /etc/sysconfig/selinux里是否
SELINUX=disabled
(4)查看防火墙是否关闭
service iptables status
6.NN与其他三台机子的免秘钥设置
- 在家目录下 ll –a看下有无.ssh文件,如果没有就ssh loalhost一下(ssh localhost后不要忘记exit)。
- -cd .ssh ,并ll查看一下