Cascalog:Up and Run

<h1>運行 cascalog</h1>html

<p>通過幾天的掙扎(業餘時間),終於把 cascalog 運行起來。由於 hadoop 集羣不是本身搭的,有一些關於安全方面的設置,對初學形成了必定的麻煩。反覆嘗試才跑起來。</p>node

<h2>建立項目</h2>apache

<p>仍是用 lein 來管理項目的依賴和打包。先運行 <code>lein new cascalog-demo</code> 來建立項目。修改 project.clj 以下:</p>api

(defproject cascalog-demo "0.1.0-SNAPSHOT"
  :description "FIXME: write description"
  :jvm-opts ["-Dmapred.queue.job.name=apg_qashort_p3"]
  :url "http://example.com/FIXME"
  :license {:name "Eclipse Public License"
            :url "http://www.eclipse.org/legal/epl-v10.html"}
  :dependencies [[org.clojure/clojure "1.5.1"]
                 [org.apache.hadoop/hadoop-common "0.23.8"]
                 [org.apache.hadoop/hadoop-hdfs "0.23.8"]
                 [org.apache.hadoop/hadoop-mapreduce-client-core "0.23.8"]
                 [org.apache.hadoop/hadoop-mapreduce-client-common "0.23.8"]
                 [cascalog/cascalog-core "2.0.0-SNAPSHOT"]]
  :resource-paths ["/home/gs/conf/current" "resources"]
  :source-paths ["src/clj"]
  :aot [cascalog-demo.demo]
  :main cascalog-demo.demo)

<h2>添加 hadoop 配置</h2>安全

<p>由於是直接在 hadoop 集羣上嘗試,沒有嘗試本地開發模式,因此須要考慮 hadoop 的集羣配置。沒有加配置前會報錯找不到 namenode 之類的錯誤,後來又碰到通不過 KERBEROS 認證,默認的 hadoop queue 不可用等等錯誤。</p>eclipse

<p>在 project.clj 中的 <code>:resource-paths ["/home/gs/conf/current" "resources"]</code> 一行就是添加一些 hadoop 的配置。 其中 /home/gs/conf/current 是集羣上的 $HADOOP_CONF_DIR 目錄,包含了集羣的基本配置。resources 是當前項目中的目錄,其中會包含一個 job-conf.clj 文件,這個文件包含了一些提交 job 時的配置,內容以下:</p>jvm

{"hadoop.tmp.dir" "/tmp"
 "mapreduce.job.complete.cancel.delegation.tokens" "false"
 "mapred.job.queue.name" "queue_name"}

<h2>Demo 代碼</h2>oop

<p>建立文件 src/clj/cascalog_demo/demo.clj, 內容以下:</p>url

(ns cascalog-demo.demo
  (:use cascalog.api)
  (:use cascalog.playground)
  (:gen-class))
(defn -main
  []
  (?- (stdout) sentence))

<h2>打包運行</h2>code

<p>用 lein 把全部依賴包,以防在集羣上沒有權限裝須要的 jar 包:<code>lein uberjar</code></p>

<p>完成後會生成 target/cascalog_test-0.1.0-SNAPSHOT-standalone.jar</p>

<p>運行包:<code>hadoop jar target/cascalog_test-0.1.0-SNAPSHOT-standalone.jar</code></p>

相關文章
相關標籤/搜索