5

Cloudera Quickstart VM 5.3.0 (Windows 7 の Virtual Box 4.3 で実行) を使用しており、Spark (YARN 上) を学習したいと考えていました。

Cloudera Manager を起動しました。サイドバーにすべてのサービスが表示されます。Spark がありますが、スタンドアロン モードです。「新しいサービスを追加」をクリックし、「Spark」を選択します。次に、このサービスの依存関係のセットを選択する必要があります。HDFS/YARN/zookeeper を選択する必要はありません。次のステップでは、ヒストリー サーバーとゲートウェイを選択する必要があります。VM をローカル モードで実行するので、localhost のみを選択できます。

「続行」をクリックすると、このエラーが発生します (+ 69 トレース):

サーバーエラーが発生しました。次の情報を Cloudera に送信します。

パス: http://localhost:7180/cmf/clusters/1/add-service/reviewConfig

バージョン: Cloudera Express 5.3.0 (20141216-1458 git: e9aae1d1d1ce2982d812b22bd1c29ff7af355226 で jenkins によってビルドされた #155)

org.springframework.web.bind.MissingServletRequestParameterException: org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter$ServletHandlerMethodInvoker raiseMissingParameterException() の AnnotationMethodHandlerAdapter.java 行 738 に必要な長いパラメータ 'serviceId' が存在しません

インターネット接続が必要かどうかはわかりませんが、VM でインターネットに接続できないことは正確です。(編集:インターネット接続でも同じエラーが発生します)

このサービスを追加する方法がわかりません。ゲートウェイの有無にかかわらず、多くのネットワーク オプションを試しましたが、うまくいきませんでした。既知の問題を確認しました。なし...

このエラーを解決する方法、または回避する方法を誰かが知っていますか? 助けてくれてありがとう。

4

1 に答える 1

2

ジュリアン

あなたの質問に答える前に、Hadoop 5 (CDH5) の Cloudera ディストリビューションでの Spark に関する一般的なメモをいくつか書きたいと思います。

  1. Spark は、(1) ローカル、(2) Spark 独自のスタンドアロン マネージャー、(3) Hadoop YARN、Apache Mesos、Amazon EC2 などの他のクラスター リソース マネージャーの 3 つの異なる形式で実行されます。
  2. Spark は、(1) と (2) の CHD 5 ですぐに使用できます。コマンドを使用するか、引数を渡さずに Pythonの場合 は、Scala でローカルのインタラクティブな Spark セッションを開始できます。インタラクティブな Scala および Python インタープリターは、R​​esilient Distributed Datasets (RDD) を使用したプログラミングの学習に役立つことがわかりました。spark-shellpyspark

CDH 5.3.x ディストリビューションでエラーを再現できました。あなたが発見したバグの功績を認めるつもりはありませんでしたが、フィードバックを求めて Cloudera 開発者コミュニティに投稿しました。

QuickStart 疑似分散環境で Spark を使用するには、次のコマンドを使用してすべての Spark デーモンが実行されているかどうかを確認します (これは Cloudera Manager (CM) UI 内で実行できます)。

[cloudera@quickstart simplesparkapp]$ sudo service --status-all | grep -i spark
Spark history-server is not running                        [FAILED]
Spark master is not running                                [FAILED]
Spark worker is not running                                [FAILED]

Yarn 内で Spark ジョブを送信できるように、すべてのスタンドアロン Spark サービスを手動で停止しました。

クイック スタート クラスターの Yarn コンテナー内で Spark を実行するには、次の手順を実行する必要があります。

  1. HADOOP_CONF_DIRを構成ファイルを含むディレクトリのルートに設定しyarn-site.xmlます。これは通常/etc/hadoop/conf、CHD5 で発生します。コマンドを使用して、この変数を設定できますexport HADOOP_CONF_DIR="/etc/hadoop/conf"
  2. を使用してジョブを送信し、spark-submitHadoop YARN を使用していることを指定します。

    spark-submit --class CLASS_PATH --master yarn JAR_DIR ARGS

  3. Hue でジョブのステータスを確認し、Spark History サーバーと比較します。Hue は、一般的な Yarn コンテナーに配置されたジョブを表示する必要があり、Spark 履歴には、送信されたジョブの記録が含まれていない必要があります。
使用した参考文献:

于 2015-04-08T17:55:03.863 に答える