この記事では、HoudiniのHQueueでセットアップ時に、よくあるご質問についてQ&A形式で記載し、その参照先をご紹介致します。
記事の文章量が多いため、(前編)と(後編)の2回に分けて記述します。
検証したバージョンは、以下の通りです。
Houdini 15.5.607
HQueue 15.5.607
目次
- HQueueとは
- セットアップに関する質問
- ログファイルと、問題の確認について
- HQueueでジョブを投入するまでのエラーと質問
- HQueue ServerのWEBインターフェースが開きません。
- HQueue ServerのWEBインターフェースが他のマシンで表示できません。
- HQueue ServerのWEBインターフェースは開きますが、画面上にエラーが表示されます。
- HQueue Clientのリストの中で、Serverのマシン以外表示されません。
- Houdiniのジョブ投入時に「Could not connect to」エラーが表示されました。
- Houdiniのジョブ投入時に「Output Driver cannot be blank」が表示されました。
- [Target HFS]は、何を参照するためのパラメータですか?
- [Target HFS] $HQROOT、$HQCLIENTARCHとはどのようなものですか?
HQueueとは
始めに簡単にご説明しますと、HQueueは、Houdiniに付属する、ジョブを複数台のマシンで管理するためのシステムです。Houdiniからレンダリングジョブやシミュレーションジョブをサブミットして、複数台のマシンでジョブを分散して実行することができます。
HQueueには、HQueue ServerとHQueue Clientというアプリケーションが含まれています。それぞれの概要、また使用するライセンス等につきましては、当ブログの「HQueueのインストール」をご覧ください。
セットアップに関する質問
- HQueue Server、HQueue Clientのセットアップはどのように行えば良いのでしょうか?
- すでにあるHQueue Serverに HQueue Clientを新たに追加するには、どのような操作が必要ですか?
【質問】
HQueue Server、HQueue Clientのセットアップはどのように行えば良いのでしょうか?
【回答】
HQueue Clientのインストール方法は、SideFX社のウェブサイトにインストールおよび設定方法が記載されています。
以下のページをご参照ください。
▼Houdini 15.5オンラインヘルプ(英語)
HQueue 15.5 > 4. Managing Clients > 4.3. Adding Clients
▼インディゾーンHoudini情報日本語ブログ(当ブログ)
また、製品版ご購入時に、日本語のオンライン版ヘルプもご用意しています。詳細につきましては、インディゾーンまでご連絡下さい。
【質問】
すでにあるHQueue Serverに HQueue Clientを新たに追加するには、どのような操作が必要ですか?
【回答】
基本的には、追加したいマシン上でHoudiniのインストーラを起動し、HQueue Clientをインストールすれば完了です。インストール時に、HQueue Serverの参照先を指定する項目で、すでに設定済みのHQueue Serverのマシン名またはIPアドレスを入力し、インストールしてください。
正常に認識された場合、WEBインターフェース上の[CLIENTS]から、状況を確認することができます。
ログファイルと、問題の確認について
こちらでは、セットアップ後に問題が発生した場合に、その原因を確認するためのログファイルについてご説明します。
HQueue は、様々な場所にログが出力されます。それぞれのログによって、出力される内容が異なります。HQueueでジョブが実行できない場合、以下のログのいずれかにエラーが表示されます。どのログにエラーが表示されたかによって、ある程度原因を推測することができます。
■HQueue Server側のログファイル(errors.log)
保存場所:
- (Windowsの場合)C:/HQueueServer
- (LinuxとMac OS Xの場合) /opt/hqueue
こちらには、HQueue ServerとHQueue Clientのネットワーク接続において正常に処理が行えない場合に、エラーが出力されます。
※Windowsの場合を例に記載します。
Windowsでのエラー表示例:
すべてのマシンとの接続が正常であれば、こちらには何も出力されません。
■HQueue Client側のログファイル(hqnode.log)
保存場所:
- (Windowsの場合) C:/HQueueClient
- (LinuxとMac OS Xの場合) /home/hquser/hqclient
こちらには、各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オンラインヘルプ(英語)
■ジョブのログファイル(<Job ID>.stdout)
保存場所:
- (Windowsの場合) C:\HQueueServer\job_logs
HQueueのブラウザページ上で、[Job ID]のリンクをクリックすると、そのジョブ(親ジョブ)に紐づけられたジョブ(子ジョブ)の一覧が表示されます。
その子ジョブの[Job ID]リンクをクリックすると、ジョブの詳細画面が表示されます。[Command Output]の灰色の欄下でジョブの内容を確認することができ、[Download Output Log]ボタンを押すことで、ログをテキストファイルに出力できます。
このログには、そのJob IDのジョブ内容の進捗状況が表示されます。ライセンスエラーや、シーン内の設定の問題等があれば、こちらに表示されます。
HQueueでジョブを投入するまでのエラーと質問
こちらの記事では、HQueueのインストール後、ジョブを投入する前の段階で発生する問題とその原因、対処法について記載します。
- HQueue ServerのWEBインターフェースが開きません。
- HQueue ServerのWEBインターフェースが他のマシンで表示できません。
- HQueue ServerのWEBインターフェースは開きますが、画面上にエラーが表示されます。
- HQueue Clientのリストの中で、Serverのマシン以外表示されません。
- Houdiniのジョブ投入時に「Could not connect to」エラーが表示されました。
- Houdiniのジョブ投入時に「Output Driver cannot be blank」が表示されました。
- [Target HFS]は、何を参照するためのパラメータですか?
- [Target HFS] $HQROOT、$HQCLIENTARCHとはどのようなものですか?
【問題、症状】
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のマシンに接続可能かどうかをご確認ください。
こちらで何らかのエラーが表示される場合は、ネットワークの設定をご確認ください。
以下の画像のような結果が出力された場合、接続は正常です。
この状態でブラウザに接続できない場合は、HQueue Server 側、およびHQueue Client側のファイアウォールの設定で、ポート番号「5000」を解放してください。
【問題、症状】
HQueue ServerのWEBインターフェース(http://<サーバー名またはIPアドレス>:5000)を開くことはできますが、「Failed to execute synchronous RPC method: Unable to call “getUnfinishedRoot JobIds”.」エラーが表示されます。これは何でしょうか?
【原因、対処方法】
HQueue Serverのマシンで、Houdini のライセンスサーバーの設定が行われていない場合に表示されます。HQueue Serverは、ライセンスを消費しませんが、ライセンスの存在を確認できる必要があります。HQueue Serverのマシン上でHoudini License Administratorを使用して、ライセンスの設定を行ってください。
【問題、症状】
HQueue ServerのWEBインターフェースで[CLIENTS]タブに切り替えた際に、HQueue Client のマシンが表示されません。(ServerとClientを兼用している場合)HQueue Serverと同じマシンのClientのみが表示され、他のマシンは表示されません。
【原因、対処方法】
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]の入力内容>’]というウィンドウが表示され、ジョブの投入ができません。
【原因、対処方法】
[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]と表示されます。
【原因、対処方法】
こちらのエラーの場合は、HQueue へ送信するシーン内のレンダリングノード、またはシミュレーションのノードが正常に入力されていない可能性があります。
HQueue Render またはHQueue Simulation ROP 内の[General]タブで[Output Driver]の項目をご確認いただき、レンダリングまたはシミュレーションの対象となるノードを選択してください。
右側にあるノードのアイコンから選択することで、ネットワークのリストから対象のノードを選択することができます。
【質問】
HQueue Render/HQueue Simulation ROP内の[Target HFS]は、何を参照するためのパラメータですか?
【回答】
[Target HFS]は、HQueue でレンダリングやシミュレーションを実行する際に、HQueue Clientとなるマシンが使用するHoudiniのアプリケーションのパスを指定するためのパラメータです。
そのため、基本的にはすべてのHQueue Clientのマシンが参照できるようなパスを[Target HFS]に入力する必要があります。
デフォルトでは、$HQROOT、$HQCLIENTARCH変数を利用したパスが設定されています。
設定内容:
$HQROOT/houdini_distros/hfs.$HQCLIENTARCH
こちらのパラメータは、そのままでも使用することは可能ですが、HQueue Clientのすべてのマシンで、同じパスを参照することができるのであれば、変数を使用せず[Target HFS]にUNCパスを使用して入力することでも設定が可能です。
例(windows版の場合):
\\<HQueue Server名>\hq\houdini_distros\hfs.windows-x86_64
さらに、ファーム上のすべてのクライアント/レンダリングマシンで同一のOSを使用しており、各マシンのローカルにHoudiniがインストールされていれば、そのローカルのパスを参照することも可能です。 その場合は、HQueue RenderまたはHQueue Simulation ROP の Target HFSパラメータをローカルパスに変更します。
例(windows版の場合) :
C:/Program Files/Side Effects Software/Houdini 15.5.607
【質問】
[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