Class to manage the creation of a new JAR file.
A class for building a class extending T at run-time.
Set of Groupings accessible by tag
Tagged key with some metadata describing each channel.
Tagged key with some metadata describing each channel. It has WireFormats and Groupings
This partitioner uses the grouping of the current key tag and partitions based on the key value
This trait represents a Writable capable of reading/writing different type of data depending on a tag and having WireFormats accessible for each tag
WireFormats accessible by tags
A class representing a class that has been generated at run-time.
The super-class of all "value" types used in Hadoop jobs.
A collection of types indexed by a tag
Custom GroupingComparator for tagged keys.
A tagged value for Hadoop keys.
A tagged value for Hadoop keys. Specifically this will be a K2 type so must implement the WritableComparable interface
Set of metadata, which can be a different tuple for each tag (and all tuples don't have to have the same size)
Custom partitioner for tagged key-values.
A tagged value for Hadoop values.
A tagged value for Hadoop values. Specifically this will be a V2 type so must implement the Writable interface.
Before using a TaggedValue the appropriate tag must be set. By default, it is 0
This object stores and retrieves metadata from the Distributed cache.
This object stores and retrieves metadata from the Distributed cache.
When storing the metadata, it returns a path identifying the stored information in order to retrieve it later
Constructs a ScoobiWritable, with some metadata (a WireFormat) retrieved from the distributed cache
Companion object for dynamically constructing a subclass of TaggedGroupingComparator.
Companion object for dynamically constructing a subclass of TaggedKey.
Companion object for dynamically constructing a subclass of TaggedPartitioner.
Companion object for dynamically constructing a subclass of TaggedValue.
A class for building a class extending T at run-time.
The purpose is to create a unique class which, when instantiated, will be able to perform the operations described in T, while using some metadata object serialised to the distributed cache
It takes:
The metadata is distributed to the cache and a "metadataTag" method is added to the built class so that it can be retrieved.
For example, a TaggedValue is a class, defined for several tags, which is able to read/write values of different types (described by their WireFormats), with one type per tag. A concrete instance of that class will have a unique name, TV92, and will provide a method returning the path of the distributed cache file containing all WireFormats per tags.
The TaggedKey class then retrieves the map with the help of the ScoobiMetadata class and can use the wireformats to serialise/deserialise values