Skip to content

Instantly share code, notes, and snippets.

@sritchie
Created March 30, 2011 17:57
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save sritchie/894884 to your computer and use it in GitHub Desktop.
Save sritchie/894884 to your computer and use it in GitHub Desktop.
(defmacro defphase
[name argvec & body]
`(def ~name
(phase-fn ~argvec ~@body)))
(defmacro phase-fn
[argvec & body]
`(fn [request# ~@argvec]
(-> request#
~@body)))
;;examples
(defphase name-node
"Run a Hadoop name node."
[data-dir]
(format-hdfs)
(hadoop-service "namenode" "Name Node")
(hadoop-command "dfsadmin" "-safemode" "wait")
(hadoop-command "fs" "-mkdir" data-dir)
(hadoop-command "fs" "-chmod" "+w" data-dir))
(defphase secondary-name-node
"Run a Hadoop secondary name node"
[]
(hadoop-service "secondarynamenode" "secondary name node"))
(defphase job-tracker
"Run a Hadoop job tracker"
[]
(hadoop-service "jobtracker" "job tracker"))
(defphase data-node
"Run a Hadoop data node"
[]
(hadoop-service "datanode" "data node"))
(defphase task-tracker
"Run a Hadoop task tracker"
[]
(hadoop-service "tasktracker" "task tracker"))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment