ねこものがたり

いちにちいっぽ

brew installしたElasticsearchの設定を変更する

ゆるゆるとElasticsearch実践ガイドをやっています。具体的に言うと2章に入っていて、手元で自由に使いこなせるようになるまでの道のりでいちいち躓いています。躓いているので備忘録!

設定ファイルの場所

”2-4-4 基本設定”の節で触れられているellasticserach.ymlの中を編集するについて、このファイルは書籍では"/etc/elasticsearch/"以下にあると紹介されていますが、ディレクトリ自体ありませんでした。困った。

$ ls /etc/elasticsearch/
ls: /etc/elasticsearch/: No such file or directory

ではどこにあるか。情報を見てみます。

$  brew info elasticsearch
elasticsearch: stable 6.8.6, HEAD
Distributed search & analytics engine
https://www.elastic.co/products/elasticsearch
Not installed
From: https://github.com/Homebrew/homebrew-core/blob/master/Formula/elasticsearch.rb
==> Requirements
Required: java = 1.8==> Options
--HEAD
    Install HEAD version
==> Caveats
Data:    /usr/local/var/lib/elasticsearch/
Logs:    /usr/local/var/log/elasticsearch/elasticsearch_keiko.log
Plugins: /usr/local/var/elasticsearch/plugins/
Config:  /usr/local/etc/elasticsearch/

To have launchd start elasticsearch now and restart at login:
  brew services start elasticsearch
Or, if you don't want/need a background service you can just run:
  elasticsearch
==> Analytics
install: 7,175 (30 days), 21,247 (90 days), 109,009 (365 days)
install-on-request: 6,817 (30 days), 20,248 (90 days), 103,053 (365 days)
build-error: 0 (30 days)

Config: /usr/local/etc/elasticsearch/とあるので、/usr/local/etc/elasticsearch/にありそうです。

/usr/local/etc/elasticsearch/

このディレクトリには以下のファイルがありました。

$ tree /usr/local/etc/elasticsearch/
/usr/local/etc/elasticsearch/
├── elasticsearch.keystore
├── elasticsearch.yml
├── jvm.options
├── log4j2.properties
├── role_mapping.yml
├── roles.yml
├── users
└── users_roles

elasticsearch.ymlを変更する

手始めにクラスターの名前を変えてみます!

- cluster.name: elasticsearch_keiko
+ cluster.name: elasticsearch_neko314

これで再起動して、接続してみます。

# 設定ファイルを変更したら再起動
$ elasticsearch 

# 別ターミナルで操作
$ curl -XGET http://localhost:9200
{
  "name" : "kanekokeikonoMacBook.local",
  "cluster_name" : "elasticsearch_neko314", # 新しい値になっている
  "cluster_uuid" : "NUXBP0TIRYCp9CRmCJgi9Q",
  "version" : {
    "number" : "7.6.0",
    "build_flavor" : "default",
    "build_type" : "tar",
    "build_hash" : "7f634e9f44834fbc12724506cc1da681b0c3b1e3",
    "build_date" : "2020-02-06T00:09:00.449973Z",
    "build_snapshot" : false,
    "lucene_version" : "8.4.0",
    "minimum_wire_compatibility_version" : "6.8.0",
    "minimum_index_compatibility_version" : "6.0.0-beta1"
  },
  "tagline" : "You Know, for Search"
}

クラスタ名が変わりました!!! (変更前の内容

設定値を環境変数にする

環境変数も使えるということだったのでやってみました。

# 環境変数の設定
$ set -x ELASTICSEARCH_CLUSTER_NAME elasticsearch_neko
$ env | grep ELASTICSEARCH_CLUSTER_NAME
ELASTICSEARCH_CLUSTER_NAME=elasticsearch_neko


# elasticsearch.yml
- cluster.name: elasticsearch_neko314
+ cluster.name: ${ELASTICSEARCH_CLUSTER_NAME}


# 再起動
$ elasticsearch

# 接続確認
$ curl -XGET http://localhost:9200
{
  "name" : "kanekokeikonoMacBook.local",
  "cluster_name" : "elasticsearch_neko", # 値が環境変数に入れた値になっている
  "cluster_uuid" : "NUXBP0TIRYCp9CRmCJgi9Q",
  "version" : {
    "number" : "7.6.0",
    "build_flavor" : "default",
    "build_type" : "tar",
    "build_hash" : "7f634e9f44834fbc12724506cc1da681b0c3b1e3",
    "build_date" : "2020-02-06T00:09:00.449973Z",
    "build_snapshot" : false,
    "lucene_version" : "8.4.0",
    "minimum_wire_compatibility_version" : "6.8.0",
    "minimum_index_compatibility_version" : "6.0.0-beta1"
  },
  "tagline" : "You Know, for Search"
}

やったぁ!

以下同様に他の設定についてもお試ししていきたいと思います。

プログラミングの基礎 #9

今回は祝日なので朝10:00から開催し、8章(レコード)の後半と9章(リスト)を進めました。

https://nerimarb.esa.io/posts/22

学んだことメモ

  • リストは大量のデータ、任意の大きさのデータを扱うのに向いている
  • 再帰的な型定義はできてしまうけど使えない

その他

この本は1年前くらいに一人でやりかけてよくわからなくて途中で終わった経験があるけど、今は特に詰まったりしないで毎週この会の時間だけで処理ができています。

この1年でいくつかの言語やフレームワーク(Haskell, Vue, TS, Kotlinあたり)をやっていたことで、同じ概念に違う角度からスパイラル的に何度も触れることができているのが良いように思います。

あと『Rubyで作るRuby』をやったのは本当に良かったです。

この本でいうと再帰とか面白いし、型もだいぶ自分に馴染んできたと感じていて、「厳密な型チェック」があることによる安心感を感じてもいます。 自分が仕事で書くときのRuby, Railsのコードも前と少し変わっていると思います。(コメントの仕方、戻り値への意識とか)

会の進度としてはゆっくりかもしれないけど、毎週2時間で手応えと新しい学びを感じながら、これからも続けていけたらいいなと思っています。