2016年1月7日木曜日

elasticsearch plugin installの失敗 SSLException java.security.ProviderException

  • 公開日: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ができます。

terminal

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をチェックします。

terminal

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を確認します。

terminal

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します。

terminal

sudo yum install -y java-1.8.0-openjdk

javaのversionをチェックします。

terminal

java -version
java version "1.7.0_91"

利用しているjavaが変更されていないので切り替えます。

terminal

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をチェックします。

terminal

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コマンドを実行します。

terminal

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を確認してみましょう。

terminal

sudo /usr/share/elasticsearch/bin/plugin list
Installed plugins in /usr/share/elasticsearch/plugins:
    - analysis-kuromoji

java7を使い続けたい人もいると思います。7に再度切り替えて確認してみましょう。

terminal

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で動いているシステムでも問題なく利用できます。

でも可能な限り最新版を利用するべきです。やはりアップデートはマメにやらないといけませんね。

以上。

オススメ開発マシン


関連記事


参考サイト


English


この記事がお役にたちましたらシェアをお願いします

このエントリーをはてなブックマークに追加

0 件のコメント:

コメントを投稿

Related Posts Plugin for WordPress, Blogger...