Houdiniジョブ管理ツールHQueueのよくあるご質問(前編)


この記事では、HoudiniのHQueueでセットアップ時に、よくあるご質問についてQ&A形式で記載し、その参照先をご紹介致します。

記事の文章量が多いため、(前編)と(後編)の2回に分けて記述します。

検証したバージョンは、以下の通りです。

Houdini 15.5.607

HQueue 15.5.607

目次

 

 

HQueueとは

始めに簡単にご説明しますと、HQueueは、Houdiniに付属する、ジョブを複数台のマシンで管理するためのシステムです。Houdiniからレンダリングジョブやシミュレーションジョブをサブミットして、複数台のマシンでジョブを分散して実行することができます。

001_hqueueqanda_1

HQueueには、HQueue ServerとHQueue Clientというアプリケーションが含まれています。それぞれの概要、また使用するライセンス等につきましては、当ブログの「HQueueのインストール」をご覧ください。

 

 

セットアップに関する質問

 

 

【質問】

HQueue Server、HQueue Clientのセットアップはどのように行えば良いのでしょうか?

【回答】

HQueue Clientのインストール方法は、SideFX社のウェブサイトにインストールおよび設定方法が記載されています。

以下のページをご参照ください。

▼Houdini 15.5オンラインヘルプ(英語)

HQueue 15.5 > 4. Managing Clients > 4.3. Adding Clients

▼インディゾーンHoudini情報日本語ブログ(当ブログ)

「HQueueインストール」

また、製品版ご購入時に、日本語のオンライン版ヘルプもご用意しています。詳細につきましては、インディゾーンまでご連絡下さい。

 

【質問】

すでにあるHQueue Serverに HQueue Clientを新たに追加するには、どのような操作が必要ですか?

【回答】

基本的には、追加したいマシン上でHoudiniのインストーラを起動し、HQueue Clientをインストールすれば完了です。インストール時に、HQueue Serverの参照先を指定する項目で、すでに設定済みのHQueue Serverのマシン名またはIPアドレスを入力し、インストールしてください。

正常に認識された場合、WEBインターフェース上の[CLIENTS]から、状況を確認することができます。

002_hqueueqanda_1

 

 

 

ログファイルと、問題の確認について

こちらでは、セットアップ後に問題が発生した場合に、その原因を確認するためのログファイルについてご説明します。

HQueue は、様々な場所にログが出力されます。それぞれのログによって、出力される内容が異なります。HQueueでジョブが実行できない場合、以下のログのいずれかにエラーが表示されます。どのログにエラーが表示されたかによって、ある程度原因を推測することができます。

 

 

■HQueue Server側のログファイル(errors.log)

保存場所: 

  • (Windowsの場合)C:/HQueueServer
  • (LinuxとMac OS Xの場合) /opt/hqueue

003_hqueueqanda_1

こちらには、HQueue ServerとHQueue Clientのネットワーク接続において正常に処理が行えない場合に、エラーが出力されます。

※Windowsの場合を例に記載します。

Windowsでのエラー表示例:

004_hqueueqanda_1

すべてのマシンとの接続が正常であれば、こちらには何も出力されません。

 

■HQueue Client側のログファイル(hqnode.log)

保存場所: 

  • (Windowsの場合) C:/HQueueClient
  • (LinuxとMac OS Xの場合) /home/hquser/hqclient

005_hqueueqanda_1

こちらには、各HQueue Clientのログが保存されます。ネットワーク接続が正常に行われていない場合、エラーが出力されます。

※Windowsの場合を例に記載します。

例えば、以下のようなログが出力されます。

hqnode[2136] 2016-09-29 18:24:08,193 ERROR Exception occurred while contacting te HQueue server.
Traceback (most recent call last):
 File "C:\HQueueClient\hqnode.py", line 396, in run
   self.server.sendTools(self.hostname)
 File "C:\HQueueClient\python27\lib\xmlrpclib.py", line 1224, in __call__
   return self.__send(self.__name, args)
 File "C:\HQueueClient\python27\lib\xmlrpclib.py", line 1578, in __request
   verbose=self.__verbose
 File "C:\HQueueClient\python27\lib\xmlrpclib.py", line 1264, in request
   return self.single_request(host, handler, request_body, verbose)
 File "C:\HQueueClient\python27\lib\xmlrpclib.py", line 1292, in single_request
   self.send_content(h, request_body)
 File "C:\HQueueClient\python27\lib\xmlrpclib.py", line 1439, in send_content
   connection.endheaders(request_body)
 File "C:\HQueueClient\python27\lib\httplib.py", line 969, in endheaders
   self._send_output(message_body)
 File "C:\HQueueClient\python27\lib\httplib.py", line 829, in _send_output
   self.send(msg)
 File "C:\HQueueClient\python27\lib\httplib.py", line 791, in send
   self.connect()
 File "C:\HQueueClient\python27\lib\httplib.py", line 772, in connect
   self.timeout, self.source_address)
 File "C:\HQueueClient\python27\lib\socket.py", line 571, in create_connection
   raise err
