SlideShare ist ein Scribd-Unternehmen logo
1 von 44
Downloaden Sie, um offline zu lesen
Copyright(C)2014 Recruit Technologies Co.,Ltd All rights reserved
ここがツラいよElasticsearch
⾼高林林  貴仁/@tatakaba
2016/01/07
Copyright(C)2014  Recruit  Technologies  Co.,Ltd  All  rights  reserved
2
⾃自⼰己紹介
⾼高林林  貴仁  /  @tatakaba
2011  〜~  リクルート⼊入社
APソリューショングループ
Ø 検索索基盤
Ø データ解析
Ø DWHとCEP
Ø Webアプリケーション開発
Ø R&D(ウェアラブル端末等)
それ以前
Ø 主に検索索システム担当
Ø web,地図,local検索索等
Ø WPO(Web  Performance  
Optimization)
Copyright(C)2014  Recruit  Technologies  Co.,Ltd  All  rights  reserved
Elastic{ON}ダイジェスト  ~∼  活⽤用例例  〜~
Copyright(C)2014  Recruit  Technologies  Co.,Ltd  All  rights  reserved
4
Elasticsearchを活⽤用したサービス基盤
全社プッシュ通知基盤
l  リアルタイムな検索索要件
l  Dynamoの補完
検索索
条件抽出
データ取得
全社検索索基盤
l  サイト内検索索
l  キーワードサジェスト
l  スペラー
l  関連検索索ワード
可視化
l  UU
l  コンバージョン
l  ログ
Copyright(C)2014  Recruit  Technologies  Co.,Ltd  All  rights  reserved
5
全社検索索基盤:QASS
検索索結果をQass基盤へ集約
検索索に関連する情報を⼀一箇所に集積検
索索結果を横断的に専⾨門家が集約・分析
機械学習による検索索品質向上
ログを利利⽤用することで、
検索索品質の向上を⾏行行う
検索索結果分析基盤
検索索品質の継続的向上を⾏行行う全社基盤
フィードバックサイクル
による検索索改善
Copyright(C)2014  Recruit  Technologies  Co.,Ltd  All  rights  reserved
6
QASSの全体構成
各サイトのindex
(Doc数:数百万〜~数千万単位)
Copyright(C)2014  Recruit  Technologies  Co.,Ltd  All  rights  reserved
7
全社プッシュ通知基盤:Pusna-‐‑‒RS
p  スマートフォンなどに簡単に通知を送る事ができる仕組み
GCM
Google  Cloud  Messaging
Push!	
Push!	
APNs
Apple  Push  Notification  Service
Copyright(C)2014  Recruit  Technologies  Co.,Ltd  All  rights  reserved
8
Pusna-‐‑‒RSの全体構成
リクルート
8	
  
デバイス管理理
プッシュ配信管理理
DynamoDB Elasticsearch
登録API SQS 登録worker
配信worker SQS
操作⽤用WebUI
管理理API
配信担当者
データ基盤
APNs
GCM
事業サーバ
デバイス情報や配信情報の
実データの索索引として利利⽤用
(Doc数:億単位)
Copyright(C)2014  Recruit  Technologies  Co.,Ltd  All  rights  reserved
9
可視化
各サービスの定量量的な指標確認
l  コンバージョン
l  Bucket(A/B)テスト
l  ログ監視
l  ユーザログ
検索索結果の分析
検索索効果の可視化
サービスノード
lo
g
サービスメトリクス
の可視化
検索索結果分析基盤
Copyright(C)2014  Recruit  Technologies  Co.,Ltd  All  rights  reserved
Elastic{ON}ダイジェスト  ~∼  運⽤用編  〜~
Copyright(C)2014  Recruit  Technologies  Co.,Ltd  All  rights  reserved
11
Elasticsearch運⽤用編
Plugin機構の利利⽤用
動的ロード
A/Bテスト
Snapshot機構の利利⽤用
オンラインバックアップ
本番環境の複製
環境に合わせたIndex作成
AWS(クラウド上)環境
オンプレミス環境
Qass	
  Plugin
ICU	
  Plugin Kuromoji	
  
Plugin
…	
  
Plugin
Alias Alias
Copyright(C)2014  Recruit  Technologies  Co.,Ltd  All  rights  reserved
12
独⾃自プラグイン
Qass独⾃自のPlugin機構
独⾃自の機構により無停⽌止のモジュール更更新
サイト運営に影響を与えず検索索改善
⾼高速な検索索軸でのA/Bテスト可能な基盤を整備
各サービスサイト Qass  Plugin
検索索チーム
検索索ロジックA  v1
検索索ロジックB  v1 検索索ロジックB  v2
検索索チームで動的切切替
Copyright(C)2014  Recruit  Technologies  Co.,Ltd  All  rights  reserved
13
SnapShotの活⽤用
Snapshot/Restore  APIをJenkinsで定期実⾏行行
実際の検索索結果を元に検索索改善を実施するクラスタを複製
データサイエンティストが⾃自由に検索索アルゴリズムを操作、確認可能
Snapshot  API
Snapshots
サービス⽤用クラスタ
検索索改善⽤用クラスタ
Restore  API
本番同等の内容で
検索索改善結果を確認可能な
環境を⾃自動的に⽣生成
アルゴリズムの操作
結果の確認
Copyright(C)2014  Recruit  Technologies  Co.,Ltd  All  rights  reserved
14
環境に合わせたIndex作成
環境によって異異なるIndex作成⽅方法を採⽤用
どのような環境でもサービス影響出さず安全な更更新が可能
AWS環境
サービス⽤用クラスタ
(Blue⾯面)
サービス⽤用クラスタ
(Green⾯面)
Blue-‐‑‒Green  Deployでク
ラスタ切切替
オンプレミス環境
Index
A
Index
B
Doc
Alias Alias
River:差分更更新
Aliasで
Index切切替
サービスノードサービスノード
Copyright(C)2014  Recruit  Technologies  Co.,Ltd  All  rights  reserved
Elastic{ON}ダイジェスト  ~∼  運⽤用時の注意点  〜~
Copyright(C)2014  Recruit  Technologies  Co.,Ltd  All  rights  reserved
16
バージョンアップ
Qass Pusna 可視化
バージョン
0.9
1.4
1.5 1.5
1.7
2.1
最新バージョンを
利利⽤用するようにしているが、
リリースサイクルが早く
追いつききれていない
バージョンアップの際はどのような対応が必要か?
Copyright(C)2014  Recruit  Technologies  Co.,Ltd  All  rights  reserved
17
バージョンアップ
0.9  -‐‑‒>  1.7へのバージョンアップ
2バージョンのクラスタを⽤用意してリアルタイムで移⾏行行
v0.9  クラスタ v1.7  クラスタ
両⽅方へ書込
v0.9  クラスタ v1.7  クラスタ
⽚片バージョンを切切り離離し
APIやレスポンスが変わっているため、
そのままの移⾏行行は不不可能
Copyright(C)2014  Recruit  Technologies  Co.,Ltd  All  rights  reserved
18
リクルートのelasticSearchの活⽤用
l 検索索基盤として、Pluginを活⽤用した最適化
l QueryのRewrite
l 重み付けsort
l SolrのリクエストをElasticsearchで受け付けれる
l Dynamoの補完とリアルタイム性
l DyanamoDBが苦⼿手なデータ検索索の補完
l リアルタイム性を利利⽤用したPush通知
l データの可視化
l データをグラフで可視化するとわかりやすい!
l 説得材料料になる!
Copyright(C)2014  Recruit  Technologies  Co.,Ltd  All  rights  reserved
ここがツラいよElasticsearch
Copyright(C)2014  Recruit  Technologies  Co.,Ltd  All  rights  reserved
1:バージョンアップがツラいよ!!
Copyright(C)2014  Recruit  Technologies  Co.,Ltd  All  rights  reserved
21
バージョンアップがツラいよ!!
p  1.0.0(2014/02/12)がリリース以降降、頻繁にupdateが⾏行行われている。
最新版は、2.1.1
p   サービスをバージョンアップを⾏行行う場合、現⾏行行で利利⽤用しているAPI正
常に動作するか検証する必要があるため、バージョンアップにコスト
がかかる。
p APIも⼤大幅に変更更される場合あり
p 各バージョンのPluginを⽤用意しないとならない
p 2.x以降降は、集計処理理(Aggregation)機能が強化されたイメージが強
いので、検索索エンジンとしては、必要な機能をみたいしている為、
bugFix以外では、2.x系にバージョンアップをするモチベーションが
上がらない。
ただし、Elasticのサポートが必要な場合は、3バージョンしかサポートして
くれないらしいので、サポートをうける場合バージョンアップをする必要あり。
Copyright(C)2014  Recruit  Technologies  Co.,Ltd  All  rights  reserved
22
Elastic社が来⽇日した時に、
upgradeに関して質問した所・・・
Copyright(C)2014  Recruit  Technologies  Co.,Ltd  All  rights  reserved
23
Elastic社にきいた簡単なバージョンアップ法
VIP
既存クラスタ 新クラスタ
両⽅方へ書込
既存クラスタ 新クラスタ
VIP
LB reIndexが終わった段
階でSearch⽤用のLBを
切切り替えればいいよ!
LB
VIP VIP
LBの向き
先を変更更オンプレの環境だと、クラスタの準備や
VIPの切切替などの⾊色々⼤大変
Copyright(C)2014  Recruit  Technologies  Co.,Ltd  All  rights  reserved
2:Riverが⾮非推奨なったのツラいよ!!
Copyright(C)2014  Recruit  Technologies  Co.,Ltd  All  rights  reserved
25
Riverが⾮非推奨なったのツラいよ!!
p  1.5.xからriverは、⾮非推奨となり、2.0からは、riverは削除されます。
h7ps://www.elas>c.co/blog/depreca>ng-­‐rivers	
  
