共计 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)分开部署的方式开始流行起来。在这种模式下,为了提供最好的性能,需要把数据节点和计算节点尽可能的部署在相同的主机上。而前面介绍的简单节点部署策略由于没有考虑这种要求,会出现下面这种不好的部署方案。
图中有 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 集群部署后将是下面这种理想的状态:
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