2

Slider Memcached チュートリアルを実行したところ、memcached コンテナーを正常にパッケージ化/デプロイ/開始できました。ただし、基本的にJava jarと依存関係を含むカスタムアプリケーションをパッケージ化すると、コンテナが正常に起動しません。

アプリケーション ページは、アプリケーションが次の診断で FINISHED/FAILED 状態であることを示しています: http://quickstart.cloudera:8088/cluster/app/application_1439926335194_0001

診断: 不安定なアプリケーション インスタンス: - コンポーネント MYAPP で失敗 「最近」6 回 (起動時に 4 回) 失敗しました。しきい値は 5 - 最後の失敗: ホスト quickstart.cloudera (0) の失敗 container_1439926335194_0001_01_000008: http://quickstart.cloudera:19888/jobhistory/logs//quickstart.cloudera:8041/container_1439926335194_0001_01_000008/ctx/MYUSER

コンテナーの問題を診断する際の課題の 1 つは、アプリケーションの完了後にログが消えることです。 http://quickstart.cloudera:8042/node/containerlogs/container_1439926335194_0001_01_000001/MYUSER

アプリケーションの完了後もログを保持できることを示す、スライダーのトラブルシューティング ページがあります: http://slider.incubator.apache.org/docs/troubleshooting.html

デバッグを改善するための YARN の構成

<!-- 10 minutes after a failure to see what is left in the directory-->
<property>
  <name>yarn.nodemanager.delete.debug-delay-sec</name>
  <value>600</value>
</property>

そして、この設定を Yarn - Configuration - NodeManager Base Group - Advanced - Localized Dir Delection Delay で見つけ、デフォルトの 0 から 1200 に変更しました。ただし、クライアント構成をデプロイし、Nodemanager + Yarn を再起動した後でも、VM を再起動しても、コンテナーの完了時にログが削除されたままです。

CDH 5.3.0 Vitrualbox VM イメージに取り組んでいます。パッケージを起動すると、クラスターとサービスが正常に動作しているように見えます。

編集:

私が見るログの唯一のエラーはこれです:

ロール インスタンス RoleInstance が失敗しました

2015-08-19 10:59:21,819 [AMRM Callback Handler Thread] ERROR appmaster.SliderAppMaster - Role instance RoleInstance{role='SIMHASH', id='container_1439926335194_0002_01_000003', container=ContainerID=container_1439926335194_0002_01_000003 nodeID=quickstart.cloudera:8041 http =quickstart.cloudera:8042 priority=1073741825 resource=, createTime=1440007115649, startTime=1440007115674, release=false, roleId=1, host=quickstart.cloudera, hostURL= http://quickstart.cloudera:8042、状態 = 5、配置 = null、exitCode = 0、コマンド = 'python ./infra/agent/slider-agent/agent/main.py --label container_1439926335194_0002_01_000003___SIMHASH --zk-quorum localhost:2181 --zk-reg-パス /registry/users/c4/services/org-apache-slider/simhash1 > /slider-agent.out 2>&1 ; ', diagnostics='', output=null, environment=[LANGUAGE="en_US.UTF-8", AGENT_WORK_ROOT="$PWD", HADOOP_USER_NAME="C4", AGENT_LOG_ROOT="", PYTHONPATH="./infra/agent /slider-agent/"、LC_ALL="en_US.UTF-8"、SLIDER_PASSPHRASE="8R9ZPw3aZ20GFydi3OqvEtwYhh1qzfQBmWv6BjXepg3PCcyS8m"、LANG="en_US.UTF-8"]} 失敗

4

1 に答える 1

1

簡潔な答え

コンテナー ログを調べて、実行中のアプリケーションからの出力を取得します。

詳細:

コンテナー Web UI を介してコンテナー ログを見つけました (Cloudera VM ではhttp://quickstart.cloudera:8042/node/allContainers です) 。

私のアプリケーションには 2 つのコンテナがあります。最初はコンテナが成功したか失敗したかを示す以前に見たログを示しています。2 番目には、有用な情報 (コマンド / エラー / スライダー エージェント / status_command) を含む多くのログがあります。

それらは一時的なものですが、アプリケーションが終了する前に見ることができました.

Slider-agent.out には、次の行が含まれています。

ロガー「root」のハンドラーが見つかりませんでした

ただし、slider-agent.log は、私が探していた情報を提供してくれました。基本的には、Java コマンド ラインの実行による stderr / stdout であるため、非常に役立ちます。

INFO 2015-08-19 14:07:28,422 AgentToggleLogger.py:40 - キューの結果: {'componentStatus': []、'reports': [{'actionId': u'4-1'、'clusterName': u 'myapp1', 'exitcode': 1, 'reportResult': True, 'role': u'MYAPP', 'roleCommand': u'START', 'serviceName': u'myapp1', 'status': 'FAILED' , 'stderr': '2015-08-19 14:07:28,268 - コマンドの実行中にエラーが発生しました..., 'stdout': '2015-08-19 14:07:23,261 - 実行[\'/usr/java/ latest/bin/java -Xmx256m -classpath ..., 'structuredOut': '{}', 'taskId': 4}]}

于 2015-09-21T17:35:48.630 に答える