CENTOS8にJuman++とElasticsearch(&Kibana)とPython(Jupyter notebook)を入れる


タイトルにあるようなことをする理由

Bertをぐりぐり使ってあれこれするのに必要な環境を以前作ったんですが、
(↓これ)
https://qiita.com/shiraitsukasa/items/53dbf792696c69a77d96

すでにある環境を一部間借りする感じでした。
そうではなくて、もっとゼロから環境構築する方法を記録しておこうと思ってみたしだいです。

Bertの設定とかPythonの書いたのとかは先述のところを御覧ください。
ここから書き記すのは、基本環境設定のみであって、コーディングとかはないです。

環境

CentOS 8.1.1911
CUIがコワいので、ServerGUIでセットアップしました。
VMware(R) Workstation 15 Player(15.5.5 build-16285975)の仮想マシン
3万円台のM●USEコンピュータのB5ノート上で作成。
もう結構前のPCだからファンがひゃーひゃー言ってるのをむりやり動かしました。
ごめんねB5ノート。

前設定

何かと色々入れておく必要があるようです。
ちなみに以下はsuやsudoは省略してあります。
全然関係ないけどsuとかsudoってなんて読むんだろ。chmodとかも。

dnf install -y libkkc libkkc-data ibus-kkc 
dnf install -y zlib-devel bzip2-devel readline-devel sqlite-devel openssl-devel git

Juman++をインストール

gccとboostが必須らしいです。CentOSではデフォでバージョンを満たしていたので、そのままdnfにおまかせしました。

dnf install -y gcc gcc-c++ boost boost-devel make

gperftoolsとlibunwindを入れると高速化するらしいです。これも入れておこう。

dnf install -y https://extras.getpagespeed.com/release-el8-latest.rpm
dnf install -y gperftools libunwind

そういやCMakeも必要なんでした。

wget https://cmake.org/files/v3.15/cmake-3.15.2.tar.gz
tar zxvf cmake-3.15.2.tar.gz
cd cmake-3.15.2
./bootstrap --prefix=/opt/cmake --no-system-libs
make -j4
sudo make install

CMakeはパスを通しておく必要があります

vi /etc/profile

profileの末尾に以下を追記して保存します。

PATH=$PATH:/opt/cmake/bin

直ちに反映させるには以下のコマンドを実行します。
いやちょっとなあという人は再起動でも構いません。

source /etc/profile

やれやれです。やっとこれでJuman++をインストールできます。

#ソースコード取得
wget https://github.com/ku-nlp/jumanpp/releases/download/v2.0.0-rc3/jumanpp-2.0.0-rc3.tar.xz

# 解凍してディレクトリに入る
tar xvf jumanpp-2.0.0-rc3.tar.xz 
cd jumanpp-2.0.0-rc3
mkdir build
cd build

# ビルド
cmake .. -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr/local
make
sudo make install

分かち書きができることを確認してください。

echo "こんなふうに分かち書きを試してみる" | jumanpp

Elasticsearchをインストールする

その前にJavaをインストールしないとです。

dnf -y install java-1.8.0-openjdk-devel

ちゃんとインストールができたかを確認してください。

java -version

事前にrpmレポジトリの設定をします。

#KEYのインポート
rpm --import https://artifacts.elastic.co/GPG-KEY-elasticsearch
#レポジトリの編集
vi /etc/yum.repos.d/elasticsearch.repo

/etc/yum.repos.d/elasticsearch.repoに、以下のとおり書いて保存します。

[elasticsearch-7.x]
name=Elasticsearch repository for 7.x packages
baseurl=https://artifacts.elastic.co/packages/7.x/yum
gpgcheck=1
gpgkey=https://artifacts.elastic.co/GPG-KEY-elasticsearch
enabled=1
autorefresh=1
type=rpm-md

そしたらインストールです。一緒にKibanaも入れてしまいます。
サービス化もしてしまいましょう。
Elasticsearchがちゃんと起動していないと、Kibanaはちゃんと動きません。
ああ、それから、Kibanaの初期起動は結構重いです。気長に待ちましょう。

#インストール
dnf -y install elasticsearch kibana

#Elasticsearchのサービス登録と開始
systemctl enable elasticsearch
systemctl start elasticsearch

#systemctl status elasticsearchでサービスが起動しているか確認すると良い

#Kibanaのサービス登録と開始
systemctl enable kibana
systemctl start kibana

Kibanaが何故かうまく行かなかったりする場合があるので、その場合はシステム再起動して、サービスのステータスを確認したほうがいいみたいです。

ブラウザから
http://localhost:5601/
にアクセスして、Kibanaga起動することを確認してください。

Pythonをインストールする

Bertとか動かすのがわかっているので、Anacondaで設定することにしました。
機械学習や深層学習じゃない方からPythonに入ってきた人なんかは、AnacondaよりもPythonを丁寧に設定することを好む傾向にある気がします。
個人的にはテンソルをぶん回せればいいので、むしろAnacondaを好んで使っています。

ウィザード方式でインストールします。
その他設定もまとめてやってしまいます。

#ダウンロード
curl -OR https://repo.anaconda.com/archive/Anaconda3-2020.02-Linux-x86_64.sh
#実行権限を付与
chmod +x Anaconda3-2020.02-Linux-x86_64.sh
#一時的にアクセス権を与えて…
chmod o+w /opt
#シェルスクリプトを実行
./Anaconda3-2020.02-Linux-x86_64.sh


######################################################
#以下、順番に聞いてきます

#ライセンス確認
#Do you accept the license terms? [yes|no]
#[no] >>> yes 

#インストールパスの確認
#[/home/elasticsearch/anaconda3] >>> /opt/anaconda3

#とりあえずno
#Do you wish the installer to initialize Anaconda3
#by running conda init? [yes|no]
#[no] >>> no
#####################################################

#アクセス権戻す
sudo chmod o-w /opt

インストールはここまでですが、パスを通しておきます。
CMakeと同じように…

vi /etc/profile

で、末尾に以下のとおり記載して保存してください。

#path for python
PATH=/opt/anaconda3/bin:$PATH

最後に「source /etc/profile」で環境変数を即時反映させてもいいけど、一応ここで再起動したほうがいいかもしれません。

jupyter notebook

で、jupyter notebookが起動することを確認してください。

おわりに

というわけでなんとか設定できました。
でも、3万円B5ノート内じゃ当然ちゃんとしたGPU環境はないわけで、やってはみたものの今後どうしようかと悩む日々であります。