- 公開日:2016年01月07日
記事概要
elasticsearchでpluginコマンドを実行したところ、SSLException java.security.ProviderExceptionが発生してインストールに失敗しました。
その対応方法をまとめた記事です。
read in English
環境
- vagrant centos6.5
- elasticsearch2.1.1
- java(OpenJDK) version 1.7.0_91
kurimoji plugijn installの失敗
kurimoji(Javaで書かれた日本語形態素解析ソフトウェア)はelasticsearch2.1以降では、pluginに公式に取り込まれています。
なので、以下のようにinstallができます。
sudo /usr/share/elasticsearch/bin/plugin install --verbose analysis-kuromoji Failed: SSLException[java.security.ProviderException: java.security.KeyException]; nested: ProviderException[java.security.KeyException]; nested: KeyException; ERROR: failed to download out of all possible locations
しかし、私の環境では、pluginコマンドは上記のように失敗しました。
javaのvesionの切り替え
結論から述べるとpluginのinstallに失敗するのは、javaのversionが原因です。
なのでinstallされているjavaをチェックします。
yum search java | grep openjdk java-1.6.0-openjdk.x86_64 : OpenJDK Runtime Environment java-1.6.0-openjdk-demo.x86_64 : OpenJDK Demos java-1.6.0-openjdk-devel.x86_64 : OpenJDK Development Environment java-1.6.0-openjdk-javadoc.x86_64 : OpenJDK API Documentation java-1.6.0-openjdk-src.x86_64 : OpenJDK Source Bundle java-1.7.0-openjdk.x86_64 : OpenJDK Runtime Environment java-1.7.0-openjdk-demo.x86_64 : OpenJDK Demos java-1.7.0-openjdk-devel.x86_64 : OpenJDK Development Environment java-1.7.0-openjdk-javadoc.noarch : OpenJDK API Documentation java-1.7.0-openjdk-src.x86_64 : OpenJDK Source Bundle java-1.8.0-openjdk.x86_64 : OpenJDK Runtime Environment java-1.8.0-openjdk-debug.x86_64 : OpenJDK Runtime Environment with full debug on java-1.8.0-openjdk-demo.x86_64 : OpenJDK Demos java-1.8.0-openjdk-demo-debug.x86_64 : OpenJDK Demos with full debug on java-1.8.0-openjdk-devel.x86_64 : OpenJDK Development Environment java-1.8.0-openjdk-devel-debug.x86_64 : OpenJDK Development Environment with java-1.8.0-openjdk-headless.x86_64 : OpenJDK Runtime Environment java-1.8.0-openjdk-headless-debug.x86_64 : OpenJDK Runtime Environment with full java-1.8.0-openjdk-javadoc.noarch : OpenJDK API Documentation java-1.8.0-openjdk-javadoc-debug.noarch : OpenJDK API Documentation for packages java-1.8.0-openjdk-src.x86_64 : OpenJDK Source Bundle java-1.8.0-openjdk-src-debug.x86_64 : OpenJDK Source Bundle for packages with
yumには最新のjava-1.8.0-openjdkが存在しています。
次に、現在利用しているjavaを確認します。
alternatives --config java There are 2 programs which provide 'java'. Selection Command ----------------------------------------------- 1 /usr/lib/jvm/jre-1.5.0-gcj/bin/java *+ 2 /usr/lib/jvm/jre-1.7.0-openjdk.x86_64/bin/java
java-1.8.0-openjdkがinstallされていません。
なので、installします。
sudo yum install -y java-1.8.0-openjdk
javaのversionをチェックします。
java -version java version "1.7.0_91"
利用しているjavaが変更されていないので切り替えます。
sudo alternatives --config java There are 3 programs which provide 'java'. Selection Command ----------------------------------------------- 1 /usr/lib/jvm/jre-1.5.0-gcj/bin/java *+ 2 /usr/lib/jvm/jre-1.7.0-openjdk.x86_64/bin/java 3 /usr/lib/jvm/jre-1.8.0-openjdk.x86_64/bin/java Enter to keep the current selection[+], or type selection number: 3
再度versionをチェックします。
java -version openjdk version "1.8.0_65" OpenJDK Runtime Environment (build 1.8.0_65-b17) OpenJDK 64-Bit Server VM (build 25.65-b01, mixed mode)
java-1.8.0-openjdkに変更されました。
kurimoji plugin の再install
java-1.8.0-openjdkになったので、再度pluginコマンドを実行します。
sudo /usr/share/elasticsearch/bin/plugin install --verbose analysis-kuromoji Downloading .DONE - Plugin information: Name: analysis-kuromoji Description: The Japanese (kuromoji) Analysis plugin integrates Lucene kuromoji analysis module into elasticsearch. Site: false Version: 2.1.1 JVM: true * Classname: org.elasticsearch.plugin.analysis.kuromoji.AnalysisKuromojiPlugin * Isolated: true Installed analysis-kuromoji into /usr/share/elasticsearch/plugins/analysis-kuromoji
うまくいきました。
念のために、pluginを確認してみましょう。
sudo /usr/share/elasticsearch/bin/plugin list Installed plugins in /usr/share/elasticsearch/plugins: - analysis-kuromoji
java7を使い続けたい人もいると思います。7に再度切り替えて確認してみましょう。
sudo alternatives --config java There are 3 programs which provide 'java'. Selection Command ----------------------------------------------- 1 /usr/lib/jvm/jre-1.5.0-gcj/bin/java * 2 /usr/lib/jvm/jre-1.7.0-openjdk.x86_64/bin/java + 3 /usr/lib/jvm/jre-1.8.0-openjdk.x86_64/bin/java Enter to keep the current selection[+], or type selection number: 2 java -version java version "1.7.0_91" OpenJDK Runtime Environment (rhel-2.6.2.2.el6_7-x86_64 u91-b00) OpenJDK 64-Bit Server VM (build 24.91-b01, mixed mode) sudo /usr/share/elasticsearch/bin/plugin list Installed plugins in /usr/share/elasticsearch/plugins: - analysis-kuromoji
問題ありませんね。
まとめ
elasticsearch2.1.1でpluginコマンドを利用する場合は、javaのversionを8にあげる必要があります。
pluginコマンドでjava8が必要なだけなので、plugin導入後はjava7で動いているシステムでも問題なく利用できます。
でも可能な限り最新版を利用するべきです。やはりアップデートはマメにやらないといけませんね。
以上。
オススメ開発マシン
関連記事
参考サイト
- How To Install JAVA ( OpenJDK ) 6 / 7 / 8 in Linux
- Troubleshooting story - Java HTTP client crashes on connections
0 件のコメント:
コメントを投稿