error: [Errno 10060] 接続済みの呼び出し先が一定の時間を過ぎても正しく応答しなかったため、接続できませんでした。または接続済みのホストが応答しなかったため、確立された接続は失敗しました。

このようなエラーが出力される場合は、HQueue ServerとHQueue Clientとのネットワーク接続が正常に行われていないため、各マシンの通信状況、アクセス権限、サービスのユーザー名等を確認する必要があります。

ネットワーク接続が正常に行われている場合は、そのHQueue Clientが実行したHQueueジョブの開始、終了のログが表示されます。例えば、以下のようなログが出力されます。

hqnode[3564] 2016-10-14 18:48:51,154 INFO Running job 83
hqnode[3564] 2016-10-14 18:49:13,947 INFO Finished job 83
hqnode[3564] 2016-10-14 18:49:13,947 INFO Running job 85
hqnode[3564] 2016-10-14 18:57:54,717 INFO Finished job 85

このログが出力されている状態でジョブがFailedしている場合は、ジョブの設定内容の問題のため、以下の方法にてジョブのログを確認する必要があります。

尚、errors.logおよびhqnode.logの概要につきましては、以下のページをご参照下さい。

▼Houdini 15.5オンラインヘルプ(英語)

HQueue 15.5 > 10. Logging

 

■ジョブのログファイル(<Job ID>.stdout)

保存場所: 

  • (Windowsの場合) C:\HQueueServer\job_logs

HQueueのブラウザページ上で、[Job ID]のリンクをクリックすると、そのジョブ(親ジョブ)に紐づけられたジョブ(子ジョブ)の一覧が表示されます。

006_hqueueqanda_1

その子ジョブの[Job ID]リンクをクリックすると、ジョブの詳細画面が表示されます。[Command Output]の灰色の欄下でジョブの内容を確認することができ、[Download Output Log]ボタンを押すことで、ログをテキストファイルに出力できます。

007_hqueueqanda_1

このログには、そのJob IDのジョブ内容の進捗状況が表示されます。ライセンスエラーや、シーン内の設定の問題等があれば、こちらに表示されます。

 

 

 

HQueueでジョブを投入するまでのエラーと質問

こちらの記事では、HQueueのインストール後、ジョブを投入する前の段階で発生する問題とその原因、対処法について記載します。

 

 

【問題、症状】

