-
Notifications
You must be signed in to change notification settings - Fork 988
/
Copy pathConfigurationOptions.java
332 lines (260 loc) · 14.1 KB
/
ConfigurationOptions.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
/*
* Licensed to Elasticsearch under one or more contributor
* license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright
* ownership. Elasticsearch licenses this file to you under
* the Apache License, Version 2.0 (the "License"); you may
* not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*/
package org.elasticsearch.hadoop.cfg;
import org.elasticsearch.hadoop.serialization.field.DateIndexFormatter;
import org.elasticsearch.hadoop.serialization.field.DefaultIndexExtractor;
import org.elasticsearch.hadoop.serialization.field.DefaultParamsExtractor;
/**
* Class providing the various Configuration parameters used by the Elasticsearch Hadoop integration.
*/
public interface ConfigurationOptions {
/** Elasticsearch host **/
String ES_NODES = "es.nodes";
String ES_NODES_DEFAULT = "localhost";
String ES_NODES_DISCOVERY = "es.nodes.discovery";
String ES_NODES_DISCOVERY_DEFAULT = "true";
/** Elasticsearch port **/
String ES_PORT = "es.port";
String ES_PORT_DEFAULT = "9200";
/** Elasticsearch prefix **/
String ES_NODES_PATH_PREFIX = "es.nodes.path.prefix";
String ES_NODES_PATH_PREFIX_DEFAULT = "";
/** Elasticsearch index */
String ES_RESOURCE = "es.resource";
String ES_RESOURCE_READ = "es.resource.read";
String ES_RESOURCE_WRITE = "es.resource.write";
String ES_QUERY = "es.query";
/** Clients only */
String ES_NODES_CLIENT_ONLY = "es.nodes.client.only";
String ES_NODES_CLIENT_ONLY_DEFAULT = "false";
/** Data only */
String ES_NODES_DATA_ONLY = "es.nodes.data.only";
String ES_NODES_DATA_ONLY_DEFAULT = "true";
/** Ingest only */
String ES_NODES_INGEST_ONLY = "es.nodes.ingest.only";
String ES_NODES_INGEST_ONLY_DEFAULT = "false";
/** WAN only */
String ES_NODES_WAN_ONLY = "es.nodes.wan.only";
String ES_NODES_WAN_ONLY_DEFAULT = "false";
String ES_NODES_RESOLVE_HOST_NAME = "es.nodes.resolve.hostname";
/** Secure Settings Keystore */
String ES_KEYSTORE_LOCATION = "es.keystore.location";
/** Elasticsearch batch size given in bytes */
String ES_BATCH_SIZE_BYTES = "es.batch.size.bytes";
String ES_BATCH_SIZE_BYTES_DEFAULT = "1mb";
/** Elasticsearch batch size given in entries */
String ES_BATCH_SIZE_ENTRIES = "es.batch.size.entries";
String ES_BATCH_SIZE_ENTRIES_DEFAULT = "1000";
/** Elasticsearch disable auto-flush on batch overflow */
String ES_BATCH_FLUSH_MANUAL = "es.batch.flush.manual";
String ES_BATCH_FLUSH_MANUAL_DEFAULT = "false";
/** Whether to trigger an index refresh after doing batch writing */
String ES_BATCH_WRITE_REFRESH = "es.batch.write.refresh";
String ES_BATCH_WRITE_REFRESH_DEFAULT = "true";
/** HTTP bulk retries **/
String ES_BATCH_WRITE_RETRY_COUNT = "es.batch.write.retry.count";
String ES_BATCH_WRITE_RETRY_COUNT_DEFAULT = "3";
String ES_BATCH_WRITE_RETRY_LIMIT = "es.batch.write.retry.limit";
String ES_BATCH_WRITE_RETRY_LIMIT_DEFAULT = "50";
String ES_BATCH_WRITE_RETRY_WAIT = "es.batch.write.retry.wait";
String ES_BATCH_WRITE_RETRY_WAIT_DEFAULT = "10s";
String ES_BATCH_WRITE_RETRY_POLICY = "es.batch.write.retry.policy";
String ES_BATCH_WRITE_RETRY_POLICY_NONE = "none";
String ES_BATCH_WRITE_RETRY_POLICY_SIMPLE = "simple";
String ES_BATCH_WRITE_RETRY_POLICY_DEFAULT = ES_BATCH_WRITE_RETRY_POLICY_SIMPLE;
/** HTTP connection timeout */
String ES_HTTP_TIMEOUT = "es.http.timeout";
String ES_HTTP_TIMEOUT_DEFAULT = "1m";
String ES_HTTP_RETRIES = "es.http.retries";
String ES_HTTP_RETRIES_DEFAULT = "3";
/** Scroll keep-alive */
String ES_SCROLL_KEEPALIVE = "es.scroll.keepalive";
String ES_SCROLL_KEEPALIVE_DEFAULT = "5m";
/** Scroll size */
String ES_SCROLL_SIZE = "es.scroll.size";
String ES_SCROLL_SIZE_DEFAULT = "1000";
/** Scroll limit */
String ES_SCROLL_LIMIT = "es.scroll.limit";
String ES_SCROLL_LIMIT_DEFAULT = "-1";
/** Scroll fields */
String ES_HEART_BEAT_LEAD = "es.action.heart.beat.lead";
String ES_HEART_BEAT_LEAD_DEFAULT = "15s";
/** Serialization settings */
/** Value writer - setup automatically; can be overridden for custom types */
String ES_SERIALIZATION_WRITER_VALUE_CLASS = "es.ser.writer.value.class";
/** JSON/Bytes writer - setup automatically; can be overridden for custom types */
String ES_SERIALIZATION_WRITER_BYTES_CLASS = "es.ser.writer.bytes.class";
/** Value reader - setup automatically; can be overridden for custom types */
String ES_SERIALIZATION_READER_VALUE_CLASS = "es.ser.reader.value.class";
/** Input options **/
String ES_MAX_DOCS_PER_PARTITION = "es.input.max.docs.per.partition";
String ES_INPUT_JSON = "es.input.json";
String ES_INPUT_JSON_DEFAULT = "no";
/** Index settings */
String ES_INDEX_AUTO_CREATE = "es.index.auto.create";
String ES_INDEX_AUTO_CREATE_DEFAULT = "yes";
String ES_INDEX_READ_MISSING_AS_EMPTY = "es.index.read.missing.as.empty";
String ES_INDEX_READ_MISSING_AS_EMPTY_DEFAULT = "false";
String ES_INDEX_READ_ALLOW_RED_STATUS = "es.index.read.allow.red.status";
String ES_INDEX_READ_ALLOW_RED_STATUS_DEFAULT = "false";
/** Elasticsearch shard search preference */
String ES_READ_SHARD_PREFERENCE = "es.read.shard.preference";
String ES_READ_SHARD_PREFERENCE_DEFAULT = "";
/** Mapping types */
String ES_MAPPING_DEFAULT_EXTRACTOR_CLASS = "es.mapping.default.extractor.class";
String ES_MAPPING_METADATA_EXTRACTOR_CLASS = "es.mapping.metadata.extractor.class";
String ES_MAPPING_ID = "es.mapping.id";
String ES_MAPPING_ID_EXTRACTOR_CLASS = "es.mapping.id.extractor.class";
String ES_MAPPING_PARENT = "es.mapping.parent";
String ES_MAPPING_PARENT_EXTRACTOR_CLASS = "es.mapping.parent.extractor.class";
String ES_MAPPING_JOIN = "es.mapping.join";
String ES_MAPPING_JOIN_EXTRACTOR_CLASS = "es.mapping.join.extractor.class";
String ES_MAPPING_VERSION = "es.mapping.version";
String ES_MAPPING_VERSION_EXTRACTOR_CLASS = "es.mapping.version.extractor.class";
String ES_MAPPING_ROUTING = "es.mapping.routing";
String ES_MAPPING_ROUTING_EXTRACTOR_CLASS = "es.mapping.routing.extractor.class";
String ES_MAPPING_TTL = "es.mapping.ttl";
String ES_MAPPING_TTL_EXTRACTOR_CLASS = "es.mapping.ttl.extractor.class";
String ES_MAPPING_TIMESTAMP = "es.mapping.timestamp";
String ES_MAPPING_TIMESTAMP_EXTRACTOR_CLASS = "es.mapping.timestamp.extractor.class";
String ES_MAPPING_INDEX_EXTRACTOR_CLASS = "es.mapping.index.extractor.class";
String ES_MAPPING_DEFAULT_INDEX_EXTRACTOR_CLASS = DefaultIndexExtractor.class.getName();
String ES_MAPPING_INDEX_FORMATTER_CLASS = "es.mapping.index.formatter.class";
String ES_MAPPING_DEFAULT_INDEX_FORMATTER_CLASS = DateIndexFormatter.class.getName();
String ES_MAPPING_PARAMS_EXTRACTOR_CLASS = "es.mapping.params.extractor.class";
String ES_MAPPING_PARAMS_DEFAULT_EXTRACTOR_CLASS = DefaultParamsExtractor.class.getName();
String ES_MAPPING_CONSTANT_AUTO_QUOTE = "es.mapping.constant.auto.quote";
String ES_MAPPING_CONSTANT_AUTO_QUOTE_DEFAULT = "true";
String ES_MAPPING_DATE_RICH_OBJECT = "es.mapping.date.rich";
String ES_MAPPING_DATE_RICH_OBJECT_DEFAULT = "true";
String ES_MAPPING_VERSION_TYPE = "es.mapping.version.type";
String ES_MAPPING_VERSION_TYPE_INTERNAL = "internal";
String ES_MAPPING_VERSION_TYPE_EXTERNAL = "external";
String ES_MAPPING_VERSION_TYPE_EXTERNAL_GT = "external_gt";
String ES_MAPPING_VERSION_TYPE_EXTERNAL_GTE = "external_gte";
String ES_MAPPING_VERSION_TYPE_FORCE = "force";
String ES_MAPPING_INCLUDE = "es.mapping.include";
String ES_MAPPING_INCLUDE_DEFAULT = "";
String ES_MAPPING_EXCLUDE = "es.mapping.exclude";
String ES_MAPPING_EXCLUDE_DEFAULT = "";
/** Ingest Node **/
String ES_INGEST_PIPELINE = "es.ingest.pipeline";
String ES_INGEST_PIPELINE_DEFAULT = "";
/** Technology Specific **/
String ES_SPARK_DATAFRAME_WRITE_NULL_VALUES = "es.spark.dataframe.write.null";
String ES_SPARK_DATAFRAME_WRITE_NULL_VALUES_DEFAULT = "false";
/** Read settings */
/** Field options **/
String ES_READ_FIELD_EMPTY_AS_NULL = "es.read.field.empty.as.null";
String ES_READ_FIELD_EMPTY_AS_NULL_LEGACY = "es.field.read.empty.as.null";
String ES_READ_FIELD_EMPTY_AS_NULL_DEFAULT = "yes";
String ES_READ_FIELD_VALIDATE_PRESENCE = "es.read.field.validate.presence";
String ES_READ_FIELD_VALIDATE_PRESENCE_LEGACY = "es.field.read.validate.presence";
String ES_READ_FIELD_VALIDATE_PRESENCE_DEFAULT = "warn";
String ES_READ_FIELD_INCLUDE = "es.read.field.include";
String ES_READ_FIELD_EXCLUDE = "es.read.field.exclude";
String ES_READ_FIELD_AS_ARRAY_INCLUDE = "es.read.field.as.array.include";
String ES_READ_FIELD_AS_ARRAY_EXCLUDE = "es.read.field.as.array.exclude";
String ES_READ_SOURCE_FILTER = "es.read.source.filter";
/** Metadata */
String ES_READ_METADATA = "es.read.metadata";
String ES_READ_METADATA_DEFAULT = "false";
String ES_READ_METADATA_FIELD = "es.read.metadata.field";
String ES_READ_METADATA_FIELD_DEFAULT = "_metadata";
String ES_READ_METADATA_VERSION = "es.read.metadata.version";
String ES_READ_METADATA_VERSION_DEFAULT = "false";
String ES_READ_UNMAPPED_FIELDS_IGNORE = "es.read.unmapped.fields.ignore";
String ES_READ_UNMAPPED_FIELDS_IGNORE_DEFAULT = "true";
/** Operation types */
String ES_WRITE_OPERATION = "es.write.operation";
String ES_OPERATION_INDEX = "index";
String ES_OPERATION_CREATE = "create";
String ES_OPERATION_UPDATE = "update";
String ES_OPERATION_UPSERT = "upsert";
String ES_OPERATION_DELETE = "delete";
String ES_WRITE_OPERATION_DEFAULT = ES_OPERATION_INDEX;
String ES_UPDATE_RETRY_ON_CONFLICT = "es.update.retry.on.conflict";
String ES_UPDATE_RETRY_ON_CONFLICT_DEFAULT = "0";
String ES_UPDATE_SCRIPT_FILE = "es.update.script.file";
String ES_UPDATE_SCRIPT_INLINE = "es.update.script.inline";
String ES_UPDATE_SCRIPT_UPSERT = "es.update.script.upsert";
String ES_UPDATE_SCRIPT_UPSERT_DEFAULT = "false";
String ES_UPDATE_SCRIPT_STORED = "es.update.script.stored";
String ES_UPDATE_SCRIPT_LEGACY = "es.update.script";
String ES_UPDATE_SCRIPT_LANG = "es.update.script.lang";
String ES_UPDATE_SCRIPT_PARAMS = "es.update.script.params";
String ES_UPDATE_SCRIPT_PARAMS_JSON = "es.update.script.params.json";
/** Output options **/
String ES_OUTPUT_JSON = "es.output.json";
String ES_OUTPUT_JSON_DEFAULT = "no";
/** Network options */
String ES_NET_TRANSPORT_POOLING_EXPIRATION_TIMEOUT = "es.net.transport.pooling.expiration.timeout";
String ES_NET_TRANSPORT_POOLING_EXPIRATION_TIMEOUT_DEFAULT = "5m";
// SSL
String ES_NET_USE_SSL = "es.net.ssl";
String ES_NET_USE_SSL_DEFAULT = "false";
String ES_NET_SSL_PROTOCOL = "es.net.ssl.protocol";
String ES_NET_SSL_PROTOCOL_DEFAULT = "TLS"; // SSL as an alternative
String ES_NET_SSL_KEYSTORE_LOCATION = "es.net.ssl.keystore.location";
String ES_NET_SSL_KEYSTORE_TYPE = "es.net.ssl.keystore.type";
String ES_NET_SSL_KEYSTORE_TYPE_DEFAULT = "JKS"; // PKCS12 could also be used
String ES_NET_SSL_KEYSTORE_PASS = "es.net.ssl.keystore.pass";
String ES_NET_SSL_TRUST_STORE_LOCATION = "es.net.ssl.truststore.location";
String ES_NET_SSL_TRUST_STORE_PASS = "es.net.ssl.truststore.pass";
String ES_NET_SSL_CERT_ALLOW_SELF_SIGNED = "es.net.ssl.cert.allow.self.signed";
String ES_NET_SSL_CERT_ALLOW_SELF_SIGNED_DEFAULT = "false";
String ES_NET_HTTP_HEADER_PREFIX = "es.net.http.header.";
String ES_NET_HTTP_HEADER_OPAQUE_ID = ES_NET_HTTP_HEADER_PREFIX + "X-Opaque-ID";
String ES_NET_HTTP_HEADER_USER_AGENT = ES_NET_HTTP_HEADER_PREFIX + "User-Agent";
String ES_NET_HTTP_AUTH_USER = "es.net.http.auth.user";
String ES_NET_HTTP_AUTH_PASS = "es.net.http.auth.pass";
String ES_NET_SPNEGO_AUTH_ELASTICSEARCH_PRINCIPAL = "es.net.spnego.auth.elasticsearch.principal";
String ES_NET_SPNEGO_AUTH_MUTUAL = "es.net.spnego.auth.mutual";
String ES_NET_SPNEGO_AUTH_MUTUAL_DEFAULT = "false";
String ES_NET_PROXY_HTTP_HOST = "es.net.proxy.http.host";
String ES_NET_PROXY_HTTP_PORT = "es.net.proxy.http.port";
String ES_NET_PROXY_HTTP_USER = "es.net.proxy.http.user";
String ES_NET_PROXY_HTTP_PASS = "es.net.proxy.http.pass";
String ES_NET_PROXY_HTTP_USE_SYSTEM_PROPS = "es.net.proxy.http.use.system.props";
String ES_NET_PROXY_HTTP_USE_SYSTEM_PROPS_DEFAULT = "yes";
String ES_NET_PROXY_HTTPS_HOST = "es.net.proxy.https.host";
String ES_NET_PROXY_HTTPS_PORT = "es.net.proxy.https.port";
String ES_NET_PROXY_HTTPS_USER = "es.net.proxy.https.user";
String ES_NET_PROXY_HTTPS_PASS = "es.net.proxy.https.pass";
String ES_NET_PROXY_HTTPS_USE_SYSTEM_PROPS = "es.net.proxy.https.use.system.props";
String ES_NET_PROXY_HTTPS_USE_SYSTEM_PROPS_DEFAULT = "yes";
@Deprecated
String ES_NET_PROXY_SOCKS_HOST = "es.net.proxy.socks.host";
@Deprecated
String ES_NET_PROXY_SOCKS_PORT = "es.net.proxy.socks.port";
@Deprecated
String ES_NET_PROXY_SOCKS_USER = "es.net.proxy.socks.user";
@Deprecated
String ES_NET_PROXY_SOCKS_PASS = "es.net.proxy.socks.pass";
@Deprecated
String ES_NET_PROXY_SOCKS_USE_SYSTEM_PROPS = "es.net.proxy.socks.use.system.props";
@Deprecated
String ES_NET_PROXY_SOCKS_USE_SYSTEM_PROPS_DEFAULT = "yes";
/** Security options **/
String ES_SECURITY_AUTHENTICATION = "es.security.authentication";
String ES_SECURITY_USER_PROVIDER_CLASS = "es.security.user.provider.class";
/** Metrics **/
String ES_METRICS_PREFIX = "es.metrics.prefix";
String ES_METRICS_PREFIX_DEFAULT = "";
}