Java BulkProcessorを使用してelasticsearchを一括書き
2332 ワード
pre
業務の需要、探求する時穴を踏んで、記録して調べに備えて、仕事の余暇は多くなくて、簡単に問題と解決策を記録して、後続は精力があって更に補完します
background
bulkはesの一括書きのコマンドであり、bulkprocessorはbulk操作のさらなるパッケージであり、単一のバッチ処理のデータ量を制御し、単一のデータ量が多すぎることによる接続エラーを防ぐことができる.
踏んだ穴 bulkprocessorがネット上でクラスのあるjarパッケージが見つからないことを発見し、その後mavenによって依存を管理することを確認し、以下の依存を追加すれば である. prebuildtransportclientは存在しないtransportclientはesが早期に導入した伝送クライアントであり、その多くの構造方法はすでに削除された状態としてマークされており、7.xバージョン以降のes apiではprebuildtransportclientが削除されており、TransportClientの代わりにRestHighLevelClientを使用することが推奨されている.したがって、RestHighLevelClientに置き換えるとよいps:RestHighLevelClientはHttp接続に依存し、apiのRestClientに依存し、その後のいくつかの構成も対応修正 を完了する必要がある. BulkProcessor.Listenerの3つのメソッドのトリガ条件beforeBulk:afterBulk(long l,BulkRequest bulkRequest,BulkResponse bulkResponse):esが文を正しく実行した後にトリガされ、正しく実行されるのはesに合致する制限を入力することであり、esによって正しく処理され、一部の要求が実行に失敗する可能性がある.失敗したレコードはbulkResponseから関連情報を取得できますafterBulk(long l,BulkRequest bulkRequest,Throwable throwable):esがすべての文を正しく実行できない場合にトリガーされます.リンククローズなどのエラーが含まれる可能性があります. BulkProcessor.closeの後、プログラムはまたタイプBulkProcessorの閉じを継続し、下位のClientを閉じることはありません.clientを閉じてからpsが正式に終了します.非同期タスクがある場合は、非同期タスクの実行が完了した後にclient を閉じる必要があります. RestHighLevelClientアカウントパスワード認証 を追加
reference
https://blog.csdn.net/m0_37817986/article/details/89374996 https://www.elastic.co/guide/en/elasticsearch/client/java-rest/master/java-rest-high-document-bulk.html https://discuss.elastic.co/t/prebuilttransportclient-doesnt-exist-in-my-6-3-0-library/156223
業務の需要、探求する時穴を踏んで、記録して調べに備えて、仕事の余暇は多くなくて、簡単に問題と解決策を記録して、後続は精力があって更に補完します
background
bulkはesの一括書きのコマンドであり、bulkprocessorはbulk操作のさらなるパッケージであり、単一のバッチ処理のデータ量を制御し、単一のデータ量が多すぎることによる接続エラーを防ぐことができる.
踏んだ穴
org.elasticsearch.client
elasticsearch-rest-high-level-client
7.3.0
esClient =new RestHighLevelClient(
RestClient.builder(
new HttpHost("127.0.0.1",9200)
).setHttpClientConfigCallback(new RestClientBuilder.HttpClientConfigCallback() {
public HttpAsyncClientBuilder customizeHttpClient(HttpAsyncClientBuilder httpClientBuilder) {
httpClientBuilder.disableAuthCaching();
return httpClientBuilder.setDefaultCredentialsProvider(credentialsProvider);
}
})/*.setMaxRetryTimeoutMillis(2000)*/
);
reference
https://blog.csdn.net/m0_37817986/article/details/89374996 https://www.elastic.co/guide/en/elasticsearch/client/java-rest/master/java-rest-high-document-bulk.html https://discuss.elastic.co/t/prebuilttransportclient-doesnt-exist-in-my-6-3-0-library/156223