5-3 hadoop集群搭建

来源:互联网 发布:js方法参数为对象 编辑:程序博客网 时间:2024/06/06 01:51

在我们伪分布式里面hdfs老大只有一个,现在,hdfs为了高可靠性,要有多个namenode【如果一个namenode死了之后,整个就瘫痪了】,进行实时切换,

hadoop2.0把namenode进行了一个抽象,变成了一个nameservice,在一个nameservice里面,有两个namenode。


但是,有两个namenode是不是得有个“人”来协调,否则要不都是active,要不都是stand by。这个协调就是zookeeper进行的一个选举,确保整个nameservice只有一个活跃的namenode。

zookeeper可以用来进行切换,把某个standby变成active


namenode的瓶颈是内存,无法存储千亿以上的数据,我们还可以通过水平扩展来解决,【即由一个nameservice变成了两个nameservice】,

hadoop保持高可靠性的原理


这个是hadoop保持高可靠性的原因:

一个namenode是active,另一个是stand by,他们的进程协调依赖ZK,每个namenode所在的机器都有一个JKFC【FaloverControler】,它给namenode发送指令,一个是切换,也要监控namenode的状态,一旦down掉之后,FC会把信息发送给ZooKeeper,另一个【右边一个】JKFC从ZK里面得到这个信息,它给namenode发送一个命令,让它从stand by切换到active状态。

总结:

在没有出现问题之前,在nameservice下面有两个namenode,活跃状态namenode会把edits写入到中间那个绿色的东西里【是什么忘了,叫介质】,实时同步到standby,一旦介质发生变化,stand by从里面读,FC会监控namenode的状态,将信息发送给ZK,而且ZK里面的信息是同步的,从另一边得到之后,给stand by发送指令,让他完成切换,因此,我的FC必须要依赖ZooKeeper 

Hadoop在中间的介质里,一种是使用NFS【网络文件系统】,一种是使用jornal node,用来存放edits文件。


原理介绍清楚之后,开始搭建集群:

集群规划:
主机名  IP                       安装的软件            运行的进程
itcast01  192.168.1.201 jdk、hadoop     NameNode、DFSZKFailoverController
itcast02  192.168.1.202 jdk、hadoop    NameNode、DFSZKFailoverController
itcast03  192.168.1.203 jdk、hadoop      ResourceManager
itcast04  192.168.1.204 jdk、hadoop、zookeeperDataNode、NodeManager、JournalNode、QuorumPeerMain
itcast05  192.168.1.205 jdk、hadoop、zookeeperDataNode、NodeManager、JournalNode、QuorumPeerMain
itcast06  192.168.1.206 jdk、hadoop、zookeeperDataNode、NodeManager、JournalNode、QuorumPeerMain

先看hadoop集群的规划:IP地址在上一节已经配置好了,jdk和zookeeper也安装好了,接下来要安装hadoop,

6台机器,每台机器都要安装一些进程,namenode要把信息汇报给ZK,所以每个namenode上面都有一个DFSZK,

另一台机器安装RM,【为什么不跟namenode放一起?可以,但是竞争资源】,要分开部署,因为都是老大,

接下来,是datanode(namenode的小弟)和nodemanager(yarn的小弟),它们最好要放在一起,【nodemanager最后要读取数据,最好从本地读取,datanode里面存的数据】

JournalNode用来存放共享的share edits【中间深绿的那个】。


集群搭建有空再弄(有一个文件hadoop2.2.0集群搭建.txt)


属性有好几十个【因为功能变强大了】,配置文件根据那个txt文件来部署,自己弄,就不写了

根据规划:01,02上运行NN,DFSZKF,03运行RM,040506运行

我在01上先安装hadoop,

修改配置文件,以前配置伪分布式的时候要修改5个文件,现在要修改6个配置文件

core-site hdfs-site yarn-site mapred-site env slaves【这个决定你小弟在哪台机器上】

找Java_HOME的方法:echo $Java_HOME回车

现在要添加三个property,属性1:fs.defalutFS,以前是配主机名+端口号,但是现在,我们把它抽象成一个nameservice,以后我要连接nameservice,而不是连接namenode,nameservice帮我切换,它根据哪个是活跃的然后连哪个


2.hadoop运行时会产生文件,这些是文件的存放目录

3.告诉我们zookeeper的地址,多个用逗号来分隔,

【未完成,看不下去了。】

0 0
原创粉丝点击