なんかかきたいスマートフォン用の表示で見るなんかかきたいプログラミングなどの個人的なメモやサークル「ゆきいろパラソル」の情報を載せてますこの広告は、90日以上更新していないブログに表示しています。(2)elasticsearch割と遊びのつもりで書き始めたら意外と注目が集まってしまって遊びじゃない感じになってきましたが、前回の続きでelasticsearchの運用情報を書いていきます。さんにTwitterでElasticSearchのアップグレード情報などを色々と教えていただいたので、また後日検証してまとめてみようと思います。ありがとうございました。今回は設定周りの情報になります。いえば後から見直すことを考えるとどの投稿にどういう情報が乗っているか探すのが大変になりそうだから、索引を作る必要がある気がする。JVMのバージョンについてjava7を使う場合、特定のバージョンでindexが壊れる問題がLuceneで発生するので避ける必要がある。Lucene具体的にはjava7u25以下またはjava7u60以上java7u55以上を使う必要があるみたい。該当のバージョンの使用は避けること。Debianのaptで入れた場合は、java7u25が入るので大丈夫だけど注意する。さんよりいただきました。ありがとうございます。設定debパッケージでインストールした場合、/etc/elasticsearch/elasticsearch.ymlがデフォルトの設定ファイルになっている。このファイルで設定した値は起動時に読み込まれるが、多くの設定はここに設定しなくてもAPI経由でDynamicに設定できる。重要そうなものを記載。elasticsearch.ymlは環境変数を参照する形なので、必要に応じて/etc/init.d/elasticsearchで設定する必要がある。NodeElasticsearchのnodeはデータを持ったり持たなかったりする。node.dataがfalseだとnodeはデータを保持しない。データを保持しないノードはLoadBlancerとして機能する。trueデータノードとしてもmasterノードとしても機能する。簡単に構築でき動作を確認できるので開発時に便利。truemasterノードにはならない。workhorseと呼ばれる。falsemasterノードにはなるが、データは保持しない。coordinatorと呼ばれる。falsemasterノードにもならず、データも保持しない。検索用のLoadBlancerとして機能する。ElasticSearchはスワップすると極端にレスポンスが悪くなるので、スワップしないよう十分なメモリを確保する必要がある。公式でも推奨されている設定は、「起動時にメモリをアロケートし、スワップしないようにする」。JVM起動時にメモリを確保するようになり、JVMのヒープサイズもここで指定したサイズに固定される。メモリが不足する場合、エラーを出して落ちるようになる。ヒープのサイズはドキュメントの2倍程度がよいとか聞いた気もするけど、どこに書いてあるんだろ。デフォルトは1gbなので、必要に応じて大きくする。ファイルディスクリプタElasticSearchが開けるファイルの数は、32kまたは64kを公式では推奨している。この値は/etc/init.d/elasticsearchのMAX_OPEN_FILESで変更可能だが、デフォルトで65535なので変更する必要は無い気がする。-nによって値が書き換えられる。0"が発生する場合には、unlimitedにすることで回避できる。クラスタリングElasticSearchはクラスタでの利用前提のシステムなので、同じように設定すればどのホストに問い合わせても同じように機能するように設計されている。Nodeというのはある)検索が重くならないように、検索用ノードとインデックス生成用ノードを分ける運用がオススメみたい。elasticsearchはデフォルトでmulticastで通信を行い、同一ネットワークに属するノードを自動検出し、クラスタを形成する機能を有効にしている。簡単にクラスタが作れる反面、自動検出によってハマることも少なくないため、本運用時にも自動運用にさせるのは少し不安がある。モードデフォルトで有効。network.publish_hostの値を元にネットワークを自動検出し、クラスタを形成する。http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/modules-discovery-zen.htmlnetworkには_eth0:ipv4_のように具体的なIPやホスト名を指定せず、eth0に割り当てられたIPv4のアドレスを使うという指定もできる。Valueはnetwork-moduleの項目に一覧がある。discoveryモードになる。discovery.zen.ping.unicast.hostsに接続される全てのnodeのIPアドレスとport番号を指定する。"host2:port"]本運用時には、自動クラスタリングによる事故を防止する目的で、multicastモードを無効にするのがよさそう。elasticsearchのみで閉じたネットワークの場合には、unicastモードの利点が活かせるかもしれない。手元のメモの続きはフェイルオーバーの話が続いているけど、次回はプラグイン周りの紹介がいいような気もする。お品書きと近況です早いもので7月ももうおわり8月に突入。実行して長時間走っているクエリを探す月別アーカイブTwitter@t_cyrillさんのツイートはてなブログをはじめよう!t-cyrillさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。