[一旦解決] Sparkのインストールにハマる[5]

結構いいところまでいったのに,
Sparkのインストールにハマる[2] - なぜか数学者にはワイン好きが多い
そこから強引に走ったのが間違いでした.私らしくない.

たった一行のエラーなので,訂正できないかと調べてみました.

ググると神の声が.
Apache Spark Developers List - [GitHub] spark pull request: fix compile error for hadoop CDH 4.4+

    +   * From Hadoop CDH 4.4.0+ (2.1.0-beta),
    +   * AMResponse is merged into AllocateResponse,
    +   * so we don't need to call getAMResponse(), just use AllocateResponse directly. 

そもそもエラーになっている,メソッド呼び出し

[error] /usr/local/spark-0.9.1-bin-hadoop2/yarn/alpha/src/main/scala/org/apache/spark/deploy/yarn/YarnAllocationHandler.scala:106: value getAMResponse is not a member of org.apache.hadoop.yarn.api.protocolrecords.AllocateResponse
[error]     val amResp = allocateWorkerResources(workersToRequest).getAMResponse

が,不必要なようです.そう言われると,確かに
http://archive.cloudera.com/cdh4/cdh/4/hadoop-2.0.0-cdh4.4.0/api/src-html/org/apache/hadoop/yarn/api/protocolrecords/AllocateResponse.html
getAMResponseって無いんです.

そこで,ソースをちょっとだけ書き換えます.

emacs /usr/local/spark-0.9.1-bin-cdh4/yarn/alpha/src/main/scala/org/apache/spark/deploy/yarn/YarnAllocationHandler.scala
//    val amResp = allocateWorkerResources(workersToRequest).getAMResponse
    val amResp = allocateWorkerResources(workersToRequest)

そしてアセンブリを再実行.

$ time SPARK_HADOOP_VERSION=2.0.0-cdh4.4.0 SPARK_YARN=true sbt/sbt clean assembly

(中略)
[info] Done packaging.
[info] Packaging /usr/local/spark-0.9.1-bin-cdh4/examples/target/scala-2.10/spark-examples-assembly-0.9.1.jar ...
[info] Done packaging.
[info] Done packaging.
[success] Total time: 318 s, completed May 12, 2014 2:05:08 PM

real    5m31.927s
user    13m35.401s
sys     2m44.467s

エラーは出ませんでした.

イケるかな?