Download free for 30 days
Sign in
Upload
Language (EN)
Support
Business
Mobile
Social Media
Marketing
Technology
Art & Photos
Career
Design
Education
Presentations & Public Speaking
Government & Nonprofit
Healthcare
Internet
Law
Leadership & Management
Automotive
Engineering
Software
Recruiting & HR
Retail
Sales
Services
Science
Small Business & Entrepreneurship
Food
Environment
Economy & Finance
Data & Analytics
Investor Relations
Sports
Spiritual
News & Politics
Travel
Self Improvement
Real Estate
Entertainment & Humor
Health & Medicine
Devices & Hardware
Lifestyle
Change Language
Language
English
Español
Português
Français
Deutsche
Cancel
Save
EN
Uploaded by
Yahoo!デベロッパーネットワーク
PPTX, PDF
5,432 views
Elasticsearch 5.2とJava Clientで戯れる #elasticsearchjp
第18回Elastcisearch勉強会 https://www.meetup.com/ja-JP/Tokyo-Elastic-Fantastics/events/237511494/ LT資料
Technology
◦
Read more
1
Save
Share
Embed
Embed presentation
Download
Downloaded 10 times
1
/ 15
2
/ 15
3
/ 15
4
/ 15
5
/ 15
6
/ 15
7
/ 15
8
/ 15
9
/ 15
10
/ 15
11
/ 15
12
/ 15
13
/ 15
14
/ 15
15
/ 15
More Related Content
PDF
ニュースアプリで起きた不具合から学んだ 最適への一歩
by
Yahoo!デベロッパーネットワーク
PDF
Storm の新機能について @HSCR #hadoopreading
by
Yahoo!デベロッパーネットワーク
PDF
僕とヤフーと時々Teradata #prestodb
by
Yahoo!デベロッパーネットワーク
PDF
JavaOne2017参加報告 Microservices topic & approach #jjug
by
Yahoo!デベロッパーネットワーク
PDF
Yahoo! JAPANのOracle構成-2017年版
by
Yahoo!デベロッパーネットワーク
PDF
Presto in Yahoo! JAPAN #yjdsnight
by
Yahoo!デベロッパーネットワーク
PDF
大規模運用で見えるWebプロトコルの理想と現実、そして今後 #html5j #html5j_b
by
Yahoo!デベロッパーネットワーク
PDF
Design pattern in presto source code
by
Yahoo!デベロッパーネットワーク
ニュースアプリで起きた不具合から学んだ 最適への一歩
by
Yahoo!デベロッパーネットワーク
Storm の新機能について @HSCR #hadoopreading
by
Yahoo!デベロッパーネットワーク
僕とヤフーと時々Teradata #prestodb
by
Yahoo!デベロッパーネットワーク
JavaOne2017参加報告 Microservices topic & approach #jjug
by
Yahoo!デベロッパーネットワーク
Yahoo! JAPANのOracle構成-2017年版
by
Yahoo!デベロッパーネットワーク
Presto in Yahoo! JAPAN #yjdsnight
by
Yahoo!デベロッパーネットワーク
大規模運用で見えるWebプロトコルの理想と現実、そして今後 #html5j #html5j_b
by
Yahoo!デベロッパーネットワーク
Design pattern in presto source code
by
Yahoo!デベロッパーネットワーク
What's hot
PDF
Yahoo! JAPAN MeetUp #8 (インフラ技術カンファレンス)LT⑦
by
Yahoo!デベロッパーネットワーク
PDF
JSUG 2018/02/05 SpringOnePlatform2017参加報告 プラットフォーム関連のお話
by
Yahoo!デベロッパーネットワーク
PDF
実運用して分かったRabbit MQの良いところ・気をつけること #jjug
by
Yahoo!デベロッパーネットワーク
PPTX
ヤフーのロギングSDKの挑戦〜データドリブン企業を目指して〜 #yjdsnight
by
Yahoo!デベロッパーネットワーク
PDF
Yahoo! JAPANのOSS Cassandra貢献の今までとこれから
by
Yahoo!デベロッパーネットワーク
PDF
ヤフーを支えるフラッシュストレージ
by
Yahoo!デベロッパーネットワーク
PDF
Yahoo! JAPANのコンテンツプラットフォームを支えるSpring Cloud Streamによるマイクロサービスアーキテクチャ #jsug #sf_52
by
Yahoo!デベロッパーネットワーク
PDF
Dataworks Summit SJ QueryEngine - Hadoop Source Code Reading #23 #hadoopreading
by
Yahoo!デベロッパーネットワーク
PDF
Hive on Tezのベストプラクティス
by
Yahoo!デベロッパーネットワーク
PDF
Yahoo! JAPAN MeetUp #8 (インフラ技術カンファレンス)セッション②
by
Yahoo!デベロッパーネットワーク
PDF
Yahoo! JAPAN MeetUp #8 (インフラ技術カンファレンス)LT①
by
Yahoo!デベロッパーネットワーク
PDF
Apache Big Data Miami 2017 - Hadoop Source Code Reading #23 #hadoopreading
by
Yahoo!デベロッパーネットワーク
PDF
Kafka・Storm・ZooKeeperの認証と認可について #kafkajp
by
Yahoo!デベロッパーネットワーク
PDF
Java Clientで入門する Apache Kafka #jjug_ccc #ccc_e2
by
Yahoo!デベロッパーネットワーク
PDF
プランニングツールにおけるインタラクティブな可視化を支えるバックエンド
by
Yahoo!デベロッパーネットワーク
PDF
AMPと広告とOpenRTBと #yjmu
by
Yahoo!デベロッパーネットワーク
PDF
Yahoo! JAPAN MeetUp #8 (インフラ技術カンファレンス)LT③
by
Yahoo!デベロッパーネットワーク
PDF
20140120 presto meetup
by
Ogibayashi
PDF
GCP vs 他社クラウド
by
Hasegawa Yusuke
PDF
Yahoo! JAPANのプライベートRDBクラウドとマルチライター型 MySQL #dbts2017 #dbtsOSS
by
Yahoo!デベロッパーネットワーク
Yahoo! JAPAN MeetUp #8 (インフラ技術カンファレンス)LT⑦
by
Yahoo!デベロッパーネットワーク
JSUG 2018/02/05 SpringOnePlatform2017参加報告 プラットフォーム関連のお話
by
Yahoo!デベロッパーネットワーク
実運用して分かったRabbit MQの良いところ・気をつけること #jjug
by
Yahoo!デベロッパーネットワーク
ヤフーのロギングSDKの挑戦〜データドリブン企業を目指して〜 #yjdsnight
by
Yahoo!デベロッパーネットワーク
Yahoo! JAPANのOSS Cassandra貢献の今までとこれから
by
Yahoo!デベロッパーネットワーク
ヤフーを支えるフラッシュストレージ
by
Yahoo!デベロッパーネットワーク
Yahoo! JAPANのコンテンツプラットフォームを支えるSpring Cloud Streamによるマイクロサービスアーキテクチャ #jsug #sf_52
by
Yahoo!デベロッパーネットワーク
Dataworks Summit SJ QueryEngine - Hadoop Source Code Reading #23 #hadoopreading
by
Yahoo!デベロッパーネットワーク
Hive on Tezのベストプラクティス
by
Yahoo!デベロッパーネットワーク
Yahoo! JAPAN MeetUp #8 (インフラ技術カンファレンス)セッション②
by
Yahoo!デベロッパーネットワーク
Yahoo! JAPAN MeetUp #8 (インフラ技術カンファレンス)LT①
by
Yahoo!デベロッパーネットワーク
Apache Big Data Miami 2017 - Hadoop Source Code Reading #23 #hadoopreading
by
Yahoo!デベロッパーネットワーク
Kafka・Storm・ZooKeeperの認証と認可について #kafkajp
by
Yahoo!デベロッパーネットワーク
Java Clientで入門する Apache Kafka #jjug_ccc #ccc_e2
by
Yahoo!デベロッパーネットワーク
プランニングツールにおけるインタラクティブな可視化を支えるバックエンド
by
Yahoo!デベロッパーネットワーク
AMPと広告とOpenRTBと #yjmu
by
Yahoo!デベロッパーネットワーク
Yahoo! JAPAN MeetUp #8 (インフラ技術カンファレンス)LT③
by
Yahoo!デベロッパーネットワーク
20140120 presto meetup
by
Ogibayashi
GCP vs 他社クラウド
by
Hasegawa Yusuke
Yahoo! JAPANのプライベートRDBクラウドとマルチライター型 MySQL #dbts2017 #dbtsOSS
by
Yahoo!デベロッパーネットワーク
Similar to Elasticsearch 5.2とJava Clientで戯れる #elasticsearchjp
PDF
Elasticsearch入門 pyfes 201207
by
Jun Ohtani
PDF
Elastic searchをrailsから使ってみた
by
Yoichi Toyota
PDF
言語アップデート -Scala編-
by
Kota Mizushima
PDF
Elasticsearchプラグインの作り方
by
Shinsuke Sugaya
PPT
Lucandraを使ってみる
by
Fumihiko Sato
PDF
elasticsearchソースコードを読みはじめてみた
by
furandon_pig
PDF
MySQLと組み合わせて始める全文検索プロダクト"elasticsearch"
by
Kentaro Yoshida
PDF
実践!Elasticsearch + Sudachi を用いた全文検索エンジン
by
S. T.
PDF
Elastic Stackの紹介とOpenStackでの活用事例(Searchlightなど) - OpenStack最新情報セミナー 2016年5月
by
VirtualTech Japan Inc.
PDF
ElasticSearch勉強会 第6回
by
Naoyuki Yamada
PPTX
IoT と時系列データと Elasticsearch | Data Pipeline Casual Talk Vol.4
by
SORACOM,INC
PPTX
SolidFire を Kibana(ELK Stack)で可視化(需要予測)する
by
Kensuke Maeda
PDF
メディアコンテンツ向け記事検索DBとして使うElasticsearch
by
Yasuhiro Murata
PDF
Elasticsearchの基本動作まとめ
by
朋哉 池田
PDF
polidog に elasticsearch を教える
by
ftnk
PDF
JJUG CCC リクルートの Java に対する取り組み
by
Recruit Technologies
PDF
ElasticSearch+Kibanaでログデータの検索と視覚化を実現するテクニックと運用ノウハウ
by
Kentaro Yoshida
PDF
elasticsearchプラグイン入門
by
Shinsuke Sugaya
PDF
20200324 ms open-tech-elastic
by
Koji Kawamura
PDF
AWS Black Belt Tech Webinar 2016 〜 Amazon CloudSearch & Amazon Elasticsearch ...
by
Amazon Web Services Japan
Elasticsearch入門 pyfes 201207
by
Jun Ohtani
Elastic searchをrailsから使ってみた
by
Yoichi Toyota
言語アップデート -Scala編-
by
Kota Mizushima
Elasticsearchプラグインの作り方
by
Shinsuke Sugaya
Lucandraを使ってみる
by
Fumihiko Sato
elasticsearchソースコードを読みはじめてみた
by
furandon_pig
MySQLと組み合わせて始める全文検索プロダクト"elasticsearch"
by
Kentaro Yoshida
実践!Elasticsearch + Sudachi を用いた全文検索エンジン
by
S. T.
Elastic Stackの紹介とOpenStackでの活用事例(Searchlightなど) - OpenStack最新情報セミナー 2016年5月
by
VirtualTech Japan Inc.
ElasticSearch勉強会 第6回
by
Naoyuki Yamada
IoT と時系列データと Elasticsearch | Data Pipeline Casual Talk Vol.4
by
SORACOM,INC
SolidFire を Kibana(ELK Stack)で可視化(需要予測)する
by
Kensuke Maeda
メディアコンテンツ向け記事検索DBとして使うElasticsearch
by
Yasuhiro Murata
Elasticsearchの基本動作まとめ
by
朋哉 池田
polidog に elasticsearch を教える
by
ftnk
JJUG CCC リクルートの Java に対する取り組み
by
Recruit Technologies
ElasticSearch+Kibanaでログデータの検索と視覚化を実現するテクニックと運用ノウハウ
by
Kentaro Yoshida
elasticsearchプラグイン入門
by
Shinsuke Sugaya
20200324 ms open-tech-elastic
by
Koji Kawamura
AWS Black Belt Tech Webinar 2016 〜 Amazon CloudSearch & Amazon Elasticsearch ...
by
Amazon Web Services Japan
More from Yahoo!デベロッパーネットワーク
PDF
ゼロから始める転移学習
by
Yahoo!デベロッパーネットワーク
PDF
継続的なモデルモニタリングを実現するKubernetes Operator
by
Yahoo!デベロッパーネットワーク
PDF
ヤフーでは開発迅速性と品質のバランスをどう取ってるか
by
Yahoo!デベロッパーネットワーク
PDF
オンプレML基盤on Kubernetes パネルディスカッション
by
Yahoo!デベロッパーネットワーク
PDF
LakeTahoe
by
Yahoo!デベロッパーネットワーク
PDF
オンプレML基盤on Kubernetes 〜Yahoo! JAPAN AIPF〜
by
Yahoo!デベロッパーネットワーク
PDF
Persistent-memory-native Database High-availability Feature
by
Yahoo!デベロッパーネットワーク
PDF
データの価値を最大化させるためのデザイン~データビジュアライゼーションの方法~ #devsumi 17-E-2
by
Yahoo!デベロッパーネットワーク
PDF
eコマースと実店舗の相互利益を目指したデザイン #yjtc
by
Yahoo!デベロッパーネットワーク
PDF
ヤフーを支えるセキュリティ ~サイバー攻撃を防ぐエンジニアの仕事とは~ #yjtc
by
Yahoo!デベロッパーネットワーク
PDF
Yahoo! JAPANのIaaSを支えるKubernetesクラスタ、アップデート自動化への挑戦 #yjtc
by
Yahoo!デベロッパーネットワーク
PDF
ビッグデータから人々のムードを捉える #yjtc
by
Yahoo!デベロッパーネットワーク
PDF
サイエンス領域におけるMLOpsの取り組み #yjtc
by
Yahoo!デベロッパーネットワーク
PDF
ヤフーのAIプラットフォーム紹介 ~AIテックカンパニーを支えるデータ基盤~ #yjtc
by
Yahoo!デベロッパーネットワーク
PDF
Yahoo! JAPAN Tech Conference 2022 Day2 Keynote #yjtc
by
Yahoo!デベロッパーネットワーク
PDF
新技術を使った次世代の商品の見せ方 ~ヤフオク!のマルチビュー機能~ #yjtc
by
Yahoo!デベロッパーネットワーク
PDF
PC版Yahoo!メールリニューアル ~サービスのUI/UX統合と改善プロセス~ #yjtc
by
Yahoo!デベロッパーネットワーク
PDF
モブデザインによる多職種チームのコミュニケーション改善 #yjtc
by
Yahoo!デベロッパーネットワーク
PDF
「新しいおうち探し」のためのAIアシスト検索 #yjtc
by
Yahoo!デベロッパーネットワーク
PDF
ユーザーの地域を考慮した検索入力補助機能の改善の試み #yjtc
by
Yahoo!デベロッパーネットワーク
ゼロから始める転移学習
by
Yahoo!デベロッパーネットワーク
継続的なモデルモニタリングを実現するKubernetes Operator
by
Yahoo!デベロッパーネットワーク
ヤフーでは開発迅速性と品質のバランスをどう取ってるか
by
Yahoo!デベロッパーネットワーク
オンプレML基盤on Kubernetes パネルディスカッション
by
Yahoo!デベロッパーネットワーク
LakeTahoe
by
Yahoo!デベロッパーネットワーク
オンプレML基盤on Kubernetes 〜Yahoo! JAPAN AIPF〜
by
Yahoo!デベロッパーネットワーク
Persistent-memory-native Database High-availability Feature
by
Yahoo!デベロッパーネットワーク
データの価値を最大化させるためのデザイン~データビジュアライゼーションの方法~ #devsumi 17-E-2
by
Yahoo!デベロッパーネットワーク
eコマースと実店舗の相互利益を目指したデザイン #yjtc
by
Yahoo!デベロッパーネットワーク
ヤフーを支えるセキュリティ ~サイバー攻撃を防ぐエンジニアの仕事とは~ #yjtc
by
Yahoo!デベロッパーネットワーク
Yahoo! JAPANのIaaSを支えるKubernetesクラスタ、アップデート自動化への挑戦 #yjtc
by
Yahoo!デベロッパーネットワーク
ビッグデータから人々のムードを捉える #yjtc
by
Yahoo!デベロッパーネットワーク
サイエンス領域におけるMLOpsの取り組み #yjtc
by
Yahoo!デベロッパーネットワーク
ヤフーのAIプラットフォーム紹介 ~AIテックカンパニーを支えるデータ基盤~ #yjtc
by
Yahoo!デベロッパーネットワーク
Yahoo! JAPAN Tech Conference 2022 Day2 Keynote #yjtc
by
Yahoo!デベロッパーネットワーク
新技術を使った次世代の商品の見せ方 ~ヤフオク!のマルチビュー機能~ #yjtc
by
Yahoo!デベロッパーネットワーク
PC版Yahoo!メールリニューアル ~サービスのUI/UX統合と改善プロセス~ #yjtc
by
Yahoo!デベロッパーネットワーク
モブデザインによる多職種チームのコミュニケーション改善 #yjtc
by
Yahoo!デベロッパーネットワーク
「新しいおうち探し」のためのAIアシスト検索 #yjtc
by
Yahoo!デベロッパーネットワーク
ユーザーの地域を考慮した検索入力補助機能の改善の試み #yjtc
by
Yahoo!デベロッパーネットワーク
Elasticsearch 5.2とJava Clientで戯れる #elasticsearchjp
1.
Copyrig ht ©
2017 Yahoo Japan Corporation. All Rig hts Reserved. 2017年2月20日 1 ヤフー株式会社 データ&サイエンスソリューション統括本部 データプラットフォーム本部 開発1部 パイプライン 森谷 大輔 Elasticsearch 5.2 と Java Clientで戯れる Elasticsearch勉強会#18 LT
2.
Copyrig ht ©
2017 Yahoo Japan Corporation. All Rig hts Reserved. 自己紹介 • 森谷 大輔(@kokumutyoukan) • 仕事 • 次世代データパイプラインの開発 • 1,000,000 msgs/sec • Kafka, Storm, Cassandra, Elasticsearch • Elasticsearch (+Kibana)はログの可視化用途 • Java Clientは初めて触ったので5.2でどう進化したかなどは今回触れない 2
3.
Copyrig ht ©
2017 Yahoo Japan Corporation. All Rig hts Reserved. LTの内容 • Elasticsearch 5.2 のJava Client(Bulk Processor)でログ投入して みた • 試した流れの要約と詰まったところ • Elasticsearch 5.2 と Java Clientについて複合した内容 • Elasticsearch 5.2 セットアップ • Java Client - Elasticsearchクラスタ接続設定 • 1ログを投入 • Bulk Processorで投入 3
4.
Copyrig ht ©
2017 Yahoo Japan Corporation. All Rig hts Reserved. なんでJava Clientでログ投入? • Logstash や Beats は? • 前提:自分が今回想定したユースケースはログを発するところではなく、 Kafka→Elasticsearchを中継するようなところ • 使ったことがなかったのでこれはこれで覚える必要 • 前処理で好き勝手やりたい • id上書きしたりタイムスタンプ補正したりKVSデータとJoinしたり • ↑でもできるかもだけどJavaならとりあえず何でもできるでしょという感覚 4 Data Source Data Source Mirror Maker こ こ
5.
Copyrig ht ©
2017 Yahoo Japan Corporation. All Rig hts Reserved. Elasticsearch 5.2 セットアップ • DLページの簡単3step通りなのだけど・・・ • https://www.elastic.co/jp/downloads/elasticsearch • 初期設定だとlocalhostからしかアクセスできないのでnetwork.hostを0.0.0.0にして立ち上げようと するとファイルディスクリプタとメモリマップの警告でエラー • 5系からプロダクション設定での起動チェックが厳しくなっているらしい 5 max file descriptors [4096] for elasticsearch process is too low, increase to at least [65536]
6.
Copyrig ht ©
2017 Yahoo Japan Corporation. All Rig hts Reserved. Elasticsearch 5.2 セットアップ • tar ballからセットアップしようとしたからあたったが、RPMからインストールすればこの辺 の設定はsystemd経由で最初から入っている • ファイルディスクリプタの制御面倒なのでRPMからのインストールが無難 • 【一言メモ】セットアップ前にこのQiita記事を見ておくのオススメ • http://qiita.com/uzresk/items/e0b10c14875b79c450f2 6
7.
Copyrig ht ©
2017 Yahoo Japan Corporation. All Rig hts Reserved. 脱線:モニター • elasticsearch-headが好きだった • しかし5系からsite pluginが使えなくなった • スタンドアロンで起動するしかないが • headの場合は別にWebサーバを立てなければ使えないので面倒になった • Cerebro(旧Kopf)に鞍替えした • tar ball展開して bin/cerebro 実行するだけでWebサーバも一緒に立ち上げて くれるのですごく楽 • headからの乗換感想:headでよく使ってた機能は持っているみたいだしいい 感じ、直感的ですぐ慣れた 7
8.
Copyrig ht ©
2017 Yahoo Japan Corporation. All Rig hts Reserved. Java Client - Elasticsearchクラスタ 接続設定 • Java API説明ページを見ながら進めていく • https://www.elastic.co/guide/en/elasticsearch/client/java-api/current/index.html • まずはここから 8 <dependency> <groupId>org.elasticsearch.client</groupId> <artifactId>transport</artifactId> <version>5.2.0</version> </dependency> <dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-api</artifactId> <version>2.7</version> </dependency> <dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-core</artifactId> <version>2.7</version> </dependency>
9.
Copyrig ht ©
2017 Yahoo Japan Corporation. All Rig hts Reserved. client オブジェクトを作る 9 private TransportClient cli; /** * elasticsearch clientを、つくってゆきます * @param esHost 例:es01.example.com * @param esCliPort client受付ポートのデフォルトは9200じゃなくて9300 * @param clusterName デフォルトのelasticsearchのままになんてしないよね・・・? */ private void createCli(String esHost, int esCliPort, String clusterName) throws UnknownHostException { InetSocketTransportAddress address = new InetSocketTransportAddress( InetAddress.getByName(esHost), esCliPort); Settings settings = Settings.builder().put("cluster.name", clusterName).build(); cli = new PreBuiltTransportClient(settings) .addTransportAddress(address); //.addTransportAddresses(addresses); // 複数のホストを指定する場合ここに配列 }
10.
Copyrig ht ©
2017 Yahoo Japan Corporation. All Rig hts Reserved. index template • 5系では elasticsearch.yml でインデックス設定ができなくなった • index.number_of_shards, index.number_of_replicas • 僕「えっ?!デフォルトのシャード数とレプリカ数どうやって指定する の?!」 • → こうする • index templateを使う、もちろんJava Clientじゃなくてもよい 10 cli.admin().indices() .preparePutTemplate("hogehoge-template") // 任意のテンプレート名 .setTemplate(indexPrefix + "-*") // テンプレートを有効にしたい対象のインデックス .setSettings(Settings.builder() .put("number_of_shards", 10) .put("number_of_replicas", 1)) .get();
11.
Copyrig ht ©
2017 Yahoo Japan Corporation. All Rig hts Reserved. 1ログを投入する • client便利だと思った • 入力に以下のどれでも選べる • JSON文字列 • Map • beansクラスの Jacksonバイナリ • Elasticsearch専用ヘルパー • 特にMapがお手軽 11 // index名やidの準備 DateTime eventTime = new DateTime(eventTimestamp); String indexName = indexPrefix + “-” + eventTime.toString(“yyyy.MM.dd”); String id = UUID.randomUUID().toString(); // 書き込むログの準備 Map<String, Object> json = new HashMap<>(); json.put(“user”, “kokumutyoukan”); json.put(“postDate”, new Date(eventTime.getMillis())); json.put(“message”, "eat rice."); // 書き込みリクエスト IndexResponse response = cli.prepareIndex( indexName, type, id).setSource(json).get();
12.
Copyrig ht ©
2017 Yahoo Japan Corporation. All Rig hts Reserved. Bulk Processor • それなりの流量でドキュメントをインデックスするならBulk API一択 • Bulk Processorはすごく直感的で良かった 12
13.
Copyrig ht ©
2017 Yahoo Japan Corporation. All Rig hts Reserved. Bulk Processor 13 BulkProcessor bp = BulkProcessor.builder(cli, new BulkProcessor.Listener() { @Override public void beforeBulk(long l, BulkRequest bulkRequest) { System.out.println(“bulkRequest = ” + bulkRequest.numberOfActions()); // 何リクエスト今からbulk書き込みします } @Override public void afterBulk(long l, BulkRequest bulkRequest, BulkResponse bulkResponse) { // hasFailuresだから失敗したときにtrueであることに注意. System.out.println(“bulkResponse = ” + bulkResponse.hasFailures() + “ ” + bulkResponse.buildFailureMessage()); // 失敗内容 } @Override public void afterBulk(long l, BulkRequest bulkRequest, Throwable throwable) { throwable.printStackTrace(); } }).setBulkActions(10000) // 1万リクエストたまったらbulk書き込み .setBulkSize(new ByteSizeValue(5, ByteSizeUnit.MB)) // 5MBたまったらbulk書き込み .setFlushInterval(TimeValue.timeValueSeconds(5)) // 5秒たまったらbluk書き込み .setConcurrentRequests(1) // bulk書き込みの並列度、1なら2並列 .build(); for (NanikaEvent event : NanikaStream stream) { Map<String, Object> json = event2Map(event); bp.add(new IndexRequest(indexName, type, id).source(json)); }
14.
Copyrig ht ©
2017 Yahoo Japan Corporation. All Rig hts Reserved. Bulk Processor 14 BulkProcessor bp = BulkProcessor.builder(cli, new BulkProcessor.Listener() { @Override public void beforeBulk(long l, BulkRequest bulkRequest) { System.out.println(“bulkRequest = ” + bulkRequest.numberOfActions()); // 何リクエスト今からbulk書き込みします } @Override public void afterBulk(long l, BulkRequest bulkRequest, BulkResponse bulkResponse) { // hasFailuresだから失敗したときにtrueであることに注意. System.out.println(“bulkResponse = ” + bulkResponse.hasFailures() + “ ” + bulkResponse.buildFailureMessage()); // 失敗内容 } @Override public void afterBulk(long l, BulkRequest bulkRequest, Throwable throwable) { throwable.printStackTrace(); } }).setBulkActions(10000) // 1万リクエストたまったらbulk書き込み .setBulkSize(new ByteSizeValue(5, ByteSizeUnit.MB)) // 5MBたまったらbulk書き込み .setFlushInterval(TimeValue.timeValueSeconds(5)) // 5秒たまったらbluk書き込み .setConcurrentRequests(1) // bulk書き込みの並列度、1なら2並列 .build(); for (NanikaEvent event : NanikaStream stream) { Map<String, Object> json = event2Map(event); bp.add(new IndexRequest(indexName, type, id).source(json)); }
15.
Copyrig ht ©
2017 Yahoo Japan Corporation. All Rig hts Reserved. まとめ • Elasticsearch 5.2 いくつか引っかかるところもあった • Java Client初めて使ったけど使い勝手が良かった • 自力でBulkのHTTPリクエスト生成するよりはずっといい • Bulk Processorは特に良かった 15
Download