Copyright(C)2014  Recruit  Technologies  Co.,Ltd  All  rights  reserved
26
検索索基盤:QassでのRiver利利⽤用事例例
サイト
検索索
サーバー
Web  server
Batch  server
NFS
riverdata.ulogid
Admin
1.  インデックス作成
3.  インデックス作成
Qass  Client
2.  インデックス作成リクエスト
4.  インデクシング
Indexer
5.  インデクシングリクエスト
4.  update_̲log  出⼒力力(file  put)
5.  update_̲log  を読んで、
  データを更更新(nfs  mount)
Update  log  file:/YYYMMDD/${ulogid}.qass.gz
mount mount
Indexの作成が、Riverに依存している
Copyright(C)2014  Recruit  Technologies  Co.,Ltd  All  rights  reserved
27
Riverを利利⽤用しない、新しい仕組みが必要
Copyright(C)2014  Recruit  Technologies  Co.,Ltd  All  rights  reserved
28
現在、検討中の案
p  River同等の処理理を⾏行行うプロセスを⽴立立ち上げて、Zookeeperにて、管理理
p  その他にもconsul,Kafka+Logstashなどの実装も検討  
Server1
river代替
process
zookeeper
Server2
river代替
process
zookeeper
Server3
river代替
process
zookeeper
共有設定
どのサー
バーで
最後に何
時、動作
したのか
を保持す
る
Server1でうごく
Copyright(C)2014  Recruit  Technologies  Co.,Ltd  All  rights  reserved
29
検討中の案
Zookeeperが起動プロセスを管理理しているので
同時起動で重複書き込みのリスクが減らせる
Server1
river代替
process
zookeeper
Server2
river代替
process
zookeeper
Server3
river代替
process
zookeeper
共有設定
最後に動いた時間から、
数分経ったので、
どちらかが動く
Server3で動く:20151110_̲17000000に動いた
Copyright(C)2014  Recruit  Technologies  Co.,Ltd  All  rights  reserved
3:フィールドに「.」が使えないのがツラいよ!!
Copyright(C)2014  Recruit  Technologies  Co.,Ltd  All  rights  reserved
31
フィールドに「.」が使えないのがツラいよ!!
p  2.xから「.」をフィールドが利利⽤用できない
p index/mapper/object/ObjectMapper.javaにある、parseProperties
メソッドで、FileldNameをチェックしてるのでelasticsearchが⽴立立ち
上がらない。
p 1.x系からUpgradeする際には、elasticsearch-‐‑‒migrationプラグイン
で確認すること
h"ps://github.com/elas3c/elas3csearch-­‐migra3on
Copyright(C)2014  Recruit  Technologies  Co.,Ltd  All  rights  reserved
32
p  昔(Solr)から、Fieldの命名規則に、「.」を付けているサービスが多い
p  アプリのフレームワークにも依存している部分が⼤大きいため、影響範囲が
⼤大きい
フィールドに「.」が使えないのがツラいよ!!
h7ps://www.elas>c.co/guide/en/elas>csearch/reference/current/
breaking_20_mapping_changes.html
Copyright(C)2014  Recruit  Technologies  Co.,Ltd  All  rights  reserved
4:Replication-‐‑‒Async⾮非推奨がツラいよ!!
Copyright(C)2014  Recruit  Technologies  Co.,Ltd  All  rights  reserved
34
Replication-‐‑‒Async⾮非推奨がツラいよ!!
p  1.5より、ReplicationのAysncが⾮非推奨(2.0では削除)
p  全件更更新の際に更更新スピードを上げる為、Aysncを利利⽤用
Copyright(C)2014  Recruit  Technologies  Co.,Ltd  All  rights  reserved
5:ズレがツラいよ!!
Copyright(C)2014  Recruit  Technologies  Co.,Ltd  All  rights  reserved
36
ズレがツラいよ!!
p  リロケート、リバランス、レプリカ⽣生成中に、primaryに更更新が⼊入ると
documentにズレが発⽣生
p  レプリカ時の現象に関しては、2.xで解消済み(Issue⾒見見当たらず)
p  Issueは、すでに上がっている(#13719、#14252)
Copyright(C)2014  Recruit  Technologies  Co.,Ltd  All  rights  reserved
37
①セグメントファイルのコピー
②トランザクションのコピー
Shardの移動(relocate,rebalance)の発⽣生時
セグメントファイルを新しいnodeにコピー後、トランザクションファイルがコピー
されて、追っかけ更更新(トランザクションの読み込み)が始まり、shardの同期が⼊入る
が、更更新(add,delete,update)が⼊入った場合にドキュメントに差異異が発⽣生!!
ただし、status的にはgreenな為、ドキュメント数で確認するしかない。
更更新(UPDATE,DELETE,INSERT)が⼊入ると・・・。
途中のデータが⽋欠損している場合がある。(リアルタイム更更新等)
Copyright(C)2014  Recruit  Technologies  Co.,Ltd  All  rights  reserved
38
対策案
サイト
検索索
サーバー
Web  server
Batch  server
NFS
riverdata.ulogid
Admin
1.  インデックス作成
3.  インデックス作成
Qass  Client
2.  インデックス作成リクエスト
4.  インデクシング
Indexer
5.  インデクシングリクエスト
4.  update_̲log  出⼒力力(file  put)
5.  update_̲log  を読んで、
  データを更更新(nfs  mount)
Update  log  file:/YYYMMDD/${ulogid}.qass.gz
mount mount
Doucumet数のズレを監視して、ズレが
あれば過去のupdateログから再実⾏行行
Copyright(C)2014  Recruit  Technologies  Co.,Ltd  All  rights  reserved
最後に
Copyright(C)2014  Recruit  Technologies  Co.,Ltd  All  rights  reserved
40
検索索関係のディスカッション
p  Facebook上で「検索索技術研究会」というグループで検索索やビックデータ
系の技術を共有してますので、こちらも是⾮非参加してみてください。
h7ps://www.facebook.com/groups/search.tech/
Copyright(C)2014  Recruit  Technologies  Co.,Ltd  All  rights  reserved
41
参考資料料
p Qass
p Elasticsearch+Hadoopベースの⼤大規模検索索基盤⼤大解剖
p Pusna-‐‑‒RS
p ⼤大規模プッシュ通知基盤⼤大解剖
p リクルートテクノロジーズについて
Qass
pusna-‐‑‒rs
リクルートテクノロジーズ  ブログ
Copyright(C)2014  Recruit  Technologies  Co.,Ltd  All  rights  reserved
42
リクルートテクノロジーズでは、
Elasticsearchを始めとした、
“先端技術”を使って⼀一緒に仕事をする
仲間を募集しています!
43
Copyright(C)2014  Recruit  Technologies  Co.,Ltd  All  rights  reserved
ご清聴ありがとうございました!

Weitere ähnliche Inhalte

Was ist angesagt?

APIを叩くだけでない、Deep Learning on AWS で自分だけの学習モデルを作ろう! by JAWS-UG AI支部
APIを叩くだけでない、Deep Learning on AWS で自分だけの学習モデルを作ろう! by JAWS-UG AI支部APIを叩くだけでない、Deep Learning on AWS で自分だけの学習モデルを作ろう! by JAWS-UG AI支部
APIを叩くだけでない、Deep Learning on AWS で自分だけの学習モデルを作ろう! by JAWS-UG AI支部Daisuke Nagao
 
デジタル化への第一歩 「エンタープライズデータレイク構築事例のご紹介」
デジタル化への第一歩  「エンタープライズデータレイク構築事例のご紹介」デジタル化への第一歩  「エンタープライズデータレイク構築事例のご紹介」
デジタル化への第一歩 「エンタープライズデータレイク構築事例のご紹介」BeeX.inc
 
AWSによるサーバーレスアーキテクチャ
AWSによるサーバーレスアーキテクチャAWSによるサーバーレスアーキテクチャ
AWSによるサーバーレスアーキテクチャ真吾 吉田
 
DevOpsとか言う前にAWSエンジニアに知ってほしいアプリケーションのこと
DevOpsとか言う前にAWSエンジニアに知ってほしいアプリケーションのことDevOpsとか言う前にAWSエンジニアに知ってほしいアプリケーションのこと
DevOpsとか言う前にAWSエンジニアに知ってほしいアプリケーションのことTerui Masashi
 
アメーバブログを支えるデータセンターとインフラ技術
アメーバブログを支えるデータセンターとインフラ技術 アメーバブログを支えるデータセンターとインフラ技術
アメーバブログを支えるデータセンターとインフラ技術 Hiroki NAKASHIMA
 
AWSでのセキュリティ運用 ~ IAM,VPCその他
AWSでのセキュリティ運用 ~IAM,VPCその他AWSでのセキュリティ運用 ~IAM,VPCその他
AWSでのセキュリティ運用 ~ IAM,VPCその他Recruit Technologies
 
【初公開】チャットワーク検索機能を支える技術
【初公開】チャットワーク検索機能を支える技術【初公開】チャットワーク検索機能を支える技術
【初公開】チャットワーク検索機能を支える技術Yoshinori Fujiwara
 
クラウド時代だからこそ見直したい
PHPアプリケーションのパフォーマンスチューニング
クラウド時代だからこそ見直したい
PHPアプリケーションのパフォーマンスチューニングクラウド時代だからこそ見直したい
PHPアプリケーションのパフォーマンスチューニング
クラウド時代だからこそ見直したい
PHPアプリケーションのパフォーマンスチューニングTerui Masashi
 
NuxtJS + REST APIで運用中サービスをNuxtJS + GraphQLに変更したことによる光と影
NuxtJS + REST APIで運用中サービスをNuxtJS + GraphQLに変更したことによる光と影NuxtJS + REST APIで運用中サービスをNuxtJS + GraphQLに変更したことによる光と影
NuxtJS + REST APIで運用中サービスをNuxtJS + GraphQLに変更したことによる光と影gree_tech
 
AWS & Google Cloud 両方を駆使するチームでの技術選定
AWS & Google Cloud  両方を駆使するチームでの技術選定AWS & Google Cloud  両方を駆使するチームでの技術選定
AWS & Google Cloud 両方を駆使するチームでの技術選定修一 高橋
 
2018/9/11 SAP on AWS お客様事例セミナー@東京(BeeX資料2/2)
2018/9/11 SAP on AWS お客様事例セミナー@東京(BeeX資料2/2)2018/9/11 SAP on AWS お客様事例セミナー@東京(BeeX資料2/2)
2018/9/11 SAP on AWS お客様事例セミナー@東京(BeeX資料2/2)BeeX.inc
 
AWS re:Inventに行くために今日からやるべき3つのこと
AWS re:Inventに行くために今日からやるべき3つのことAWS re:Inventに行くために今日からやるべき3つのこと
AWS re:Inventに行くために今日からやるべき3つのこと真吾 吉田
 
2014-07-26 jawsug-chiba ドキュメントを書こう! 運用自動化時代のドキュメンテーション
2014-07-26 jawsug-chiba ドキュメントを書こう! 運用自動化時代のドキュメンテーション2014-07-26 jawsug-chiba ドキュメントを書こう! 運用自動化時代のドキュメンテーション
2014-07-26 jawsug-chiba ドキュメントを書こう! 運用自動化時代のドキュメンテーションOperation Lab, LLC.
 
2018/9/11 SAP on AWS お客様事例セミナー@東京(BeeX資料1/2)
2018/9/11 SAP on AWS お客様事例セミナー@東京(BeeX資料1/2)2018/9/11 SAP on AWS お客様事例セミナー@東京(BeeX資料1/2)
2018/9/11 SAP on AWS お客様事例セミナー@東京(BeeX資料1/2)BeeX.inc
 
SAP S/4HANA化に向けたAWS構築・移行の勘所(インフラベーシス編)
SAP S/4HANA化に向けたAWS構築・移行の勘所(インフラベーシス編)SAP S/4HANA化に向けたAWS構築・移行の勘所(インフラベーシス編)
SAP S/4HANA化に向けたAWS構築・移行の勘所(インフラベーシス編)BeeX.inc
 
Dist 29 gcp_serverless_web_app_development
Dist 29 gcp_serverless_web_app_developmentDist 29 gcp_serverless_web_app_development
Dist 29 gcp_serverless_web_app_developmentShotaro Suzuki
 
JAWS DAYS 2017 Mafia Talk
JAWS DAYS 2017 Mafia TalkJAWS DAYS 2017 Mafia Talk
JAWS DAYS 2017 Mafia Talk真吾 吉田
 

Was ist angesagt? (20)

APIを叩くだけでない、Deep Learning on AWS で自分だけの学習モデルを作ろう! by JAWS-UG AI支部
APIを叩くだけでない、Deep Learning on AWS で自分だけの学習モデルを作ろう! by JAWS-UG AI支部APIを叩くだけでない、Deep Learning on AWS で自分だけの学習モデルを作ろう! by JAWS-UG AI支部
APIを叩くだけでない、Deep Learning on AWS で自分だけの学習モデルを作ろう! by JAWS-UG AI支部
 
Yahoo! JAPAN MeetUp #8 (インフラ技術カンファレンス)LT⑦
Yahoo! JAPAN MeetUp #8 (インフラ技術カンファレンス)LT⑦Yahoo! JAPAN MeetUp #8 (インフラ技術カンファレンス)LT⑦
Yahoo! JAPAN MeetUp #8 (インフラ技術カンファレンス)LT⑦
 
デジタル化への第一歩 「エンタープライズデータレイク構築事例のご紹介」
デジタル化への第一歩  「エンタープライズデータレイク構築事例のご紹介」デジタル化への第一歩  「エンタープライズデータレイク構築事例のご紹介」
デジタル化への第一歩 「エンタープライズデータレイク構築事例のご紹介」
 
AWSによるサーバーレスアーキテクチャ
AWSによるサーバーレスアーキテクチャAWSによるサーバーレスアーキテクチャ
AWSによるサーバーレスアーキテクチャ
 
Storm の新機能について @HSCR #hadoopreading
Storm の新機能について @HSCR #hadoopreadingStorm の新機能について @HSCR #hadoopreading
Storm の新機能について @HSCR #hadoopreading
 
Yahoo! JAPANにおけるオンライン機械学習実例 #streamctjp
Yahoo! JAPANにおけるオンライン機械学習実例 #streamctjpYahoo! JAPANにおけるオンライン機械学習実例 #streamctjp
Yahoo! JAPANにおけるオンライン機械学習実例 #streamctjp
 
DevOpsとか言う前にAWSエンジニアに知ってほしいアプリケーションのこと
DevOpsとか言う前にAWSエンジニアに知ってほしいアプリケーションのことDevOpsとか言う前にAWSエンジニアに知ってほしいアプリケーションのこと
DevOpsとか言う前にAWSエンジニアに知ってほしいアプリケーションのこと
 
アメーバブログを支えるデータセンターとインフラ技術
アメーバブログを支えるデータセンターとインフラ技術 アメーバブログを支えるデータセンターとインフラ技術
アメーバブログを支えるデータセンターとインフラ技術
 
AWSでのセキュリティ運用 ~ IAM,VPCその他
AWSでのセキュリティ運用 ~IAM,VPCその他AWSでのセキュリティ運用 ~IAM,VPCその他
AWSでのセキュリティ運用 ~ IAM,VPCその他
 
【初公開】チャットワーク検索機能を支える技術
【初公開】チャットワーク検索機能を支える技術【初公開】チャットワーク検索機能を支える技術
【初公開】チャットワーク検索機能を支える技術
 
クラウド時代だからこそ見直したい
PHPアプリケーションのパフォーマンスチューニング
クラウド時代だからこそ見直したい
PHPアプリケーションのパフォーマンスチューニングクラウド時代だからこそ見直したい
PHPアプリケーションのパフォーマンスチューニング
クラウド時代だからこそ見直したい
PHPアプリケーションのパフォーマンスチューニング
 
NuxtJS + REST APIで運用中サービスをNuxtJS + GraphQLに変更したことによる光と影
NuxtJS + REST APIで運用中サービスをNuxtJS + GraphQLに変更したことによる光と影NuxtJS + REST APIで運用中サービスをNuxtJS + GraphQLに変更したことによる光と影
NuxtJS + REST APIで運用中サービスをNuxtJS + GraphQLに変更したことによる光と影
 
AWS & Google Cloud 両方を駆使するチームでの技術選定
AWS & Google Cloud  両方を駆使するチームでの技術選定AWS & Google Cloud  両方を駆使するチームでの技術選定
AWS & Google Cloud 両方を駆使するチームでの技術選定
 
2018/9/11 SAP on AWS お客様事例セミナー@東京(BeeX資料2/2)
2018/9/11 SAP on AWS お客様事例セミナー@東京(BeeX資料2/2)2018/9/11 SAP on AWS お客様事例セミナー@東京(BeeX資料2/2)
2018/9/11 SAP on AWS お客様事例セミナー@東京(BeeX資料2/2)
 
AWS re:Inventに行くために今日からやるべき3つのこと
AWS re:Inventに行くために今日からやるべき3つのことAWS re:Inventに行くために今日からやるべき3つのこと
AWS re:Inventに行くために今日からやるべき3つのこと
 
2014-07-26 jawsug-chiba ドキュメントを書こう! 運用自動化時代のドキュメンテーション
2014-07-26 jawsug-chiba ドキュメントを書こう! 運用自動化時代のドキュメンテーション2014-07-26 jawsug-chiba ドキュメントを書こう! 運用自動化時代のドキュメンテーション
2014-07-26 jawsug-chiba ドキュメントを書こう! 運用自動化時代のドキュメンテーション
 
2018/9/11 SAP on AWS お客様事例セミナー@東京(BeeX資料1/2)
2018/9/11 SAP on AWS お客様事例セミナー@東京(BeeX資料1/2)2018/9/11 SAP on AWS お客様事例セミナー@東京(BeeX資料1/2)
2018/9/11 SAP on AWS お客様事例セミナー@東京(BeeX資料1/2)
 
SAP S/4HANA化に向けたAWS構築・移行の勘所(インフラベーシス編)
SAP S/4HANA化に向けたAWS構築・移行の勘所(インフラベーシス編)SAP S/4HANA化に向けたAWS構築・移行の勘所(インフラベーシス編)
SAP S/4HANA化に向けたAWS構築・移行の勘所(インフラベーシス編)
 
Dist 29 gcp_serverless_web_app_development
Dist 29 gcp_serverless_web_app_developmentDist 29 gcp_serverless_web_app_development
Dist 29 gcp_serverless_web_app_development
 
JAWS DAYS 2017 Mafia Talk
JAWS DAYS 2017 Mafia TalkJAWS DAYS 2017 Mafia Talk
JAWS DAYS 2017 Mafia Talk
 

Ähnlich wie Elasticsearch勉強会

AppPot製品概要
AppPot製品概要AppPot製品概要
AppPot製品概要Ryohei Sogo
 
Automation of Rolling Upgrade of Hadoop Cluster without Data Lost and Job Fai...
Automation of Rolling Upgrade of Hadoop Cluster without Data Lost and Job Fai...Automation of Rolling Upgrade of Hadoop Cluster without Data Lost and Job Fai...
Automation of Rolling Upgrade of Hadoop Cluster without Data Lost and Job Fai...Yahoo!デベロッパーネットワーク
 
Unification of the middle scale services by Nuxt.js
Unification of the middle scale services by Nuxt.jsUnification of the middle scale services by Nuxt.js
Unification of the middle scale services by Nuxt.jsHajimeSasanuma
 
何故DeNAがverticaを選んだか?
何故DeNAがverticaを選んだか?何故DeNAがverticaを選んだか?
何故DeNAがverticaを選んだか?Kenshin Yamada
 
fastlane x iOSアプリのCI
fastlane x iOSアプリのCIfastlane x iOSアプリのCI
fastlane x iOSアプリのCIToshiyuki Hirata
 
【HinemosWorld2014】A2-4_Hinemos レポーティングオプションを活用したLinux+Apache+PostgreSQLの監視とレポ...
【HinemosWorld2014】A2-4_Hinemos レポーティングオプションを活用したLinux+Apache+PostgreSQLの監視とレポ...【HinemosWorld2014】A2-4_Hinemos レポーティングオプションを活用したLinux+Apache+PostgreSQLの監視とレポ...
【HinemosWorld2014】A2-4_Hinemos レポーティングオプションを活用したLinux+Apache+PostgreSQLの監視とレポ...Hinemos
 
おすすめインフラ! for スタートアップ
おすすめインフラ! for スタートアップおすすめインフラ! for スタートアップ
おすすめインフラ! for スタートアップKoichiro Sumi
 
Automation with SoftLayer and Zabbix
Automation with SoftLayer and ZabbixAutomation with SoftLayer and Zabbix
Automation with SoftLayer and Zabbixsoftlayerjp
 
チラシルiOSでの広告枠開発
チラシルiOSでの広告枠開発チラシルiOSでの広告枠開発
チラシルiOSでの広告枠開発Satoshi Takano
 
オールアバウトにおける技術への取り組み
オールアバウトにおける技術への取り組みオールアバウトにおける技術への取り組み
オールアバウトにおける技術への取り組みKazuto Ohara
 
Dangerでpull requestレビューの指摘事項を減らす
Dangerでpull requestレビューの指摘事項を減らすDangerでpull requestレビューの指摘事項を減らす
Dangerでpull requestレビューの指摘事項を減らすShunsuke Maeda
 
MSC2014_NetApp_Session
MSC2014_NetApp_SessionMSC2014_NetApp_Session
MSC2014_NetApp_SessionTakano Masaru
 
Spring I/O 2016 報告 Test / Cloud / Other Popular Sessions
Spring I/O 2016 報告 Test / Cloud / Other Popular SessionsSpring I/O 2016 報告 Test / Cloud / Other Popular Sessions
Spring I/O 2016 報告 Test / Cloud / Other Popular SessionsTakuya Iwatsuka
 
APIに関するセッション資料
APIに関するセッション資料APIに関するセッション資料
APIに関するセッション資料CData Software Japan
 
楽天インターネットスケーラブルコンピューティング;丸山先生レクチャーシリーズ2010第3回@楽天
楽天インターネットスケーラブルコンピューティング;丸山先生レクチャーシリーズ2010第3回@楽天楽天インターネットスケーラブルコンピューティング;丸山先生レクチャーシリーズ2010第3回@楽天
楽天インターネットスケーラブルコンピューティング;丸山先生レクチャーシリーズ2010第3回@楽天Hiro Yoshioka
 
リクルートにおけるPaaS活用事例
リクルートにおけるPaaS活用事例リクルートにおけるPaaS活用事例
リクルートにおけるPaaS活用事例Recruit Technologies
 

Ähnlich wie Elasticsearch勉強会 (20)

AppPot製品概要
AppPot製品概要AppPot製品概要
AppPot製品概要
 
Automation of Rolling Upgrade of Hadoop Cluster without Data Lost and Job Fai...
Automation of Rolling Upgrade of Hadoop Cluster without Data Lost and Job Fai...Automation of Rolling Upgrade of Hadoop Cluster without Data Lost and Job Fai...
Automation of Rolling Upgrade of Hadoop Cluster without Data Lost and Job Fai...
 
Unification of the middle scale services by Nuxt.js
Unification of the middle scale services by Nuxt.jsUnification of the middle scale services by Nuxt.js
Unification of the middle scale services by Nuxt.js
 
Googleアシスタントアプリ実際のところ
Googleアシスタントアプリ実際のところ Googleアシスタントアプリ実際のところ
Googleアシスタントアプリ実際のところ
 
何故DeNAがverticaを選んだか?
何故DeNAがverticaを選んだか?何故DeNAがverticaを選んだか?
何故DeNAがverticaを選んだか?
 
fastlane x iOSアプリのCI
fastlane x iOSアプリのCIfastlane x iOSアプリのCI
fastlane x iOSアプリのCI
 
【HinemosWorld2014】A2-4_Hinemos レポーティングオプションを活用したLinux+Apache+PostgreSQLの監視とレポ...
【HinemosWorld2014】A2-4_Hinemos レポーティングオプションを活用したLinux+Apache+PostgreSQLの監視とレポ...【HinemosWorld2014】A2-4_Hinemos レポーティングオプションを活用したLinux+Apache+PostgreSQLの監視とレポ...
【HinemosWorld2014】A2-4_Hinemos レポーティングオプションを活用したLinux+Apache+PostgreSQLの監視とレポ...
 
おすすめインフラ! for スタートアップ
おすすめインフラ! for スタートアップおすすめインフラ! for スタートアップ
おすすめインフラ! for スタートアップ
 
Automation with SoftLayer and Zabbix
Automation with SoftLayer and ZabbixAutomation with SoftLayer and Zabbix
Automation with SoftLayer and Zabbix
 
チラシルiOSでの広告枠開発
チラシルiOSでの広告枠開発チラシルiOSでの広告枠開発
チラシルiOSでの広告枠開発
 
オールアバウトにおける技術への取り組み
オールアバウトにおける技術への取り組みオールアバウトにおける技術への取り組み
オールアバウトにおける技術への取り組み
 
Dangerでpull requestレビューの指摘事項を減らす
Dangerでpull requestレビューの指摘事項を減らすDangerでpull requestレビューの指摘事項を減らす
Dangerでpull requestレビューの指摘事項を減らす
 
MSC2014_NetApp_Session
MSC2014_NetApp_SessionMSC2014_NetApp_Session
MSC2014_NetApp_Session
 
Spring I/O 2016 報告 Test / Cloud / Other Popular Sessions
Spring I/O 2016 報告 Test / Cloud / Other Popular SessionsSpring I/O 2016 報告 Test / Cloud / Other Popular Sessions
Spring I/O 2016 報告 Test / Cloud / Other Popular Sessions
 
Yahoo!ブラウザーにおける市場環境の分析と戦略化
Yahoo!ブラウザーにおける市場環境の分析と戦略化Yahoo!ブラウザーにおける市場環境の分析と戦略化
Yahoo!ブラウザーにおける市場環境の分析と戦略化
 
APIに関するセッション資料
APIに関するセッション資料APIに関するセッション資料
APIに関するセッション資料
 
楽天インターネットスケーラブルコンピューティング;丸山先生レクチャーシリーズ2010第3回@楽天
楽天インターネットスケーラブルコンピューティング;丸山先生レクチャーシリーズ2010第3回@楽天楽天インターネットスケーラブルコンピューティング;丸山先生レクチャーシリーズ2010第3回@楽天
楽天インターネットスケーラブルコンピューティング;丸山先生レクチャーシリーズ2010第3回@楽天
 
20170705 apiをつくろう
20170705 apiをつくろう20170705 apiをつくろう
20170705 apiをつくろう
 
YJTC18 A-1 大規模サーバの戦略
YJTC18 A-1 大規模サーバの戦略YJTC18 A-1 大規模サーバの戦略
YJTC18 A-1 大規模サーバの戦略
 
リクルートにおけるPaaS活用事例
リクルートにおけるPaaS活用事例リクルートにおけるPaaS活用事例
リクルートにおけるPaaS活用事例
 

Kürzlich hochgeladen

Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)Hiroshi Tomioka
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。iPride Co., Ltd.
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルCRI Japan, Inc.
 
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video UnderstandingToru Tamaki
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。iPride Co., Ltd.
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイスCRI Japan, Inc.
 
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...Toru Tamaki
 
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsUtilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsWSO2
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。iPride Co., Ltd.
 
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Gamesatsushi061452
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NTT DATA Technology & Innovation
 
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptxsn679259
 

