Release 0.8.2.3 (September 15, 2017)

Highlights

  • This releases further optimizes Kylo and NiFi integration.
  • Fixes KYLO-823, KYLO-1202 setting controller service properties in feed/reusable templates
  • Reduces the verbose logging output (in 0.8.2.2) to debug when creating feeds

Upgrade Instructions from v0.8.2

Build or download the rpm

  1. Uninstall Kylo:
/opt/kylo/remove-kylo.sh
  1. Install the new RPM:
rpm –ivh <RPM_FILE>
  1. Copy the application.properties file from the previous install If you have customized the application.properties file you will want to copy the 0.8.2 version and add the new properties that were added for this release.

    3.1 Find the /bkup-config/TIMESTAMP/kylo-services/application.properties file

    • Kylo will backup the application.properties file to the following location, /opt/kylo/bkup-config/YYYY_MM_DD_HH_MM_millis/kylo-services/application.properties, replacing the “YYYY_MM_DD_HH_MM_millis” with a valid time:

    3.2 Copy the backup file over to the /opt/kylo/kylo-services/conf folder

    ### move the application.properties shipped with the .rpm to a backup file
    mv /opt/kylo/kylo-services/application.properties application.properties.0_8_2_2_template
    ### copy the backup properties  (Replace the YYYY_MM_DD_HH_MM_millis  with the valid timestamp)
    cp /opt/kylo/bkup-config/YYYY_MM_DD_HH_MM_millis/kylo-services/application.properties /opt/kylo/kylo-services/conf
    

    3.3 Optional: At startup Kylo inspects NiFi to build a cache of NiFi flow data. It now does this with multiple threads. By default it uses 10 threads. You can modify this by setting the following property:

    ## Modify the number of threads used by Kylo at startup to inspect and build the NiFi flow cache.  Default is 10 if not specified
    nifi.flow.inspector.threads=10
    

    3.4 Ensure the property security.jwt.key in both kylo-services and kylo-ui application.properties file match. They property below needs to match in both of these files:

    • /opt/kylo/kylo-ui/conf/application.properties
    • /opt/kylo/kylo-services/conf/application.properties.
    security.jwt.key=
    
  2. Update the NiFi nars. Run the following shell script to copy over the new NiFi nars/jars to get new changes to NiFi processors and services.

    /opt/kylo/setup/nifi/update-nars-jars.sh <NIFI_HOME> <KYLO_SETUP_FOLDER> <NIFI_LINUX_USER> <NIFI_LINUX_GROUP>
    
    Example:  /opt/kylo/setup/nifi/update-nars-jars.sh /opt/nifi /opt/kylo/setup nifi users
    
  3. Optional: To increase performance in Kylo you can choose to add indexes to the metadata-repository.json file. Add the following json snippet to the /opt/kylo/kylo-services/conf/metadata-repository.json

5.1 make a directory that kylo has read/write acess to:

mkdir -p /opt/kylo/modeshape/modeshape-local-index/

5.2. Edit the /opt/kylo/kylo-services/conf/metadata-repository.json and add in this snippet of JSON. Please ensure the “directory” in the json is the same that you created above.

"indexProviders": {
    "local": {
        "classname": "org.modeshape.jcr.index.local.LocalIndexProvider",
        "directory": "/opt/kylo/modeshape/modeshape-local-index/"
    }
    },
    "indexes": {
        "feedModificationDate": {
            "kind": "value",
            "provider": "local",
            "nodeType": "tba:feed",
            "columns": "jcr:lastModified(DATE)"
        },
        "feedState": {
            "kind": "value",
            "provider": "local",
            "nodeType": "tba:feedData",
            "columns": "tba:state(NAME)"
        },
        "categoryName": {
            "kind": "value",
            "provider": "local",
            "nodeType": "tba:category",
            "columns": "tba:systemName(STRING)"
        },
        "titleIndex": {
            "kind": "value",
            "provider": "local",
            "nodeType": "mix:title",
            "columns": "jcr:title(STRING)"
        },
        "nodesByName": {
            "kind": "value",
            "provider": "local",
            "synchronous": "true",
            "nodeType": "nt:base",
            "columns": "jcr:name(NAME)"
        },
        "nodesByDepth": {
            "kind": "value",
            "provider": "local",
            "synchronous": "true",
            "nodeType": "nt:base",
            "columns": "mode:depth(LONG)"
        },
        "nodesByPath": {
            "kind": "value",
            "provider": "local",
            "synchronous": "true",
            "nodeType": "nt:base",
            "columns": "jcr:path(PATH)"
        },
        "nodeTypes": {
            "kind": "nodeType",
            "provider": "local",
            "nodeType": "nt:base",
            "columns": "jcr:primaryType(STRING)"
        }
    },

Note: After you start you may need to re-index kylo. You can do this via a REST endpoint after you login to Kylo at the following url: