Windows10のPowerShellでApache Drillを動かすための設定を記載。
環境
OS:Windows10
Java:1.8.0 u181
Apache Drill:1.14.0
※tar.gzを解凍するために、7-Zipを使用。
設定方法
0. JAVA_HOMEが正しく設定されていることを確認。
java -version
1.以下を参照して、任意のディレクトリでtar.gzファイルを解凍。
https://drill.apache.org/docs/installing-drill-on-windows/
① Apache Drillをダウンロード。
② 任意のディレクトリにtar.gzファイルを移動。
③ 解凍ツールで、解凍。
※7-Zipを使うとgzを解凍後に、tarを解凍。
2.パワーシェルを起動し、解凍したフォルダ内のbinフォルダに移動。
cd bin
3.パワーシェルから、以下を実行。
cmd /r 'sqlline.bat -u "jdbc:drill:zk=local"'
※これを、以下でやっても、動かないので注意。
cmd /r 'C:\drill\install\dir\bin\sqlline.bat -u "jdbc:drill:zk=local"'
バッチを実行した際のカレントに、内部で呼び出すほかのバッチなんかが無いとだめらしい。
なので、スクリプト化する場合は、binフォルダに移動するように、cdを書かないといけない。
設定時に困った点
1.最初、binフォルダで実行したら、以下のエラーが発生して、コネクション生成に失敗した。
Unable to deserialize "/tmp/drill/sys.storage_plugins/hbase.sys.drill"
→最初にDrillを起動した際に、JAVA_HOMEの設定がPathに追加されておらず、不完全なtmpフォルダがドライブ直下にできていた。環境変数設定後にDrillを起動すると、tmpフォルダが競合していたらしく、正常に起動しなかった。tmpフォルダを削除したら、問題なく起動し、ちゃんとしたtmpフォルダがドライブ直下に作成された。
2.起動時、ログにエラーがでる。けど、正常に動作はする。
javassist.CannotCompileException: by java.lang.LinkageError: loader (instance of sun/misc/Launcher$AppClassLoader): attempted duplicate class definition for name: "com/google/common/base/Stopwatch"
→Drill 1.15.0で対応予定らしい。
https://stackoverflow.com/questions/50612306/apache-drill-java-lang-nullpointerexception/50750944
動作確認で分かった点
1.dfsはDrillをインストールしたドライブをルートとしている。
2.管理コンソールは、Drillを起動した状態で以下にアクセスする。
http://127.0.0.1:8047
3.大文字拡張子「.CSV」は認識されない。
→Csvファイルとして認識するデフォルトの拡張子が「.csv」となっているため、「.csv」でないと読み込めない。=デフォルト設定では、拡張子の大文字、小文字を区別する。
4.データはUTF-8でないと、日本語が文字化けする。
→CsvファイルはExcelでUTF-8に変換してから読み込めば文字化けしない。
※PowerShell側で「chcp 65001」を実行してからDrillを起動して日本語(UTF-8)をSelectすると、文字が表示されなくなる。
ここまで。