在业内存在着一种看起来比较离谱的搭建方式,叫计算节点与存储节点分离,注意这里说的是节点分离,而我们通常配置好hadoop的时候,它是磁盘式分离。大家可以看我此前发布的hadoop搭建手册上看到,在hdfs和yarn配置文件中。分别指定了datanode和nodemanager在运行时存储文件的路径。
说它比较离谱,是因为hadoop架构不直接支持将这两者分开,hadoop本身的一大优势就是依靠机架感知对计算数据所涉猎的数据块,优先拉对任务容器来说最近的本地副本,而这种存储和计算节点分开搭建的方式抛弃了部分这种优势,之所以说是部分是指在正常的搭建体系中, nodemanager和datanode两种角色共存在一个节点上,如果nodemanager承载的任务所需要的数据块刚好也在这个所在的节点上,那就拉取这个节点上的副本,所以说这种节点分离的搭建方式抛弃了这部分的优势,但是也有好处,就是可以省钱,通过这种方式,把高性能机器放在计算上,其他大量的廉价机器在保证磁盘读写IO性能上不出大问题就可以放在集群中存储数据。
通常这种样式的搭建方式,一般都会放最少20台高性能机器,其他都是廉价的存储节点,下面就来看一下怎么搭建这个玩意,具体搭建之前我要再说明一点hadoop本身不直接支持把计算和存储节点分离,注意我用的字眼是直接
,意思就是说你没有办法通过配置来直接指定哪台节点被明确的区分为存储节点或计算节点,但是你能够通过一些hadoop提供的后期使用上的配置从运行方面达到这一点需求。
言归正传,本篇只介绍计算和存储节点分离搭建要注意的配置,至于其他的就不再展示了,这里给大家提供我之前发的大家文档
Hadoop3.x==》https://blog.youkuaiyun.com/dudadudadd/article/details/139547748
Hadoop2.x==》https://blog.youkuaiyun.com/dudadudadd/article/details/109858613
我在本地准备了三个节点的Hadoop测试集群,他们负责的角色如下
域名 负责角色
hdp4 NameNode、DataNode、NodeManager、JournalNode、DFSZKFailoverController、Zookeeper
hdp5 NameNode(备用)、DataNode、ResourceManager、NodeManager、Jour