OSDN Git Service

update extra properties for Ptolemy hadoop cluster.
[metasearch/grid-chef-repo.git] / roles / hadoop-ptolemy.rb
1 $LOAD_PATH.push("#{File.dirname(__FILE__)}/../_lib")
2 #${chef-repo}/_lib/grid.rb
3 require 'grid'
4
5 cluster_name = 'ptolemy'
6 cluster_sym = cluster_name.to_sym
7
8 name "hadoop-#{cluster_name}"
9 description "#{cluster_name.capitalize} Hadoop cluster node"
10
11 run_list(
12   'role[node_commons]',
13   # LDAP (option)
14   #'role[nameservice-client-grid]',
15   'role[hadoop]'
16 )
17
18 #env_run_lists()
19
20 grid_vol_root = '/grid/vol'
21 hadoop_attributes = {
22   # core-site.xml
23   'this.cluster.name' => cluster_name, 
24   'this.domain' => Grid::DOMAIN,
25   'this.namenode.fqdn' => '${this.cluster.name}-nn.${this.domain}',
26   'fs.checkpoint.dir' => "#{grid_vol_root}/0/var/lib/${user.name}/checkpoint",
27   #'fs.checkpoint.dir' => "#{grid_vol_root}/0/var/lib/${user.name}/checkpoint,/export/home/${user.name}/var/lib/checkpoint",
28   # hdfs-site.xml
29   'this.secondary.namenode.fqdn' => '${this.cluster.name}-cn.${this.domain}',
30   'dfs.name.dir' => "#{grid_vol_root}/0/var/lib/${user.name}/name",
31   #'dfs.name.dir' => "#{grid_vol_root}/0/var/lib/${user.name}/name,/export/home/${user.name}/var/lib/name",
32   'dfs.replication' => '2',
33   #'dfs.replication' => '3',  # default, recommended.
34   # mapred-site.xml
35   'this.jobtracker.fqdn' => '${this.cluster.name}-jt.${this.domain}',
36   'this.jobhistory.fqdn' => '${this.cluster.name}-jt.${this.domain}',
37   #'this.jobhistory.fqdn' => '${this.cluster.name}-jh.${this.domain}',
38   'extra_configs' => {
39     # e.g. 'core-site.xml' => {'k1' => 'v1', 'k2' => 'v2'},
40     'hadoop-env.sh' => {
41       #'HADOOP_HEAPSIZE' => '2000',               # default: 1000 MB
42       #'HADOOP_NAMENODE_INIT_HEAPSIZE' => '2000'  # default: 1000 MB (ver. 2.x)
43       #'HADOOP_NAMENODE_OPTS' => '',
44       #'HADOOP_SECONDARYNAMENODE_OPTS' => '',
45       #'HADOOP_DATANODE_OPTS' => '',
46       #'HADOOP_BALANCER_OPTS' => '',
47       #'HADOOP_JOBTRACKER_OPTS' => '',
48     },
49     'yarn-env.sh' => {  # ver. 2.x
50       #'YARN_HEAPSIZE' => '2000'  # default: 1000 MB
51       #'YARN_RESOURCEMANAGER_OPTS' => '',
52       #'YARN_NODEMANAGER_OPTS' => '',
53     },
54     'mapred-env.sh' => {  # ver. 2.x
55       #'HADOOP_JOB_HISTORYSERVER_HEAPSIZE' => '2000',  # default: 1000 MB
56       #'HADOOP_JOB_HISTORYSERVER_OPTS' => '',
57     },
58     'core-site.xml' => {
59     },
60     'hdfs-site.xml' => {
61       'dfs.block.size' => '134217728',  # default: 67108864 (bytes)
62       #'dfs.blocksize' => '134217728',  # default: 134217728 (bytes) (ver. 2.x)
63       #'dfs.datanode.du.reserved' => '0',  # default: 0 (byte)
64       # with HBase
65       #'dfs.support.append' => 'true',
66       #'dfs.datanode.max.xcievers' => '4096',  # default: 4096 (ver. 1.1 or later), 256 (older ver.)
67       #'dfs.datanode.max.transfer.threads' => '4096',  # default: 4096 (ver. 2.x)
68     },
69     'yarn-site.xml' => {  # ver. 2.x
70       #'yarn.nodemanager.resource.cpu-vcores' => '8',  # default: 8
71       #'yarn.nodemanager.resource.memory-mb' => '8192',  # default: 8192
72     },
73     'mapred-site.xml' => {
74       # map tasks:reduce tasks = 4:3 or 2:1 or ...
75       'mapred.tasktracker.map.tasks.maximum' => '4',     # default: 2
76       'mapred.tasktracker.reduce.tasks.maximum' => '2',  # default: 2
77       #'mapred.child.java.opts' => '-Xmx1000m',           # default: -Xmx200m
78       'mapred.reduce.slowstart.completed.maps' => '0.80',  # default: 0.05
79       #'mapreduce.job.reduce.slowstart.completedmaps' => '0.80',  # default: 0.05 (ver. 2.x)
80       #'tasktracker.http.threads' => '80',            # default: 40
81       #'mapreduce.tasktracker.http.threads' => '80',  # default: 40 (ver. 2.x)
82       #'mapred.reduce.parallel.copies' => SQRT(nodes),            # default: 5
83       #'mapreduce.reduce.shuffle.parallelcopies' => SQRT(nodes),  # default: 5 (ver. 2.x)
84       'mapred.submit.replication' => '2',                 # default: 10
85       #'mapreduce.client.submit.file.replication' => '3',  # default: 10 (ver. 2.x)
86     },
87     'capacity-scheduler.xml' => {}
88   }
89 }
90
91 default_attributes(
92   'grid' => {
93     'vol_root' => grid_vol_root,
94     'max_vol_nums' => '4'
95   },
96   'hadoop' => hadoop_attributes
97 )
98
99 #override_attributes()
100