1 $LOAD_PATH.push("#{File.dirname(__FILE__)}/../_lib")
2 #${chef-repo}/_lib/grid.rb
5 cluster_name = 'ptolemy'
6 cluster_sym = cluster_name.to_sym
8 name "hadoop-#{cluster_name}"
9 description "#{cluster_name.capitalize} Hadoop cluster node"
14 #'role[nameservice-client-grid]',
20 grid_vol_root = '/grid/vol'
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",
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.
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}',
39 # e.g. 'core-site.xml' => {'k1' => 'v1', 'k2' => 'v2'},
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' => '',
49 'yarn-env.sh' => { # ver. 2.x
50 #'YARN_HEAPSIZE' => '2000' # default: 1000 MB
51 #'YARN_RESOURCEMANAGER_OPTS' => '',
52 #'YARN_NODEMANAGER_OPTS' => '',
54 'mapred-env.sh' => { # ver. 2.x
55 #'HADOOP_JOB_HISTORYSERVER_HEAPSIZE' => '2000', # default: 1000 MB
56 #'HADOOP_JOB_HISTORYSERVER_OPTS' => '',
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)
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)
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
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)
87 'capacity-scheduler.xml' => {}
93 'vol_root' => grid_vol_root,
96 'hadoop' => hadoop_attributes
99 #override_attributes()