Kürzlich hochgeladen (12)

Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
Observabilityは従来型の監視と何が違うのか(キンドリルジャパン社内勉強会:2022年10月27日発表)
 
新人研修 後半 2024/04/26の勉強会で発表されたものです。
新人研修 後半        2024/04/26の勉強会で発表されたものです。新人研修 後半        2024/04/26の勉強会で発表されたものです。
新人研修 後半 2024/04/26の勉強会で発表されたものです。
 
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアルLoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
LoRaWAN スマート距離検出デバイスDS20L日本語マニュアル
 
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
論文紹介:Selective Structured State-Spaces for Long-Form Video Understanding
 
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その32024/04/26の勉強会で発表されたものです。
 
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
LoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイスLoRaWANスマート距離検出センサー  DS20L  カタログ  LiDARデバイス
LoRaWANスマート距離検出センサー DS20L カタログ LiDARデバイス
 
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
論文紹介:Video-GroundingDINO: Towards Open-Vocabulary Spatio-Temporal Video Groun...
 
Utilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native IntegrationsUtilizing Ballerina for Cloud Native Integrations
Utilizing Ballerina for Cloud Native Integrations
 
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
Amazon SES を勉強してみる その22024/04/26の勉強会で発表されたものです。
 
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
論文紹介: The Surprising Effectiveness of PPO in Cooperative Multi-Agent Games
 
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
NewSQLの可用性構成パターン(OCHaCafe Season 8 #4 発表資料)
 
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
知識ゼロの営業マンでもできた!超速で初心者を脱する、悪魔的学習ステップ3選.pptx
 

Elasticsearch勉強会

  • 1. Copyright(C)2014 Recruit Technologies Co.,Ltd All rights reserved ここがツラいよElasticsearch ⾼高林林  貴仁/@tatakaba 2016/01/07
  • 2. Copyright(C)2014  Recruit  Technologies  Co.,Ltd  All  rights  reserved 2 ⾃自⼰己紹介 ⾼高林林  貴仁  /  @tatakaba 2011  〜~  リクルート⼊入社 APソリューショングループ Ø 検索索基盤 Ø データ解析 Ø DWHとCEP Ø Webアプリケーション開発 Ø R&D(ウェアラブル端末等) それ以前 Ø 主に検索索システム担当 Ø web,地図,local検索索等 Ø WPO(Web  Performance   Optimization)
  • 3. Copyright(C)2014  Recruit  Technologies  Co.,Ltd  All  rights  reserved Elastic{ON}ダイジェスト  ~∼  活⽤用例例  〜~
  • 4. Copyright(C)2014  Recruit  Technologies  Co.,Ltd  All  rights  reserved 4 Elasticsearchを活⽤用したサービス基盤 全社プッシュ通知基盤 l  リアルタイムな検索索要件 l  Dynamoの補完 検索索 条件抽出 データ取得 全社検索索基盤 l  サイト内検索索 l  キーワードサジェスト l  スペラー l  関連検索索ワード 可視化 l  UU l  コンバージョン l  ログ
  • 5. Copyright(C)2014  Recruit  Technologies  Co.,Ltd  All  rights  reserved 5 全社検索索基盤:QASS 検索索結果をQass基盤へ集約 検索索に関連する情報を⼀一箇所に集積検 索索結果を横断的に専⾨門家が集約・分析 機械学習による検索索品質向上 ログを利利⽤用することで、 検索索品質の向上を⾏行行う 検索索結果分析基盤 検索索品質の継続的向上を⾏行行う全社基盤 フィードバックサイクル による検索索改善
  • 6. Copyright(C)2014  Recruit  Technologies  Co.,Ltd  All  rights  reserved 6 QASSの全体構成 各サイトのindex (Doc数:数百万〜~数千万単位)
  • 7. Copyright(C)2014  Recruit  Technologies  Co.,Ltd  All  rights  reserved 7 全社プッシュ通知基盤:Pusna-‐‑‒RS p  スマートフォンなどに簡単に通知を送る事ができる仕組み GCM Google  Cloud  Messaging Push! Push! APNs Apple  Push  Notification  Service
  • 8. Copyright(C)2014  Recruit  Technologies  Co.,Ltd  All  rights  reserved 8 Pusna-‐‑‒RSの全体構成 リクルート 8   デバイス管理理 プッシュ配信管理理 DynamoDB Elasticsearch 登録API SQS 登録worker 配信worker SQS 操作⽤用WebUI 管理理API 配信担当者 データ基盤 APNs GCM 事業サーバ デバイス情報や配信情報の 実データの索索引として利利⽤用 (Doc数:億単位)
  • 9. Copyright(C)2014  Recruit  Technologies  Co.,Ltd  All  rights  reserved 9 可視化 各サービスの定量量的な指標確認 l  コンバージョン l  Bucket(A/B)テスト l  ログ監視 l  ユーザログ 検索索結果の分析 検索索効果の可視化 サービスノード lo g サービスメトリクス の可視化 検索索結果分析基盤
  • 10. Copyright(C)2014  Recruit  Technologies  Co.,Ltd  All  rights  reserved Elastic{ON}ダイジェスト  ~∼  運⽤用編  〜~
  • 11. Copyright(C)2014  Recruit  Technologies  Co.,Ltd  All  rights  reserved 11 Elasticsearch運⽤用編 Plugin機構の利利⽤用 動的ロード A/Bテスト Snapshot機構の利利⽤用 オンラインバックアップ 本番環境の複製 環境に合わせたIndex作成 AWS(クラウド上)環境 オンプレミス環境 Qass  Plugin ICU  Plugin Kuromoji   Plugin …   Plugin Alias Alias
  • 12. Copyright(C)2014  Recruit  Technologies  Co.,Ltd  All  rights  reserved 12 独⾃自プラグイン Qass独⾃自のPlugin機構 独⾃自の機構により無停⽌止のモジュール更更新 サイト運営に影響を与えず検索索改善 ⾼高速な検索索軸でのA/Bテスト可能な基盤を整備 各サービスサイト Qass  Plugin 検索索チーム 検索索ロジックA  v1 検索索ロジックB  v1 検索索ロジックB  v2 検索索チームで動的切切替
  • 13. Copyright(C)2014  Recruit  Technologies  Co.,Ltd  All  rights  reserved 13 SnapShotの活⽤用 Snapshot/Restore  APIをJenkinsで定期実⾏行行 実際の検索索結果を元に検索索改善を実施するクラスタを複製 データサイエンティストが⾃自由に検索索アルゴリズムを操作、確認可能 Snapshot  API Snapshots サービス⽤用クラスタ 検索索改善⽤用クラスタ Restore  API 本番同等の内容で 検索索改善結果を確認可能な 環境を⾃自動的に⽣生成 アルゴリズムの操作 結果の確認
  • 14. Copyright(C)2014  Recruit  Technologies  Co.,Ltd  All  rights  reserved 14 環境に合わせたIndex作成 環境によって異異なるIndex作成⽅方法を採⽤用 どのような環境でもサービス影響出さず安全な更更新が可能 AWS環境 サービス⽤用クラスタ (Blue⾯面) サービス⽤用クラスタ (Green⾯面) Blue-‐‑‒Green  Deployでク ラスタ切切替 オンプレミス環境 Index A Index B Doc Alias Alias River:差分更更新 Aliasで Index切切替 サービスノードサービスノード
  • 15. Copyright(C)2014  Recruit  Technologies  Co.,Ltd  All  rights  reserved Elastic{ON}ダイジェスト  ~∼  運⽤用時の注意点  〜~
  • 16. Copyright(C)2014  Recruit  Technologies  Co.,Ltd  All  rights  reserved 16 バージョンアップ Qass Pusna 可視化 バージョン 0.9 1.4 1.5 1.5 1.7 2.1 最新バージョンを 利利⽤用するようにしているが、 リリースサイクルが早く 追いつききれていない バージョンアップの際はどのような対応が必要か?
  • 17. Copyright(C)2014  Recruit  Technologies  Co.,Ltd  All  rights  reserved 17 バージョンアップ 0.9  -‐‑‒>  1.7へのバージョンアップ 2バージョンのクラスタを⽤用意してリアルタイムで移⾏行行 v0.9  クラスタ v1.7  クラスタ 両⽅方へ書込 v0.9  クラスタ v1.7  クラスタ ⽚片バージョンを切切り離離し APIやレスポンスが変わっているため、 そのままの移⾏行行は不不可能
  • 18. Copyright(C)2014  Recruit  Technologies  Co.,Ltd  All  rights  reserved 18 リクルートのelasticSearchの活⽤用 l 検索索基盤として、Pluginを活⽤用した最適化 l QueryのRewrite l 重み付けsort l SolrのリクエストをElasticsearchで受け付けれる l Dynamoの補完とリアルタイム性 l DyanamoDBが苦⼿手なデータ検索索の補完 l リアルタイム性を利利⽤用したPush通知 l データの可視化 l データをグラフで可視化するとわかりやすい! l 説得材料料になる!
  • 19. Copyright(C)2014  Recruit  Technologies  Co.,Ltd  All  rights  reserved ここがツラいよElasticsearch
  • 20. Copyright(C)2014  Recruit  Technologies  Co.,Ltd  All  rights  reserved 1:バージョンアップがツラいよ!!
  • 21. Copyright(C)2014  Recruit  Technologies  Co.,Ltd  All  rights  reserved 21 バージョンアップがツラいよ!! p  1.0.0(2014/02/12)がリリース以降降、頻繁にupdateが⾏行行われている。 最新版は、2.1.1 p   サービスをバージョンアップを⾏行行う場合、現⾏行行で利利⽤用しているAPI正 常に動作するか検証する必要があるため、バージョンアップにコスト がかかる。 p APIも⼤大幅に変更更される場合あり p 各バージョンのPluginを⽤用意しないとならない p 2.x以降降は、集計処理理(Aggregation)機能が強化されたイメージが強 いので、検索索エンジンとしては、必要な機能をみたいしている為、 bugFix以外では、2.x系にバージョンアップをするモチベーションが 上がらない。 ただし、Elasticのサポートが必要な場合は、3バージョンしかサポートして くれないらしいので、サポートをうける場合バージョンアップをする必要あり。
  • 22. Copyright(C)2014  Recruit  Technologies  Co.,Ltd  All  rights  reserved 22 Elastic社が来⽇日した時に、 upgradeに関して質問した所・・・
  • 23. Copyright(C)2014  Recruit  Technologies  Co.,Ltd  All  rights  reserved 23 Elastic社にきいた簡単なバージョンアップ法 VIP 既存クラスタ 新クラスタ 両⽅方へ書込 既存クラスタ 新クラスタ VIP LB reIndexが終わった段 階でSearch⽤用のLBを 切切り替えればいいよ! LB VIP VIP LBの向き 先を変更更オンプレの環境だと、クラスタの準備や VIPの切切替などの⾊色々⼤大変
  • 24. Copyright(C)2014  Recruit  Technologies  Co.,Ltd  All  rights  reserved 2:Riverが⾮非推奨なったのツラいよ!!
  • 25. Copyright(C)2014  Recruit  Technologies  Co.,Ltd  All  rights  reserved 25 Riverが⾮非推奨なったのツラいよ!! p  1.5.xからriverは、⾮非推奨となり、2.0からは、riverは削除されます。 h7ps://www.elas>c.co/blog/depreca>ng-­‐rivers  
  • 26. Copyright(C)2014  Recruit  Technologies  Co.,Ltd  All  rights  reserved 26 検索索基盤:QassでのRiver利利⽤用事例例 サイト 検索索 サーバー Web  server Batch  server NFS riverdata.ulogid Admin 1.  インデックス作成 3.  インデックス作成 Qass  Client 2.  インデックス作成リクエスト 4.  インデクシング Indexer 5.  インデクシングリクエスト 4.  update_̲log  出⼒力力(file  put) 5.  update_̲log  を読んで、   データを更更新(nfs  mount) Update  log  file:/YYYMMDD/${ulogid}.qass.gz mount mount Indexの作成が、Riverに依存している
  • 27. Copyright(C)2014  Recruit  Technologies  Co.,Ltd  All  rights  reserved 27 Riverを利利⽤用しない、新しい仕組みが必要
  • 28. Copyright(C)2014  Recruit  Technologies  Co.,Ltd  All  rights  reserved 28 現在、検討中の案 p  River同等の処理理を⾏行行うプロセスを⽴立立ち上げて、Zookeeperにて、管理理 p  その他にもconsul,Kafka+Logstashなどの実装も検討   Server1 river代替 process zookeeper Server2 river代替 process zookeeper Server3 river代替 process zookeeper 共有設定 どのサー バーで 最後に何 時、動作 したのか を保持す る Server1でうごく
  • 29. Copyright(C)2014  Recruit  Technologies  Co.,Ltd  All  rights  reserved 29 検討中の案 Zookeeperが起動プロセスを管理理しているので 同時起動で重複書き込みのリスクが減らせる Server1 river代替 process zookeeper Server2 river代替 process zookeeper Server3 river代替 process zookeeper 共有設定 最後に動いた時間から、 数分経ったので、 どちらかが動く Server3で動く:20151110_̲17000000に動いた
  • 30. Copyright(C)2014  Recruit  Technologies  Co.,Ltd  All  rights  reserved 3:フィールドに「.」が使えないのがツラいよ!!
  • 31. Copyright(C)2014  Recruit  Technologies  Co.,Ltd  All  rights  reserved 31 フィールドに「.」が使えないのがツラいよ!! p  2.xから「.」をフィールドが利利⽤用できない p index/mapper/object/ObjectMapper.javaにある、parseProperties メソッドで、FileldNameをチェックしてるのでelasticsearchが⽴立立ち 上がらない。 p 1.x系からUpgradeする際には、elasticsearch-‐‑‒migrationプラグイン で確認すること h"ps://github.com/elas3c/elas3csearch-­‐migra3on
  • 32. Copyright(C)2014  Recruit  Technologies  Co.,Ltd  All  rights  reserved 32 p  昔(Solr)から、Fieldの命名規則に、「.」を付けているサービスが多い p  アプリのフレームワークにも依存している部分が⼤大きいため、影響範囲が ⼤大きい フィールドに「.」が使えないのがツラいよ!! h7ps://www.elas>c.co/guide/en/elas>csearch/reference/current/ breaking_20_mapping_changes.html
  • 33. Copyright(C)2014  Recruit  Technologies  Co.,Ltd  All  rights  reserved 4:Replication-‐‑‒Async⾮非推奨がツラいよ!!
  • 34. Copyright(C)2014  Recruit  Technologies  Co.,Ltd  All  rights  reserved 34 Replication-‐‑‒Async⾮非推奨がツラいよ!! p  1.5より、ReplicationのAysncが⾮非推奨(2.0では削除) p  全件更更新の際に更更新スピードを上げる為、Aysncを利利⽤用
  • 35. Copyright(C)2014  Recruit  Technologies  Co.,Ltd  All  rights  reserved 5:ズレがツラいよ!!
  • 36. Copyright(C)2014  Recruit  Technologies  Co.,Ltd  All  rights  reserved 36 ズレがツラいよ!! p  リロケート、リバランス、レプリカ⽣生成中に、primaryに更更新が⼊入ると documentにズレが発⽣生 p  レプリカ時の現象に関しては、2.xで解消済み(Issue⾒見見当たらず) p  Issueは、すでに上がっている(#13719、#14252)
  • 37. Copyright(C)2014  Recruit  Technologies  Co.,Ltd  All  rights  reserved 37 ①セグメントファイルのコピー ②トランザクションのコピー Shardの移動(relocate,rebalance)の発⽣生時 セグメントファイルを新しいnodeにコピー後、トランザクションファイルがコピー されて、追っかけ更更新(トランザクションの読み込み)が始まり、shardの同期が⼊入る が、更更新(add,delete,update)が⼊入った場合にドキュメントに差異異が発⽣生!! ただし、status的にはgreenな為、ドキュメント数で確認するしかない。 更更新(UPDATE,DELETE,INSERT)が⼊入ると・・・。 途中のデータが⽋欠損している場合がある。(リアルタイム更更新等)
  • 38. Copyright(C)2014  Recruit  Technologies  Co.,Ltd  All  rights  reserved 38 対策案 サイト 検索索 サーバー Web  server Batch  server NFS riverdata.ulogid Admin 1.  インデックス作成 3.  インデックス作成 Qass  Client 2.  インデックス作成リクエスト 4.  インデクシング Indexer 5.  インデクシングリクエスト 4.  update_̲log  出⼒力力(file  put) 5.  update_̲log  を読んで、   データを更更新(nfs  mount) Update  log  file:/YYYMMDD/${ulogid}.qass.gz mount mount Doucumet数のズレを監視して、ズレが あれば過去のupdateログから再実⾏行行
  • 39. Copyright(C)2014  Recruit  Technologies  Co.,Ltd  All  rights  reserved 最後に
  • 40. Copyright(C)2014  Recruit  Technologies  Co.,Ltd  All  rights  reserved 40 検索索関係のディスカッション p  Facebook上で「検索索技術研究会」というグループで検索索やビックデータ 系の技術を共有してますので、こちらも是⾮非参加してみてください。 h7ps://www.facebook.com/groups/search.tech/
  • 41. Copyright(C)2014  Recruit  Technologies  Co.,Ltd  All  rights  reserved 41 参考資料料 p Qass p Elasticsearch+Hadoopベースの⼤大規模検索索基盤⼤大解剖 p Pusna-‐‑‒RS p ⼤大規模プッシュ通知基盤⼤大解剖 p リクルートテクノロジーズについて Qass pusna-‐‑‒rs リクルートテクノロジーズ  ブログ
  • 42. Copyright(C)2014  Recruit  Technologies  Co.,Ltd  All  rights  reserved 42 リクルートテクノロジーズでは、 Elasticsearchを始めとした、 “先端技術”を使って⼀一緒に仕事をする 仲間を募集しています!
  • 43. 43
  • 44. Copyright(C)2014  Recruit  Technologies  Co.,Ltd  All  rights  reserved ご清聴ありがとうございました!