HQueue ServerのWEBインターフェース(http://localhost:5000)を、HQueue Server上で開くことができません。

【原因、対処方法】

HQueue Serverが起動していない可能性がありますので、一度HQueue Serverが起動しているかどうかをご確認ください。

また、HQueue Serverが正常に起動できていない場合も、WEBインターフェースに接続できないことがありますので、HQueue Serverの再起動をお試しください。

各OSのHQueue Serverの再起動の方法につきましては、以下のページをご覧ください。

▼Houdini 15.5オンラインヘルプ(英語)

HQueue 15.5 > 9. Configuration > Applying Configuration Changes(ページ内最下部)

 

【問題、症状】

HQueue ServerのWEBインターフェース(http://<サーバー名またはIPアドレス>:5000)が、HQueue Server上では開きますが、HQueue Clientのマシン上で開くことができません。

【原因、対処方法】

HQueue Clientのマシンのコマンドプロンプトから 「ping <HQueue Serverマシン名>」または「ping <HQueue ServerマシンのIPアドレス>」を実行し、HQueue Client側からHQueue Serverのマシンに接続可能かどうかをご確認ください。

こちらで何らかのエラーが表示される場合は、ネットワークの設定をご確認ください。

以下の画像のような結果が出力された場合、接続は正常です。

008_hqueueqanda_1

この状態でブラウザに接続できない場合は、HQueue Server 側、およびHQueue Client側のファイアウォールの設定で、ポート番号「5000」を解放してください。

 

【問題、症状】

HQueue ServerのWEBインターフェース(http://<サーバー名またはIPアドレス>:5000)を開くことはできますが、「Failed to execute synchronous RPC method: Unable to call “getUnfinishedRoot JobIds”.」エラーが表示されます。これは何でしょうか?

009_hqueueqanda_1

【原因、対処方法】

HQueue Serverのマシンで、Houdini のライセンスサーバーの設定が行われていない場合に表示されます。HQueue Serverは、ライセンスを消費しませんが、ライセンスの存在を確認できる必要があります。HQueue Serverのマシン上でHoudini License Administratorを使用して、ライセンスの設定を行ってください。

 

【問題、症状】

HQueue ServerのWEBインターフェースで[CLIENTS]タブに切り替えた際に、HQueue Client のマシンが表示されません。(ServerとClientを兼用している場合)HQueue Serverと同じマシンのClientのみが表示され、他のマシンは表示されません。

010_hqueueqanda_1

【原因、対処方法】

errors.log、およびリストに表示されていないマシンのhqnode.logをご確認ください。(ログファイルにつきましては、こちらをご覧ください。)以下のようなエラーが出力されている場合、HQueue Serverのマシンから、HQueue Clientの接続を確認できていない可能性があります。

エラー例1:

in create_connection raise err
error: [Errno 10060] 接続済みの呼び出し先が一定の時間を過ぎても正しく応答しなかったため、接続できませんでした。または接続済みのホストが応答しなかったため、確立された接続は失敗しました。

エラー例2:

in create_connection raise err
error: [Errno 10061] 対象のコンピューターによって拒否されたため、接続できませんでした。

このような場合は、HQueue Server、HQueue Clientのマシンのファイアウォールを一時的に無効化し、HQueue Serverのマシン上のポート番号5000を解放して動作をご確認ください。

 

【問題、症状】

hipファイルを開き、HQueue Render /HQueue Simulation ROPを使用してジョブの投入を試したところ、[Could not connect to ‘<[HQueue Server]の入力内容>’]というウィンドウが表示され、ジョブの投入ができません。

011_hqueueqanda_1

【原因、対処方法】

[HQueue Server]の入力内容が正しいかどうかをご確認ください。

[HQueue Server]には、HQueue Client側、およびジョブを投入するマシンからHQueue ServerのWEBインターフェースにアクセスする時と同じ内容を記入します。

例えば、HQueue Serverのマシン名が「hqserver」IPアドレスが「192.168.1.1」、使用しているポート番号が「5000」の場合、以下のいずれかの内容で設定する必要があります。

例1:

hqserver:5000

例2:

192.168.1.1:5000

[HQueue Server]の設定内容が正しい場合は、問題の発生しているマシンでブラウザを起動し、「<HQueue ServerのマシンのIPアドレス>:5000」を入力して、WEBインターフェースの表示をご確認ください。

※正常に表示されない場合は、こちらをご覧ください。

 

【問題、症状】

HQueue Render またはHQueue Simulation ROPの[Submit Job]ボタンを押したところ、[Output Driver cannot be blank]と表示されます。

012_hqueueqanda_1 012_hqueueqanda_1

【原因、対処方法】

こちらのエラーの場合は、HQueue へ送信するシーン内のレンダリングノード、またはシミュレーションのノードが正常に入力されていない可能性があります。

HQueue Render またはHQueue Simulation ROP 内の[General]タブで[Output Driver]の項目をご確認いただき、レンダリングまたはシミュレーションの対象となるノードを選択してください。

右側にあるノードのアイコンから選択することで、ネットワークのリストから対象のノードを選択することができます。

014_hqueueqanda_1

 

【質問】

HQueue Render/HQueue Simulation ROP内の[Target HFS]は、何を参照するためのパラメータですか?

【回答】

[Target HFS]は、HQueue でレンダリングやシミュレーションを実行する際に、HQueue Clientとなるマシンが使用するHoudiniのアプリケーションのパスを指定するためのパラメータです。

そのため、基本的にはすべてのHQueue Clientのマシンが参照できるようなパスを[Target HFS]に入力する必要があります。

デフォルトでは、$HQROOT、$HQCLIENTARCH変数を利用したパスが設定されています。

設定内容:

$HQROOT/houdini_distros/hfs.$HQCLIENTARCH

015_hqueueqanda_1

こちらのパラメータは、そのままでも使用することは可能ですが、HQueue Clientのすべてのマシンで、同じパスを参照することができるのであれば、変数を使用せず[Target HFS]にUNCパスを使用して入力することでも設定が可能です。

例(windows版の場合):

\\<HQueue Server名>\hq\houdini_distros\hfs.windows-x86_64

016_hqueueqanda_1

さらに、ファーム上のすべてのクライアント/レンダリングマシンで同一のOSを使用しており、各マシンのローカルにHoudiniがインストールされていれば、そのローカルのパスを参照することも可能です。 その場合は、HQueue RenderまたはHQueue Simulation ROP の Target HFSパラメータをローカルパスに変更します。

例(windows版の場合) :

 C:/Program Files/Side Effects Software/Houdini 15.5.607

017_hqueueqanda_1

 

【質問】

[TargetHFS]パラメータ内でデフォルトで使用されている$HQROOT、$HQCLIENTARCHとはどのようなものですか?

【回答】

$HQROOTは、クライアントマシンに存在する環境変数で、共有フォルダのルートフォルダ( hserver.ini ファイルの hqserver.sharedNetwork.path.windows およびhqserver.sharedNetwork.path.macosx 、hqserver.sharedNetwork.path.linux で設定されているディレクトリ)を参照します。ジョブを実行するHQueue Clientが、自身のOSに合わせてHQueue Server以下にある共有フォルダを参照することができるようになります。

例えば、[Target HFS]にH:/から始まるパスを入力しているジョブを投入した際に、LinuxやMacのマシンのHQueue ClientではHoudiniファイルが参照できないため、エラーとなります。このような状況を避ける場合に、$HQROOTを使用することができます。

$HQCLIENTARCHは、プラットフォームに関係なくクライアントマシンが共有フォルダのHoudiniのフォルダを参照するために使用する変数です。

詳細につきましては、以下のページにてご確認下さい。

▼Houdini 15.5オンラインヘルプ(英語)

HQueue 15.5 > 14. FAQs