summaryrefslogtreecommitdiff
path: root/ambari-server/src/main/resources/stacks/HDP/2.1/services/HIVE/configuration/hive-site.xml
blob: 56dc017ff19d9163c256e566509a54a755d740ef (plain)
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
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
<?xml version="1.0"?>
<?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
this work for additional information regarding copyright ownership.
The ASF 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.
-->

<configuration supports_final="true">

  <property>
    <name>hive.heapsize</name>
    <value>1024</value>
    <display-name>HiveServer2 heap size</display-name>
    <description>Hive Java heap size</description>
    <value-attributes>
      <unit>MB</unit>
      <overridable>false</overridable>
      <type>int</type>
    </value-attributes>
  </property>

  <property>
    <name>ambari.hive.db.schema.name</name>
    <value>hive</value>
    <display-name>Database Name</display-name>
    <description>Database name used as the Hive Metastore</description>
    <value-attributes>
      <overridable>false</overridable>
    </value-attributes>
  </property>

  <property>
    <name>javax.jdo.option.ConnectionURL</name>
    <value>jdbc:mysql://localhost/hive?createDatabaseIfNotExist=true</value>
    <property-type>DONT_ADD_ON_UPGRADE</property-type>
    <display-name>Database URL</display-name>
    <description>JDBC connect string for a JDBC metastore</description>
    <value-attributes>
      <overridable>false</overridable>
    </value-attributes>
  </property>

  <property>
    <name>javax.jdo.option.ConnectionDriverName</name>
    <value>com.mysql.jdbc.Driver</value>
    <display-name>JDBC Driver Class</display-name>
    <description>Driver class name for a JDBC metastore</description>
    <value-attributes>
      <overridable>false</overridable>
    </value-attributes>
  </property>

  <property>
    <name>javax.jdo.option.ConnectionUserName</name>
    <value>hive</value>
    <display-name>Database Username</display-name>
    <description>username to use against metastore database</description>
    <value-attributes>
      <type>db_user</type>
      <overridable>false</overridable>
    </value-attributes>
  </property>

  <property require-input="true">
    <name>javax.jdo.option.ConnectionPassword</name>
    <value></value>
    <property-type>PASSWORD</property-type>
    <display-name>Database Password</display-name>
    <description>password to use against metastore database</description>
    <value-attributes>
      <type>password</type>
      <overridable>false</overridable>
    </value-attributes>
  </property>

  <property>
    <name>hive.metastore.warehouse.dir</name>
    <value>/apps/hive/warehouse</value>
    <description>location of default database for the warehouse</description>
  </property>

  <property>
    <name>hive.metastore.sasl.enabled</name>
    <value>false</value>
    <description>If true, the metastore thrift interface will be secured with SASL.
     Clients must authenticate with Kerberos.</description>
  </property>

  <property>
    <name>hive.metastore.kerberos.keytab.file</name>
    <value>/etc/security/keytabs/hive.service.keytab</value>
    <description>The path to the Kerberos Keytab file containing the metastore
     thrift server's service principal.</description>
  </property>

  <property>
    <name>hive.metastore.kerberos.principal</name>
    <value>hive/_HOST@EXAMPLE.COM</value>
    <description>The service principal for the metastore thrift server. The special
    string _HOST will be replaced automatically with the correct host name.</description>
  </property>

  <property>
    <name>hive.metastore.cache.pinobjtypes</name>
    <value>Table,Database,Type,FieldSchema,Order</value>
    <description>List of comma separated metastore object types that should be pinned in the cache</description>
  </property>

  <property>
    <name>hive.metastore.uris</name>
    <value>thrift://localhost:9083</value>
    <property-type>DONT_ADD_ON_UPGRADE</property-type>
    <description>URI for client to contact metastore server</description>
  </property>

  <property>
    <name>hive.metastore.client.socket.timeout</name>
    <value>60</value>
    <description>MetaStore Client socket timeout in seconds</description>
  </property>

  <property>
    <name>hive.metastore.execute.setugi</name>
    <value>true</value>
    <description>In unsecure mode, setting this property to true will cause the metastore to execute DFS operations using the client's reported user and group permissions. Note that this property must be set on both the client and     server sides. Further note that its best effort. If client sets its to true and server sets it to false, client setting will be ignored.</description>
  </property>

  <property>
    <name>hive.security.authorization.enabled</name>
    <value>false</value>
    <description>enable or disable the hive client authorization</description>
    <value-attributes>
      <type>boolean</type>
    </value-attributes>
  </property>

  <property>
    <name>hive.security.authorization.manager</name>
    <value>org.apache.hadoop.hive.ql.security.authorization.StorageBasedAuthorizationProvider</value>
    <description>the hive client authorization manager class name.
    The user defined authorization class should implement interface org.apache.hadoop.hive.ql.security.authorization.HiveAuthorizationProvider.  </description>
  </property>

  <property>
    <name>hive.security.metastore.authorization.manager</name>
    <value>org.apache.hadoop.hive.ql.security.authorization.StorageBasedAuthorizationProvider</value>
    <description>The authorization manager class name to be used in the metastore for authorization. The user-defined authorization class should implement interface org.apache.hadoop.hive.ql.security.authorization.HiveMetastoreAuthorizationProvider.  </description>
  </property>

  <property>
    <name>hive.metastore.pre.event.listeners</name>
    <value>org.apache.hadoop.hive.ql.security.authorization.AuthorizationPreEventListener</value>
    <description>Pre-event listener classes to be loaded on the metastore side to run code
      whenever databases, tables, and partitions are created, altered, or dropped.
      Set to org.apache.hadoop.hive.ql.security.authorization.AuthorizationPreEventListener
      if metastore-side authorization is desired.</description>
  </property>

  <property>
    <name>hive.metastore.pre.event.listeners</name>
    <value>org.apache.hadoop.hive.ql.security.authorization.AuthorizationPreEventListener</value>
    <description>Pre-event listener classes to be loaded on the metastore side to run code
      whenever databases, tables, and partitions are created, altered, or dropped.
      Set to org.apache.hadoop.hive.ql.security.authorization.AuthorizationPreEventListener
      if metastore-side authorization is desired.</description>
  </property>

  <property>
    <name>hive.security.authenticator.manager</name>
    <value>org.apache.hadoop.hive.ql.security.ProxyUserAuthenticator</value>
    <description>Hive client authenticator manager class name. The user-defined authenticator class should implement interface org.apache.hadoop.hive.ql.security.HiveAuthenticationProvider.  </description>
  </property>

  <property>
    <name>hive.server2.enable.doAs</name>
    <value>true</value>
    <description>Impersonate the connected user. By default HiveServer2 performs the query processing as the user who
      submitted the query. But if the parameter is set to false, the query will run as the user that the hiveserver2
      process runs as.
    </description>
  </property>

  <property>
    <name>fs.hdfs.impl.disable.cache</name>
    <value>true</value>
    <description>Disable HDFS filesystem cache.</description>
  </property>

  <property>
    <name>fs.file.impl.disable.cache</name>
    <value>true</value>
    <description>Disable local filesystem cache.</description>
  </property>

  <property>
    <name>hive.enforce.bucketing</name>
    <value>true</value>
    <description>Whether bucketing is enforced. If true, while inserting into the table, bucketing is enforced.</description>
  </property>

  <property>
    <name>hive.enforce.sorting</name>
    <value>true</value>
    <description>Whether sorting is enforced. If true, while inserting into the table, sorting is enforced.</description>
  </property>

  <property>
    <name>hive.enforce.sortmergebucketmapjoin</name>
    <value>true</value>
    <description>If the user asked for sort-merge bucketed map-side join, and it cannot be performed, should the query fail or not</description>
  </property>

  <property>
    <name>hive.map.aggr</name>
    <value>true</value>
    <description>Whether to use map-side aggregation in Hive Group By queries.</description>
  </property>

  <property>
    <name>hive.optimize.bucketmapjoin</name>
    <value>true</value>
    <description>If the tables being joined are bucketized on the join columns, and the number of buckets in one table
      is a multiple of the number of buckets in the other table, the buckets can be joined with each other by setting
      this parameter as true.
    </description>
  </property>

  <property>
    <name>hive.optimize.bucketmapjoin.sortedmerge</name>
    <value>false</value>
    <description> If the tables being joined are sorted and bucketized on the join columns, and they have the same number
    of buckets, a sort-merge join can be performed by setting this parameter as true.
    </description>
  </property>

  <property>
    <name>hive.mapred.reduce.tasks.speculative.execution</name>
    <value>false</value>
    <description>Whether speculative execution for reducers should be turned on.</description>
  </property>

  <property>
    <name>hive.auto.convert.join</name>
    <value>true</value>
    <description>Whether Hive enable the optimization about converting common
      join into mapjoin based on the input file size.</description>
  </property>

  <property>
    <name>hive.auto.convert.sortmerge.join</name>
    <value>true</value>
    <description>Will the join be automatically converted to a sort-merge join, if the joined tables pass
      the criteria for sort-merge join.
    </description>
  </property>

  <property>
    <name>hive.auto.convert.sortmerge.join.noconditionaltask</name>
    <value>true</value>
    <description>Required to Enable the conversion of an SMB (Sort-Merge-Bucket) to a map-join SMB.</description>
  </property>

  <property>
    <name>hive.auto.convert.join.noconditionaltask</name>
    <value>true</value>
    <description>Whether Hive enable the optimization about converting common join into mapjoin based on the input file
      size. If this paramater is on, and the sum of size for n-1 of the tables/partitions for a n-way join is smaller than the
      specified size, the join is directly converted to a mapjoin (there is no conditional task).
    </description>
  </property>

  <property>
    <name>hive.auto.convert.join.noconditionaltask.size</name>
    <value>1000000000</value>
    <description>If hive.auto.convert.join.noconditionaltask is off, this parameter does not take affect. However, if it
      is on, and the sum of size for n-1 of the tables/partitions for a n-way join is smaller than this size, the join is directly
      converted to a mapjoin(there is no conditional task).
    </description>
  </property>

  <property>
    <name>hive.optimize.reducededuplication.min.reducer</name>
    <value>4</value>
    <description>Reduce deduplication merges two RSs by moving key/parts/reducer-num of the child RS to parent RS.
      That means if reducer-num of the child RS is fixed (order by or forced bucketing) and small, it can make very slow, single MR.
      The optimization will be disabled if number of reducers is less than specified value.
    </description>
  </property>

  <property>
    <name>hive.optimize.mapjoin.mapreduce</name>
    <value>true</value>
    <description>If hive.auto.convert.join is off, this parameter does not take
      affect. If it is on, and if there are map-join jobs followed by a map-reduce
      job (for e.g a group by), each map-only job is merged with the following
      map-reduce job.
    </description>
  </property>

  <property>
    <name>hive.mapjoin.bucket.cache.size</name>
    <value>10000</value>
    <description>
      Size per reducer.The default is 1G, i.e if the input size is 10G, it
      will use 10 reducers.
    </description>
  </property>

  <property>
    <name>hive.vectorized.execution.enabled</name>
    <value>true</value>
    <description>This flag controls the vectorized mode of query execution as documented in HIVE-4160 (as of Hive 0.13.0)
    </description>
  </property>

  <property>
    <name>hive.optimize.reducededuplication</name>
    <value>true</value>
    <description>Remove extra map-reduce jobs if the data is already clustered by the same key which needs to be used again.
    </description>
  </property>

  <property>
    <name>hive.optimize.index.filter</name>
    <value>true</value>
    <description>
    Whether to enable automatic use of indexes
    </description>
  </property>

  <property>
    <name>hive.execution.engine</name>
    <value>mr</value>
    <description>Whether to use MR or Tez</description>
  </property>

  <property>
    <name>hive.exec.post.hooks</name>
    <value>org.apache.hadoop.hive.ql.hooks.ATSHook</value>
    <description>Comma-separated list of post-execution hooks to be invoked for each statement.</description>
  </property>

  <property>
    <name>hive.exec.pre.hooks</name>
    <value>org.apache.hadoop.hive.ql.hooks.ATSHook</value>
    <description>Comma-separated list of pre-execution hooks to be invoked for each statement.</description>
  </property>

  <property>
    <name>hive.exec.failure.hooks</name>
    <value>org.apache.hadoop.hive.ql.hooks.ATSHook</value>
    <description>Comma-separated list of on-failure hooks to be invoked for each statement.</description>
  </property>

  <property>
    <name>hive.vectorized.groupby.maxentries</name>
    <value>100000</value>
    <description>Max number of entries in the vector group by aggregation hashtables.
      Exceeding this will trigger a flush irrelevant of memory pressure condition.
    </description>
  </property>

  <property>
    <name>hive.vectorized.groupby.checkinterval</name>
    <value>1024</value>
    <description>Number of entries added to the group by aggregation hash before a reocmputation of average entry size is performed.</description>
  </property>

  <property>
    <name>hive.vectorized.groupby.flush.percent</name>
    <value>0.1</value>
    <description>Percent of entries in the group by aggregation hash flushed when the memory treshold is exceeded.</description>
  </property>

  <property>
    <name>hive.stats.autogather</name>
    <value>true</value>
    <description>A flag to gather statistics automatically during the INSERT OVERWRITE command.</description>
  </property>

  <property>
    <name>hive.tez.container.size</name>
    <value>682</value>
    <description>By default, Tez uses the java options from map tasks. Use this property to override that value.</description>
    <display-name>Tez Container Size</display-name>
    <value-attributes>
      <type>int</type>
      <minimum>682</minimum>
      <maximum>6820</maximum>
      <unit>MB</unit>
      <increment-step>682</increment-step>
    </value-attributes>
    <depends-on>
      <property>
        <type>yarn-site</type>
        <name>yarn.scheduler.minimum-allocation-mb</name>
      </property>
      <property>
        <type>yarn-site</type>
        <name>yarn.scheduler.maximum-allocation-mb</name>
      </property>
    </depends-on>
  </property>

  <property>
    <name>hive.tez.input.format</name>
    <value>org.apache.hadoop.hive.ql.io.HiveInputFormat</value>
    <description>The default input format for Tez. Tez groups splits in the Application Master.</description>
  </property>

  <property>
    <name>hive.tez.java.opts</name>
    <value>-server -Xmx545m -Djava.net.preferIPv4Stack=true -XX:NewRatio=8 -XX:+UseNUMA -XX:+UseParallelGC -XX:+PrintGCDetails -verbose:gc -XX:+PrintGCTimeStamps</value>
    <description>Java command line options for Tez. The -Xmx parameter value is generally 80% of hive.tez.container.size.</description>
  </property>

  <property>
    <name>hive.compute.query.using.stats</name>
    <value>true</value>
    <description>
      When set to true Hive will answer a few queries like count(1) purely using stats
      stored in metastore. For basic stats collection turn on the config hive.stats.autogather to true.
      For more advanced stats collection need to run analyze table queries.
    </description>
  </property>

  <property>
    <name>hive.orc.splits.include.file.footer</name>
    <value>false</value>
    <description>
      If turned on splits generated by orc will include metadata about the stripes in the file. This
      data is read remotely (from the client or HS2 machine) and sent to all the tasks.
    </description>
  </property>

  <property>
    <name>hive.limit.optimize.enable</name>
    <value>true</value>
    <description>Whether to enable the optimization of trying a smaller subset of data for simple LIMIT first.</description>
  </property>

  <property>
    <name>hive.limit.pushdown.memory.usage</name>
    <value>0.04</value>
    <description>The max memory to be used for hash in RS operator for top K selection.</description>
  </property>

  <property>
    <name>hive.server2.tez.default.queues</name>
    <value>default</value>
    <description>A comma-separated list of queues configured for the cluster.</description>
    <value-attributes>
      <empty-value-valid>true</empty-value-valid>
    </value-attributes>
  </property>

  <property>
    <name>hive.server2.tez.sessions.per.default.queue</name>
    <value>1</value>
    <description>The number of sessions for each queue named in the hive.server2.tez.default.queues.</description>
  </property>

  <property>
    <name>hive.server2.tez.initialize.default.sessions</name>
    <value>false</value>
    <description>Enables a user to use HiveServer2 without enabling Tez for HiveServer2. Users may potentially may want to run queries with Tez without a pool of sessions.</description>
  </property>

  <property>
    <name>hive.txn.manager</name>
    <value>org.apache.hadoop.hive.ql.lockmgr.DummyTxnManager</value>
    <description>Select the class to do transaction management. The default DummyTxnManager does no transactions and retains the legacy behavior.</description>
  </property>

  <property>
    <name>hive.txn.timeout</name>
    <value>300</value>
    <description>Time after which transactions are declared aborted if the client has not sent a heartbeat, in seconds.</description>
  </property>

  <property>
    <name>hive.txn.max.open.batch</name>
    <value>1000</value>
    <description>Maximum number of transactions that can be fetched in one call to open_txns(). Increasing this will decrease the number of delta files created when streaming data into Hive. But it will also increase the number of open transactions at any given time, possibly impacting read performance.</description>
  </property>

  <property>
    <name>hive.compactor.initiator.on</name>
    <value>false</value>
    <description>Whether to run the compactor's initiator thread in this metastore instance or not. If there is more than one instance of the thrift metastore this should be set to true on only one instance. Setting true on only one host can be achieved by creating a config-group containing the metastore host, and overriding the default value to true in it.</description>
    <display-name>Run Compactor</display-name>
    <value-attributes>
      <type>value-list</type>
      <entries>
        <entry>
          <value>true</value>
          <label>True</label>
        </entry>
        <entry>
          <value>false</value>
          <label>False</label>
        </entry>
      </entries>
      <selection-cardinality>1</selection-cardinality>
    </value-attributes>
    <depends-on>
      <property>
        <type>hive-env</type>
        <name>hive_txn_acid</name>
      </property>
    </depends-on>
  </property>

  <property>
    <name>hive.compactor.worker.threads</name>
    <value>0</value>
    <description>Number of compactor worker threads to run on this metastore instance. Can be different values on different metastore instances.</description>
    <display-name>Number of threads used by Compactor</display-name>
    <value-attributes>
      <type>int</type>
      <minimum>0</minimum>
      <maximum>20</maximum>
      <increment-step>1</increment-step>
    </value-attributes>
    <depends-on>
      <property>
        <type>hive-env</type>
        <name>hive_txn_acid</name>
      </property>
    </depends-on>
  </property>

  <property>
    <name>hive.compactor.worker.timeout</name>
    <value>86400L</value>
    <description>Time, in seconds, before a given compaction in working state is declared a failure and returned to the initiated state.</description>
  </property>

  <property>
    <name>hive.compactor.check.interval</name>
    <value>300L</value>
    <description>Time in seconds between checks to see if any partitions need compacted. This should be kept high because each check for compaction requires many calls against the NameNode.</description>
  </property>

  <property>
    <name>hive.compactor.delta.num.threshold</name>
    <value>10</value>
    <description>Number of delta files that must exist in a directory before the compactor will attempt a minor compaction.</description>
  </property>

  <property>
    <name>hive.compactor.delta.pct.threshold</name>
    <value>0.1f</value>
    <description>Percentage (by size) of base that deltas can be before major compaction is initiated.</description>
  </property>

  <property>
    <name>hive.compactor.abortedtxn.threshold</name>
    <value>1000</value>
    <description>Number of aborted transactions involving a particular table or partition before major compaction is initiated.</description>
  </property>

  <property>
    <name>datanucleus.cache.level2.type</name>
    <value>none</value>
    <description>Determines caching mechanism DataNucleus L2 cache will use. It is strongly recommended to use default value of 'none' as other values may cause consistency errors in Hive.</description>
  </property>

  <property>
    <name>hive.server2.thrift.port</name>
    <value>10000</value>
    <display-name>HiveServer2 Port</display-name>
    <description>
      TCP port number to listen on, default 10000.
    </description>
    <value-attributes>
      <overridable>false</overridable>
      <type>int</type>
    </value-attributes>
  </property>

  <property>
      <name>hive.server2.authentication.spnego.principal</name>
      <value>HTTP/_HOST@EXAMPLE.COM</value>
      <description>
          This keytab would be used by HiveServer2 when Kerberos security is enabled and HTTP transport mode is used.
      </description>
  </property>

  <property>
      <name>hive.server2.authentication.spnego.keytab</name>
      <value>/etc/security/keytabs/spnego.service.keytab</value>
      <description>
          The SPNEGO service principal would be used by HiveServer2 when Kerberos security is enabled and HTTP transport mode is used.
      </description>
  </property>

  <property>
    <name>hive.server2.support.dynamic.service.discovery</name>
    <value>false</value>
    <description>Whether HiveServer2 supports dynamic service discovery for its
      clients. To support this, each instance of HiveServer2 currently uses
      ZooKeeper to register itself, when it is brought up. JDBC/ODBC clients
      should use the ZooKeeper ensemble: hive.zookeeper.quorum in their
      connection string.
    </description>
    <value-attributes>
      <type>boolean</type>
    </value-attributes>
  </property>

  <property>
    <name>hive.server2.zookeeper.namespace</name>
    <value>hiveserver2</value>
    <description>The parent node in ZooKeeper used by HiveServer2 when
      supporting dynamic service discovery.
    </description>
  </property>

</configuration>