Fluo Recipes 1.0.0-beta-2 Documentation

Common code for Fluo application developers.

Available Recipes

  • Collision Free Map - A recipe for making many to many updates.
  • Export Queue - A recipe for exporting data from Fluo to external systems.
  • Row Hash Prefix - A recipe for spreading data evenly in a row prefix.
  • RecordingTransaction - A wrapper for a Fluo transaction that records all transaction operations to a log which can be used to export data from Fluo.
  • Testing Some code to help write Fluo Integration test.

Common Functionality

Recipes have common needs that are broken down into the following reusable components.

Modules and Maven Imports

Fluo Recipes provides multiple jars. The primary reason its separated into multiple jars is to avoid pushing unneeded dependencies on users. For example there is a Fluo Recipes spark module that depends on Spark. If an application does not need to use Spark, then it can easily avoid a transitive dependency on Spark.

Below are Maven dependencies for Fluo Recipes.

  <properties>
    <fluo-recipes.version>1.0.0-beta-2</fluo-recipes.version>
  </properties>

  <dependencies>
    <!-- Recipes core only has a transitive dependency on the Fluo API -->
    <dependency>
      <groupId>io.fluo</groupId>
      <artifactId>fluo-recipes-core</artifactId>
      <version>${fluo-recipes.version}</version>
    </dependency>
    <!--optional dependency provides the default Fluo Recipes serialization
        mechanism, which is based on Kryo  -->
    <dependency>
      <groupId>io.fluo</groupId>
      <artifactId>fluo-recipes-kryo</artifactId>
      <version>${fluo-recipes.version}</version>
    </dependency>
    <!--optional dependency assist w/ integrating Accumulo and Fluo  -->
    <dependency>
      <groupId>io.fluo</groupId>
      <artifactId>fluo-recipes-accumulo</artifactId>
      <version>${fluo-recipes.version}</version>
    </dependency>
    <!--optional dependency assist w/ integrating Spark and Fluo -->
    <dependency>
      <groupId>io.fluo</groupId>
      <artifactId>fluo-recipes-spark</artifactId>
      <version>${fluo-recipes.version}</version>
    </dependency>
    <!--optional dependency helps when write Fluo integration test. -->
    <dependency>
      <groupId>io.fluo</groupId>
      <artifactId>fluo-recipes-test</artifactId>
      <version>${fluo-recipes.version}</version>
      <scope>test</scope>
    </dependency>
  </dependencies>