阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

深入Hadoop节点部署的策略

137次阅读
没有评论

共计 4309 个字符,预计需要花费 11 分钟才能阅读完成。

简介

每个 Hadoop 集群都包括不止一个节点。这些节点可以按功能分成几个组,比如 master 组,worker 组,client 组等等。每个组里面的节点都有不同的资源要求,比如 CPU,内存,存储。

在虚拟数据中心(DataCenter)中有一个或多个虚拟集群(Cluster),每个虚拟集群中有一个或多个主机(Host)。

节点部署是在保证每个节点资源需求的前提下,按照一定策略将 Hadoop 集群中的所有节点部署到物理主机上。

定义 Hadoop 集群

Hadoop 集群可以通过 UI 来定义,也可以通过 json 格式的文件来定义。这里以 json 文件为例来说明有哪些参数可以使用。

{

“nodeGroups” : [

{

“name”: “master”,

“roles”: [

“hadoop_namenode”,

“hadoop_jobtracker”

],

“instanceNum”: 1,

 “instanceType”: “LARGE”,

 “cpuNum”: 2,

 “memCapacityMB”:4096,

 “storage”: {

 “type”: “SHARED”,

 “sizeGB”: 20

 },

 “haFlag”:”on”,

 “rpNames”: [

 “rp1”

 ]

 },

上面的文件片段定义了 master 节点组(第 2 行“name”),其中包括一个节点(第 9 行“instanceNum”),每个节点需要 2 个虚拟 CPU(第 11 行“cpuNum”),4096MB 的内存(第 12 行“memCapacityMB”),20GB 共享的存储空间(第 13-16 行)。

简单的节点部署策略

节点部署的策略有多种,先介绍最简单的一种。因为在一般情况下,Hadoop 节点需要占用的磁盘空间是最紧张的资源,所以最基本的节点部署策略是按照磁盘空间的大小来考虑的。首先将所有 Hadoop 节点按照磁盘空间的要求从大到小进行排序,再将可用的 Host 按照剩余磁盘空间从大到小进行排序。第一步将磁盘空间需求最大的 Hadoop 节点部署到剩余磁盘空间最大的主机上去,第二步将磁盘空间需求次大的 Hadoop 节点部署到剩余磁盘空间次大的主机上去,以此类推。当然,如果后面碰到主机的剩余磁盘空间不够部署某个节点的话,前面拥有较大剩余磁盘空间的主机就会被考虑。这种策略的目的是尽量利用所有可用的主机来部署 Hadoop 节点,这样每个节点都有更多的资源可供使用。

更多详情见请继续阅读下一页的精彩内容:http://www.linuxidc.com/Linux/2013-10/92031p2.htm

相关阅读

Hadoop 2.0 安装向导 (0.23.x) http://www.linuxidc.com/Linux/2012-05/61463.htm

Hadoop 1.2.1 单节点安装 (Single Node Setup) 步骤 http://www.linuxidc.com/Linux/2013-08/89377.htm

在 CentOS 上安装 Hadoop http://www.linuxidc.com/Linux/2013-08/88600.htm

Ubuntu 12.04 安装 Hadoop http://www.linuxidc.com/Linux/2013-08/88187.htm

CentOS 6.3 x86_64 安装与配置 Hadoop-1.0 http://www.linuxidc.com/Linux/2013-07/87959.htm

Hadoop 入门 –Hadoop2 伪分布式安装 http://www.linuxidc.com/Linux/2013-06/86403.htm

数据和计算分离的节点部署策略

随着 Hadoop 的发展,为了提供更好的弹性和实现真正的多租户,Hadoop 数据节点(DataNode)和计算节点(ComputeNode)分开部署的方式开始流行起来。在这种模式下,为了提供最好的性能,需要把数据节点和计算节点尽可能的部署在相同的主机上。而前面介绍的简单节点部署策略由于没有考虑这种要求,会出现下面这种不好的部署方案。

深入 Hadoop 节点部署的策略

图中有 2 个数据节点(DN)被放在了一个主机上,而有 2 个计算节点(CN)被放在了没有数据节点的主机上。

为了实现数据节点和计算节点分离下的最优部署,需要在定义 Hadoop 集群时指定一些参数。

我们先来看数据节点的定义:

 {

 “name”: “data”,

 “roles”: [

 “hadoop_datanode”

 ],

 “instanceNum”: 3,

 “instanceType”: “MEDIUM”,

 “cpuNum”: 2,

 “memCapacityMB”:2048,

 “storage”: {

 “type”: “LOCAL”,

 “sizeGB”: 50,

 “dsNames4Data”: [“DSLOCALSSD”],

 “dsNames4System”: [“DSNDFS”]

 }

 “placementPolicies”: {

 “instancePerHost”: 1,

 “groupRacks”: {

 “type”: “ROUNDROBIN”,

 “racks”: [“rack1”, “rack2”, “rack3”]

 }

数据节点在每个主机上只部署 1 个(第 38 行“instancePerHost”:1),一共需要 3 个数据节点(第 27 行“instanceNum”:3)。

再看计算节点的定义:

{

“name”: “compute”,

“roles”: [

“hadoop_tasktracker”

],

“instanceNum”: 6,

“instanceType”: “SMALL”,

“cpuNum”: 2,

“memCapacityMB”:2048,

“storage”: {

“type”: “LOCAL”,

“sizeGB”: 10

}

“placementPolicies”: {

“instancePerHost”: 2,

“groupAssociations”: [{

“reference”: “data”,

“type”: “STRICT”

}]

}

},

计算节点在每个主机上部署 2 个(第 59 行“instancePerHost”:2),并且必须部署在有数据节点的主机上(第 60 行“groupAssociations”和第 61 行“reference”:“data”)。

在这样的定义下,Hadoop 集群部署后将是下面这种理想的状态:

深入 Hadoop 节点部署的策略

3 个数据节点(DN)被分别部署在三台主机上,同时每个主机上还部署了 2 个计算节点(CN)。

机架(Rack)感知的节点部署策略

对于大规模的 Hadoop 集群,会在数据中心内使用多个机架(Rack)。通过指定机架名称,可以把特定的 Hadoop 节点组部署在指定的机架上。这种部署方式,可以在某个机架出现问题的时候,让 Hadoop 集群能够在正常工作的机架上持续运行。

更多 Hadoop 相关信息见Hadoop 专题页面 http://www.linuxidc.com/topicnews.aspx?tid=13

简介

每个 Hadoop 集群都包括不止一个节点。这些节点可以按功能分成几个组,比如 master 组,worker 组,client 组等等。每个组里面的节点都有不同的资源要求,比如 CPU,内存,存储。

在虚拟数据中心(DataCenter)中有一个或多个虚拟集群(Cluster),每个虚拟集群中有一个或多个主机(Host)。

节点部署是在保证每个节点资源需求的前提下,按照一定策略将 Hadoop 集群中的所有节点部署到物理主机上。

定义 Hadoop 集群

Hadoop 集群可以通过 UI 来定义,也可以通过 json 格式的文件来定义。这里以 json 文件为例来说明有哪些参数可以使用。

{

“nodeGroups” : [

{

“name”: “master”,

“roles”: [

“hadoop_namenode”,

“hadoop_jobtracker”

],

“instanceNum”: 1,

 “instanceType”: “LARGE”,

 “cpuNum”: 2,

 “memCapacityMB”:4096,

 “storage”: {

 “type”: “SHARED”,

 “sizeGB”: 20

 },

 “haFlag”:”on”,

 “rpNames”: [

 “rp1”

 ]

 },

上面的文件片段定义了 master 节点组(第 2 行“name”),其中包括一个节点(第 9 行“instanceNum”),每个节点需要 2 个虚拟 CPU(第 11 行“cpuNum”),4096MB 的内存(第 12 行“memCapacityMB”),20GB 共享的存储空间(第 13-16 行)。

简单的节点部署策略

节点部署的策略有多种,先介绍最简单的一种。因为在一般情况下,Hadoop 节点需要占用的磁盘空间是最紧张的资源,所以最基本的节点部署策略是按照磁盘空间的大小来考虑的。首先将所有 Hadoop 节点按照磁盘空间的要求从大到小进行排序,再将可用的 Host 按照剩余磁盘空间从大到小进行排序。第一步将磁盘空间需求最大的 Hadoop 节点部署到剩余磁盘空间最大的主机上去,第二步将磁盘空间需求次大的 Hadoop 节点部署到剩余磁盘空间次大的主机上去,以此类推。当然,如果后面碰到主机的剩余磁盘空间不够部署某个节点的话,前面拥有较大剩余磁盘空间的主机就会被考虑。这种策略的目的是尽量利用所有可用的主机来部署 Hadoop 节点,这样每个节点都有更多的资源可供使用。

更多详情见请继续阅读下一页的精彩内容:http://www.linuxidc.com/Linux/2013-10/92031p2.htm

相关阅读

Hadoop 2.0 安装向导 (0.23.x) http://www.linuxidc.com/Linux/2012-05/61463.htm

Hadoop 1.2.1 单节点安装 (Single Node Setup) 步骤 http://www.linuxidc.com/Linux/2013-08/89377.htm

在 CentOS 上安装 Hadoop http://www.linuxidc.com/Linux/2013-08/88600.htm

Ubuntu 12.04 安装 Hadoop http://www.linuxidc.com/Linux/2013-08/88187.htm

CentOS 6.3 x86_64 安装与配置 Hadoop-1.0 http://www.linuxidc.com/Linux/2013-07/87959.htm

Hadoop 入门 –Hadoop2 伪分布式安装 http://www.linuxidc.com/Linux/2013-06/86403.htm

正文完
星哥说事-微信公众号
post-qrcode
 
星锅
版权声明:本站原创文章,由 星锅 2022-01-20发表,共计4309字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中