...
Property | Default | Description |
---|---|---|
hcat.pig.storer.external.location | not set | An override to specify where HCatStorer will write to, defined from Pig jobs, either directly by the user, or by using org.apache.hive.hcatalog.pig.HCatStorerWrapper. HCatalog will write to this specified directory, rather than writing to the table /or partition directory specified/ calculated by the metadata. This will be used in lieu of the table directory if this is a table-level write (unpartitioned table write) or in lieu of the partition directory if this is a partition-level write. This parameter is used only for non-dynamic-partitioning jobs which have multiple write destinations. |
hcat.dynamic.partitioning.custom.pattern | not set | For a dynamic partitioning jobsjob, simply specifying a custom directory is not sufficient since it the job writes to multiple destinations, and thus, instead of a directory specification, it requires a pattern specification. That is where this parameter comes in. For example, given a table partitioned by the keys country and state, with a root directory location of /apps/hive/warehouse/geo/, a dynamic partition write into this table that writes partitions (country=US,state=CA) & (country=IN,state=KA) would create two directories: /apps/hive/warehouse/geo/country=US/state=CA/ and /apps/hive/warehouse/geo/country=IN/state=KA/. However, specifying hcat.dynamic.partitioning.custom.pattern="/ext/geo/${country}-${state}" would create the following two partition directories: /ext/geo/US-CA and /ext/geo/IN-KA. Thus, it allows the user to specify a custom directory location pattern for all writes, and will interpolate each variable it sees when attempting to create a destination location for the partitions. See Dynamic Partitioning: External Tables for another example. |
hcat.append.limit (Hive 0.15.0 and later) | not set | hcat.append.limit allows an HCatalog user to specify a custom append limit. By default, while appending to an existing directory HCatalog will attempt to avoid naming clashes and try to append _a_NNN , where NNN is a number, to the desired filename to avoid clashes. However, by default, it only tries for NNN from 0 to 999 before giving up. This can cause an issue for some tables with an extraordinarily large number of files. Ideally, this should be fixed by the user changing their usage pattern and doing some manner of compaction; however, setting this parameter can be used as a temporary fix to increase that limit. (Added in Hive 0.15.0 with HIVE-9381.) |
hcat.input.ignore.invalid.path | false | hcat.input.ignore.invalid.path allows an HCatalog user to specify whether to ignore the path and return an empty result for it when trying to get a split for an invalid input path. The default is false, and user gets an InvalidInputException if the input path is invalid. (Added in Hive 2.1.0 with HIVE-13509.) |
Cache Behaviour Directives
...
Property | Default | Description |
---|---|---|
hcatalog.hive.client.cache.expiry.time | 120 | Allows users to override the expiry time specified – this is an int, and specifies the number of seconds until a cache entry expires. |
hcatalog.hive.client.cache.disabled | false | Allows people to disable the cache altogether if they wish to. This is useful in highly multithreaded usecasesuse cases. |
Note: The two above properties begin with "hcatalog." rather than "hcat."
...
In some cases (such as some older versions of Pig), users of HCatalog may not support all the datatypes supported by Hive. There are a few configuration parameters provided to handle data promotions and conversions which allow them to read data through HCatalog. On the write side, it is expected that the user pass in valid HCatRecords with data correctlyvalid datatypes that match the schema.
Property | Default | Description |
---|---|---|
hcat.data.convert.boolean.to.integer | false | promotes boolean to int on read from HCatalog |
hcat.data.tiny.small.int.promotion | false | promotes tinyint or smallint to int on read from HCatalog |
...
While reading, it is understandable that data might contain errors, but we may not want to completely abort a task due to a couple of errors. These parameters configure how many errors we HCatalog can accept before failing the task.
...