Create file /tmp/impala-scratch/…. with errno=2 description=Error(2): No such file or directory

impalaでクエリを実行すると,以下のようなエラーが出ることがある。
クエリはエラーになる。

Create file /tmp/impala-scratch/.... with errno=2 description=Error(2): No such file or directory

以下のcommunityサイトで質問されている方がいた。

community.cloudera.com

impala2.0からサポートされている’spill to disk’の機能だ。巨大なデータのソートやjoin,grouping,分析関数の実行時などメモリ消費がリミットを超える場合でもout of memoryで終了するのではなく,パフォーマンスの低下を許容しつつdiskも使って何とか結果を返してくれる。

このspill to diskで使用されるのが,--scratch_dirs="path_to_directory"で,ドキュメントによるとデフォルトでは/tmp/impala-scratchとなっている。スレーブノードのローカルディスク上で/tmp/impala-scratchを探すとやはりいない。恐らくこのディレクトリは自分で作成しないといけない?と思われる。

上記サイトでも言及されているように/tmpは消去される可能性もあることを想定し,今回は/var/tmpに作成することにした。

directory "/var/tmp/impala-scratch" do
  owner "impala"
  group "impala"
  mode  "0755"
  action :create
end

そして,Cloudera Managerではscratch_dirsの設定を行なう入力フォームが以下のように用意されている。設定を変更してimpalaサービスの再起動を行なう。

参考リンク

byebyehaikikyou

日記やIT系関連のネタ、WordPressに関することなど様々な事柄を書き付けた雑記です。ITエンジニア経験があるのでプログラミングに関することなどが多いです。

シェアする

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

コメントする

Translate »