ElasticSearchの紹介
ElasticSearchとは何か:
- ElasticSearchはApache Lucene上で構築されたオープンソースの検索エンジンです
- Javaで書かれており、シンプルで使いやすいRESTFul APIを提供します
- ペタバイトレベルの構造化データ処理または非構造化データ処理をサポートするための簡単なスケールアウト
応用シナリオ:
- 大規模データ解析エンジン
- オンサイト検索エンジン
- データウェアハウスとして
書類住所:ハイパーリンクのログインが見えます。
展開環境:
CentOS 7 x64ビット、Elasticsearchバージョン6.5.2、JDK 1.8.0.191
1: JDK 1.8.0をインストールする
ElasticSearchはJREのバージョンに敏感であり、間違ったバージョンだとElasticSearchが動作しなくなります。
2: ElasticSearch 6.5.2をダウンロードして実行する
アドレスページをダウンロードしてください:ハイパーリンクのログインが見えます。
[root@VM_0_9_centos elasticsearch-6.5.2]# ./bin/elasticsearch OpenJDK 64ビットサーバーVM警告:プロセッサ数が1つから増加すると予想される場合は、-XXを使ってパラレルGCスレッドの数を適切に設定してください。 ParallelGCThreads=N [2018-12-11T15:24:27,847][警告音][o.e.b.ElasticsearchUncaughtExceptionHandler] [不明] スレッド内のuncaught例外[main]
org.elasticsearch.bootstrap.StartupException: java.lang.RuntimeException: can not run elasticsearch as root at org.elasticsearch.bootstrap.Elasticsearch.init(Elasticsearch.java:140) ~[elasticsearch-6.5.2.jar:6.5.2] at org.elasticsearch.bootstrap.Elasticsearch.execute(Elasticsearch.java:127) ~[elasticsearch-6.5.2.jar:6.5.2] at org.elasticsearch.cli.EnvironmentAwareCommand.execute(EnvironmentAwareCommand.java:86) ~[elasticsearch-6.5.2.jar:6.5.2] at org.elasticsearch.cli.command.mainWithoutErrorHandling(Command.java:124) ~[elasticsearch-cli-6.5.2.jar:6.5.2] at org.elasticsearch.cli.Command.main(Command.java:90) ~[elasticsearch-cli-6.5.2.jar:6.5.2] at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:93) ~[elasticsearch-6.5.2.jar:6.5.2] at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:86) ~[elasticsearch-6.5.2.jar:6.5.2] 原因:java.lang.RuntimeException: rootとしてelasticsearchを実行できません at org.elasticsearch.bootstrap.Bootstrap.initializeNatives(Bootstrap.java:103) ~[elasticsearch-6.5.2.jar:6.5.2] at org.elasticsearch.bootstrap.Bootstrap.setup(Bootstrap.java:170) ~[elasticsearch-6.5.2.jar:6.5.2] at org.elasticsearch.bootstrap.Bootstrap.init(Bootstrap.java:333) ~[elasticsearch-6.5.2.jar:6.5.2] at org.elasticsearch.bootstrap.Elasticsearch.init(Elasticsearch.java:136) ~[elasticsearch-6.5.2.jar:6.5.2] ... あと6回
Elasticsearchはスーパーユーザーrootで動作できないことを要求しているので、カジュアルにアカウントを作成でき、ユーザーをesとして使う必要があります
エラーがなければ正常に実行されます
新しい端末を開いて、カールでアクセスします
サーバーポート(9200)がオンになっていることを確認する場合、elasticsearchが起動されます(ps -ef | GREP ElasticSearch)はブラウザ上でアクセス可能です
[root@VM_0_9_centos地元]# カール 'http://localhost:9200/?pretty'
{ 「名前」:「iUSRV4T」 「cluster_name」:「elasticsearch」、 「cluster_uuid」:「WCbka65VTd2TnM8gQvztqg」 「バージョン」 : { 「番号」 :「6.5.2」 「build_flavor」 : 「デフォルト」 「build_type」:「タール」、 「build_hash」:「9434ベッド」 「build_date」:「2018-11-29T23:58:20.891072Z」 「build_snapshot」:偽、 「lucene_version」 : 「7.5.0」 "minimum_wire_compatibility_version" : "5.6.0", 「minimum_index_compatibility_version」:「5.0.0」 }, 「タグライン」:「検索のために」
}
3: インターネット経由でElasticsearchにアクセスする
elasticsearchの設定ファイルを編集してください
network.host: a lineを探し、#記号を削除して以下に変更します:
(network.host: [_local_, 172.30.6.1] 172.30.6.1 は指定されたIPアドレスであり、複数のIPアドレスが使える。 未検査)
Elasticsearchを再起動すれば、インターネットの http://ip:9200 インターフェースにアクセスできます。
起こりうる誤り:
間違い1
最大仮想メモリ領域vm.max_map_count [65530]が低すぎるので、少なくとも[262144]まで増やしてください。 max_map_countの値は、プロセスが利用可能な最大メモリマップ領域を指し、mallocを呼び出した際に使用され、mmap/mprotectによって生成されます。
回避策:vm.maxマップカウントのサイズを拡大する:
ミス2
ElasticSearchプロセスの最大ファイルディスクリプタ[4096]が少なすぎるため、少なくとも[65536]まで増やしてください。 解決
修正後、再度ESユーザーにログインし、以下のコマンドで修正が成功しているか確認します
ミス3
Java HotSpot(TM) 64ビットサーバーのVM警告:INFO: os::commit_memory(0x0000000085330000, 2060255232, 0) failed eded; error='メモリを割り当てられない」 (errno=12) 解決
でアリは言った可能な問題点
システムコールフィルターのインストールに失敗しました。 ログを確認して設定を修正するか、システムコールフィルターを無効にするのは自己責任で行ってください 解決策:elasticsearch構成に以下のコマンドを追加します。
|