Skip to content

Instantly share code, notes, and snippets.

@abajwa-hw
Last active November 10, 2016 08:28
Show Gist options
  • Save abajwa-hw/3a3e2b2d9fb239043a38d204c94e609f to your computer and use it in GitHub Desktop.
Save abajwa-hw/3a3e2b2d9fb239043a38d204c94e609f to your computer and use it in GitHub Desktop.
Twitter demo flow.xml
<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>\n<flowController encoding-version=\"1.0\">\n <maxTimerDrivenThreadCount>10</maxTimerDrivenThreadCount>\n <maxEventDrivenThreadCount>5</maxEventDrivenThreadCount>\n <rootGroup>\n <id>7c84501d-d10c-407c-b9f3-1d80e38fe36a</id>\n <name>NiFi Flow</name>\n <position x=\"0.0\" y=\"0.0\"/>\n <comment/>\n <processGroup>\n <id>f5ca9391-0f9a-4e95-35d7-0fc2188fe61b</id>\n <name>Twitter Dashboard - Push tweets into HDFS/Solr</name>\n <position x=\"469.0\" y=\"166.0\"/>\n <comment/>\n <processor>\n <id>f6327477-fb7d-4af0-bae5-88e29c322093</id>\n <name>PutSolrContentStream</name>\n <position x=\"570.1624606053042\" y=\"398.4867144979376\"/>\n <styles/>\n <comment/>\n <class>org.apache.nifi.processors.solr.PutSolrContentStream</class>\n <maxConcurrentTasks>1</maxConcurrentTasks>\n <schedulingPeriod>0 sec</schedulingPeriod>\n <penalizationPeriod>30 sec</penalizationPeriod>\n <yieldPeriod>1 sec</yieldPeriod>\n <bulletinLevel>WARN</bulletinLevel>\n <lossTolerant>false</lossTolerant>\n <scheduledState>STOPPED</scheduledState>\n <schedulingStrategy>TIMER_DRIVEN</schedulingStrategy>\n <runDurationNanos>0</runDurationNanos>\n <property>\n <name>Solr Type</name>\n <value>Cloud</value>\n </property>\n <property>\n <name>Solr Location</name>\n <value>localhost:2181/solr</value>\n </property>\n <property>\n <name>Collection</name>\n <value>tweets</value>\n </property>\n <property>\n <name>Content Stream Path</name>\n <value>/update/json/docs</value>\n </property>\n <property>\n <name>Content-Type</name>\n <value>application/json</value>\n </property>\n <property>\n <name>Commit Within</name>\n <value>1000</value>\n </property>\n <property>\n <name>Solr Socket Timeout</name>\n <value>10 seconds</value>\n </property>\n <property>\n <name>Solr Connection Timeout</name>\n <value>10 seconds</value>\n </property>\n <property>\n <name>Solr Maximum Connections</name>\n <value>10</value>\n </property>\n <property>\n <name>Solr Maximum Connections Per Host</name>\n <value>5</value>\n </property>\n <property>\n <name>ZooKeeper Client Timeout</name>\n <value>10 seconds</value>\n </property>\n <property>\n <name>ZooKeeper Connection Timeout</name>\n <value>10 seconds</value>\n </property>\n <property>\n <name>f.3</name>\n <value>screenName_s:/user/screen_name</value>\n </property>\n <property>\n <name>f.7</name>\n <value>originalposter_s:/retweeted_status/user/screen_name</value>\n </property>\n <property>\n <name>split</name>\n <value>/</value>\n </property>\n <property>\n <name>f.2</name>\n <value>text_t:/text</value>\n </property>\n <property>\n <name>f.11</name>\n <value>place_s:/place</value>\n </property>\n <property>\n <name>f.6</name>\n <value>tag_ss:/entities/hashtags</value>\n </property>\n <property>\n <name>f.9</name>\n <value>geo_s:/geo</value>\n </property>\n <property>\n <name>f.1</name>\n <value>id:/id</value>\n </property>\n <property>\n <name>f.5</name>\n <value>twitter_created_at_dt:/created_at</value>\n </property>\n <property>\n <name>f.8</name>\n <value>source_s:/source</value>\n </property>\n <property>\n <name>f.10</name>\n <value>coordinates_s:/coordinates</value>\n </property>\n <property>\n <name>f.4</name>\n <value>language_s:/lang</value>\n </property>\n <autoTerminatedRelationship>success</autoTerminatedRelationship>\n <autoTerminatedRelationship>failure</autoTerminatedRelationship>\n <autoTerminatedRelationship>connection_failure</autoTerminatedRelationship>\n </processor>\n <processor>\n <id>2c9405dd-f5cf-41eb-be32-07b29f905567</id>\n <name>Grab Garden Hose</name>\n <position x=\"-152.75263755447736\" y=\"-89.24399484358618\"/>\n <styles/>\n <comment/>\n <class>org.apache.nifi.processors.twitter.GetTwitter</class>\n <maxConcurrentTasks>1</maxConcurrentTasks>\n <schedulingPeriod>0 sec</schedulingPeriod>\n <penalizationPeriod>30 sec</penalizationPeriod>\n <yieldPeriod>1 sec</yieldPeriod>\n <bulletinLevel>WARN</bulletinLevel>\n <lossTolerant>false</lossTolerant>\n <scheduledState>STOPPED</scheduledState>\n <schedulingStrategy>TIMER_DRIVEN</schedulingStrategy>\n <runDurationNanos>0</runDurationNanos>\n <property>\n <name>Twitter Endpoint</name>\n <value>Filter Endpoint</value>\n </property>\n <property>\n <name>Consumer Key</name>\n <value></value>\n </property>\n <property>\n <name>Consumer Secret</name>\n <value></value>\n </property>\n <property>\n <name>Access Token</name>\n <value></value>\n </property>\n <property>\n <name>Access Token Secret</name>\n <value></value>\n </property>\n <property>\n <name>Languages</name>\n </property>\n <property>\n <name>Terms to Filter On</name>\n <value>AAPL,ORCL,GOOG,MSFT</value>\n </property>\n <property>\n <name>IDs to Follow</name>\n </property>\n <property>\n <name>Locations to Filter On</name>\n </property>\n </processor>\n <processor>\n <id>d3c85c30-7a66-4351-59ad-6a2112822845</id>\n <name>ReplaceText</name>\n <position x=\"-151.2741784795469\" y=\"626.69844201626\"/>\n <styles/>\n <comment/>\n <class>org.apache.nifi.processors.standard.ReplaceText</class>\n <maxConcurrentTasks>1</maxConcurrentTasks>\n <schedulingPeriod>0 sec</schedulingPeriod>\n <penalizationPeriod>30 sec</penalizationPeriod>\n <yieldPeriod>1 sec</yieldPeriod>\n <bulletinLevel>WARN</bulletinLevel>\n <lossTolerant>false</lossTolerant>\n <scheduledState>STOPPED</scheduledState>\n <schedulingStrategy>TIMER_DRIVEN</schedulingStrategy>\n <runDurationNanos>0</runDurationNanos>\n <property>\n <name>Regular Expression</name>\n <value>(?s:^(.*)$)</value>\n </property>\n <property>\n <name>Replacement Value</name>\n <value>${twitter.tweet_id}|${twitter.unixtime}|${twitter.time}|${twitter.handle}|${twitter.msg:replace('$','')}|$1</value>\n </property>\n <property>\n <name>Character Set</name>\n <value>UTF-8</value>\n </property>\n <property>\n <name>Maximum Buffer Size</name>\n <value>1 MB</value>\n </property>\n <property>\n <name>Replacement Strategy</name>\n <value>Regex Replace</value>\n </property>\n <property>\n <name>Evaluation Mode</name>\n <value>Entire text</value>\n </property>\n <autoTerminatedRelationship>failure</autoTerminatedRelationship>\n </processor>\n <processor>\n <id>6360c55a-a0e3-4fd9-c74f-4379a88b258d</id>\n <name>PutHDFS</name>\n <position x=\"991.6089963317659\" y=\"622.5758772941957\"/>\n <styles/>\n <comment/>\n <class>org.apache.nifi.processors.hadoop.PutHDFS</class>\n <maxConcurrentTasks>1</maxConcurrentTasks>\n <schedulingPeriod>0 sec</schedulingPeriod>\n <penalizationPeriod>30 sec</penalizationPeriod>\n <yieldPeriod>1 sec</yieldPeriod>\n <bulletinLevel>WARN</bulletinLevel>\n <lossTolerant>false</lossTolerant>\n <scheduledState>STOPPED</scheduledState>\n <schedulingStrategy>TIMER_DRIVEN</schedulingStrategy>\n <runDurationNanos>0</runDurationNanos>\n <property>\n <name>Hadoop Configuration Resources</name>\n <value>/etc/hadoop/conf/core-site.xml</value>\n </property>\n <property>\n <name>Kerberos Principal</name>\n </property>\n <property>\n <name>Kerberos Keytab</name>\n </property>\n <property>\n <name>Kerberos Relogin Period</name>\n <value>4 hours</value>\n </property>\n <property>\n <name>Directory</name>\n <value>/tmp/tweets_staging</value>\n </property>\n <property>\n <name>Conflict Resolution Strategy</name>\n <value>replace</value>\n </property>\n <property>\n <name>Block Size</name>\n </property>\n <property>\n <name>IO Buffer Size</name>\n </property>\n <property>\n <name>Replication</name>\n <value>1</value>\n </property>\n <property>\n <name>Permissions umask</name>\n </property>\n <property>\n <name>Remote Owner</name>\n </property>\n <property>\n <name>Remote Group</name>\n </property>\n <property>\n <name>Compression codec</name>\n <value>NONE</value>\n </property>\n <autoTerminatedRelationship>success</autoTerminatedRelationship>\n </processor>\n <processor>\n <id>63500cda-60fc-433e-0a4b-20cec070729f</id>\n <name>MergeContent</name>\n <position x=\"472.69275612283536\" y=\"635.0226582793375\"/>\n <styles/>\n <comment/>\n <class>org.apache.nifi.processors.standard.MergeContent</class>\n <maxConcurrentTasks>1</maxConcurrentTasks>\n <schedulingPeriod>0 sec</schedulingPeriod>\n <penalizationPeriod>30 sec</penalizationPeriod>\n <yieldPeriod>1 sec</yieldPeriod>\n <bulletinLevel>WARN</bulletinLevel>\n <lossTolerant>false</lossTolerant>\n <scheduledState>STOPPED</scheduledState>\n <schedulingStrategy>TIMER_DRIVEN</schedulingStrategy>\n <runDurationNanos>0</runDurationNanos>\n <property>\n <name>Merge Strategy</name>\n <value>Bin-Packing Algorithm</value>\n </property>\n <property>\n <name>Merge Format</name>\n <value>Binary Concatenation</value>\n </property>\n <property>\n <name>Attribute Strategy</name>\n <value>Keep Only Common Attributes</value>\n </property>\n <property>\n <name>Correlation Attribute Name</name>\n </property>\n <property>\n <name>Minimum Number of Entries</name>\n <value>20</value>\n </property>\n <property>\n <name>Maximum Number of Entries</name>\n <value>1000</value>\n </property>\n <property>\n <name>Minimum Group Size</name>\n <value>0 B</value>\n </property>\n <property>\n <name>Maximum Group Size</name>\n </property>\n <property>\n <name>Max Bin Age</name>\n <value>120 seconds</value>\n </property>\n <property>\n <name>Maximum number of Bins</name>\n <value>100</value>\n </property>\n <property>\n <name>Delimiter Strategy</name>\n <value>Filename</value>\n </property>\n <property>\n <name>Header File</name>\n </property>\n <property>\n <name>Footer File</name>\n </property>\n <property>\n <name>Demarcator File</name>\n </property>\n <property>\n <name>Compression Level</name>\n <value>1</value>\n </property>\n <property>\n <name>Keep Path</name>\n <value>false</value>\n </property>\n <autoTerminatedRelationship>failure</autoTerminatedRelationship>\n <autoTerminatedRelationship>original</autoTerminatedRelationship>\n </processor>\n <processor>\n <id>d0e55145-6505-48ec-bc8e-c5be6d569ba3</id>\n <name>Find only Tweets</name>\n <position x=\"-151.68343894607892\" y=\"398.0763990620535\"/>\n <styles/>\n <comment/>\n <class>org.apache.nifi.processors.standard.RouteOnAttribute</class>\n <maxConcurrentTasks>2</maxConcurrentTasks>\n <schedulingPeriod>0 sec</schedulingPeriod>\n <penalizationPeriod>30 sec</penalizationPeriod>\n <yieldPeriod>1 sec</yieldPeriod>\n <bulletinLevel>WARN</bulletinLevel>\n <lossTolerant>false</lossTolerant>\n <scheduledState>STOPPED</scheduledState>\n <schedulingStrategy>TIMER_DRIVEN</schedulingStrategy>\n <runDurationNanos>25000000</runDurationNanos>\n <property>\n <name>Routing Strategy</name>\n <value>Route to Property name</value>\n </property>\n <property>\n <name>tweet</name>\n <value>${twitter.msg:isEmpty():not()}</value>\n </property>\n <autoTerminatedRelationship>unmatched</autoTerminatedRelationship>\n </processor>\n <processor>\n <id>3ee301f8-d1b6-4d09-df87-b501ba7aca92</id>\n <name>Pull Key Attributes</name>\n <position x=\"-159.22374503738752\" y=\"157.92601179398707\"/>\n <styles/>\n <comment/>\n <class>org.apache.nifi.processors.standard.EvaluateJsonPath</class>\n <maxConcurrentTasks>4</maxConcurrentTasks>\n <schedulingPeriod>0 sec</schedulingPeriod>\n <penalizationPeriod>30 sec</penalizationPeriod>\n <yieldPeriod>1 sec</yieldPeriod>\n <bulletinLevel>ERROR</bulletinLevel>\n <lossTolerant>false</lossTolerant>\n <scheduledState>STOPPED</scheduledState>\n <schedulingStrategy>TIMER_DRIVEN</schedulingStrategy>\n <runDurationNanos>25000000</runDurationNanos>\n <property>\n <name>Destination</name>\n <value>flowfile-attribute</value>\n </property>\n <property>\n <name>Return Type</name>\n <value>auto-detect</value>\n </property>\n <property>\n <name>Path Not Found Behavior</name>\n <value>ignore</value>\n </property>\n <property>\n <name>Null Value Representation</name>\n <value>empty string</value>\n </property>\n <property>\n <name>twitter.handle</name>\n <value>$.user.screen_name</value>\n </property>\n <property>\n <name>twitter.user</name>\n <value>$.user.name</value>\n </property>\n <property>\n <name>twitter.tweet_id</name>\n <value>$.id</value>\n </property>\n <property>\n <name>language</name>\n <value>$.lang</value>\n </property>\n <property>\n <name>twitter.hashtags</name>\n <value>$.entities.hashtags[0].text</value>\n </property>\n <property>\n <name>twitter.unixtime</name>\n <value>$.timestamp_ms</value>\n </property>\n <property>\n <name>twitter.msg</name>\n <value>$.text</value>\n </property>\n <property>\n <name>twitter.time</name>\n <value>$.created_at</value>\n </property>\n <autoTerminatedRelationship>failure</autoTerminatedRelationship>\n <autoTerminatedRelationship>unmatched</autoTerminatedRelationship>\n </processor>\n <connection>\n <id>cbd79ce4-aa7f-47d5-d0ac-d2755e6e3146</id>\n <name/>\n <bendPoints/>\n <labelIndex>1</labelIndex>\n <zIndex>0</zIndex>\n <sourceId>2c9405dd-f5cf-41eb-be32-07b29f905567</sourceId>\n <sourceGroupId>f5ca9391-0f9a-4e95-35d7-0fc2188fe61b</sourceGroupId>\n <sourceType>PROCESSOR</sourceType>\n <destinationId>3ee301f8-d1b6-4d09-df87-b501ba7aca92</destinationId>\n <destinationGroupId>f5ca9391-0f9a-4e95-35d7-0fc2188fe61b</destinationGroupId>\n <destinationType>PROCESSOR</destinationType>\n <relationship>success</relationship>\n <maxWorkQueueSize>0</maxWorkQueueSize>\n <maxWorkQueueDataSize>0 MB</maxWorkQueueDataSize>\n <flowFileExpiration>0 sec</flowFileExpiration>\n </connection>\n <connection>\n <id>865fcabf-5b5c-4e2e-c949-280df8056a5a</id>\n <name/>\n <bendPoints/>\n <labelIndex>1</labelIndex>\n <zIndex>0</zIndex>\n <sourceId>d0e55145-6505-48ec-bc8e-c5be6d569ba3</sourceId>\n <sourceGroupId>f5ca9391-0f9a-4e95-35d7-0fc2188fe61b</sourceGroupId>\n <sourceType>PROCESSOR</sourceType>\n <destinationId>d3c85c30-7a66-4351-59ad-6a2112822845</destinationId>\n <destinationGroupId>f5ca9391-0f9a-4e95-35d7-0fc2188fe61b</destinationGroupId>\n <destinationType>PROCESSOR</destinationType>\n <relationship>tweet</relationship>\n <maxWorkQueueSize>0</maxWorkQueueSize>\n <maxWorkQueueDataSize>0 MB</maxWorkQueueDataSize>\n <flowFileExpiration>0 sec</flowFileExpiration>\n </connection>\n <connection>\n <id>bb162957-16b6-4818-8b40-f28c31101188</id>\n <name/>\n <bendPoints/>\n <labelIndex>1</labelIndex>\n <zIndex>0</zIndex>\n <sourceId>d3c85c30-7a66-4351-59ad-6a2112822845</sourceId>\n <sourceGroupId>f5ca9391-0f9a-4e95-35d7-0fc2188fe61b</sourceGroupId>\n <sourceType>PROCESSOR</sourceType>\n <destinationId>63500cda-60fc-433e-0a4b-20cec070729f</destinationId>\n <destinationGroupId>f5ca9391-0f9a-4e95-35d7-0fc2188fe61b</destinationGroupId>\n <destinationType>PROCESSOR</destinationType>\n <relationship>success</relationship>\n <maxWorkQueueSize>0</maxWorkQueueSize>\n <maxWorkQueueDataSize>0 MB</maxWorkQueueDataSize>\n <flowFileExpiration>0 sec</flowFileExpiration>\n </connection>\n <connection>\n <id>fe96993e-137d-4282-311f-1fc5967474a6</id>\n <name/>\n <bendPoints/>\n <labelIndex>1</labelIndex>\n <zIndex>0</zIndex>\n <sourceId>d0e55145-6505-48ec-bc8e-c5be6d569ba3</sourceId>\n <sourceGroupId>f5ca9391-0f9a-4e95-35d7-0fc2188fe61b</sourceGroupId>\n <sourceType>PROCESSOR</sourceType>\n <destinationId>f6327477-fb7d-4af0-bae5-88e29c322093</destinationId>\n <destinationGroupId>f5ca9391-0f9a-4e95-35d7-0fc2188fe61b</destinationGroupId>\n <destinationType>PROCESSOR</destinationType>\n <relationship>tweet</relationship>\n <maxWorkQueueSize>0</maxWorkQueueSize>\n <maxWorkQueueDataSize>0 MB</maxWorkQueueDataSize>\n <flowFileExpiration>0 sec</flowFileExpiration>\n </connection>\n <connection>\n <id>d4dff594-70e0-4d02-6a95-0a4d0321ddb1</id>\n <name/>\n <bendPoints>\n <bendPoint x=\"1605.1089963317659\" y=\"656.0758772941957\"/>\n <bendPoint x=\"1605.1089963317659\" y=\"723.0758772941957\"/>\n </bendPoints>\n <labelIndex>1</labelIndex>\n <zIndex>0</zIndex>\n <sourceId>6360c55a-a0e3-4fd9-c74f-4379a88b258d</sourceId>\n <sourceGroupId>f5ca9391-0f9a-4e95-35d7-0fc2188fe61b</sourceGroupId>\n <sourceType>PROCESSOR</sourceType>\n <destinationId>6360c55a-a0e3-4fd9-c74f-4379a88b258d</destinationId>\n <destinationGroupId>f5ca9391-0f9a-4e95-35d7-0fc2188fe61b</destinationGroupId>\n <destinationType>PROCESSOR</destinationType>\n <relationship>failure</relationship>\n <maxWorkQueueSize>0</maxWorkQueueSize>\n <maxWorkQueueDataSize>0 MB</maxWorkQueueDataSize>\n <flowFileExpiration>0 sec</flowFileExpiration>\n </connection>\n <connection>\n <id>8554ca84-cc2a-4ad2-9da9-8b373e303a85</id>\n <name/>\n <bendPoints/>\n <labelIndex>1</labelIndex>\n <zIndex>0</zIndex>\n <sourceId>3ee301f8-d1b6-4d09-df87-b501ba7aca92</sourceId>\n <sourceGroupId>f5ca9391-0f9a-4e95-35d7-0fc2188fe61b</sourceGroupId>\n <sourceType>PROCESSOR</sourceType>\n <destinationId>d0e55145-6505-48ec-bc8e-c5be6d569ba3</destinationId>\n <destinationGroupId>f5ca9391-0f9a-4e95-35d7-0fc2188fe61b</destinationGroupId>\n <destinationType>PROCESSOR</destinationType>\n <relationship>matched</relationship>\n <maxWorkQueueSize>0</maxWorkQueueSize>\n <maxWorkQueueDataSize>0 MB</maxWorkQueueDataSize>\n <flowFileExpiration>0 sec</flowFileExpiration>\n </connection>\n <connection>\n <id>717511b2-0372-418f-9772-b35c134f403e</id>\n <name/>\n <bendPoints/>\n <labelIndex>1</labelIndex>\n <zIndex>0</zIndex>\n <sourceId>63500cda-60fc-433e-0a4b-20cec070729f</sourceId>\n <sourceGroupId>f5ca9391-0f9a-4e95-35d7-0fc2188fe61b</sourceGroupId>\n <sourceType>PROCESSOR</sourceType>\n <destinationId>6360c55a-a0e3-4fd9-c74f-4379a88b258d</destinationId>\n <destinationGroupId>f5ca9391-0f9a-4e95-35d7-0fc2188fe61b</destinationGroupId>\n <destinationType>PROCESSOR</destinationType>\n <relationship>merged</relationship>\n <maxWorkQueueSize>0</maxWorkQueueSize>\n <maxWorkQueueDataSize>0 MB</maxWorkQueueDataSize>\n <flowFileExpiration>0 sec</flowFileExpiration>\n </connection>\n </processGroup>\n <template>\n <description>Push tweets to HDFS/Solr and visualize using Banana dashboard</description>\n <id>12cfee62-753f-48e6-b9f2-29dcd4a4f143</id>\n <name>Twitter Dashboard</name>\n <snippet>\n <processGroups>\n <id>f5ca9391-0f9a-4e95-8a27-3aa3a2d044ac</id>\n <parentGroupId>7c84501d-d10c-407c-b9f3-1d80e38fe36a</parentGroupId>\n <position>\n <x>-17.876335903686083</x>\n <y>58.777631201824505</y>\n </position>\n <comments/>\n <contents>\n <connections>\n <id>8554ca84-cc2a-4ad2-ae0d-840b1b6f46ff</id>\n <parentGroupId>f5ca9391-0f9a-4e95-8a27-3aa3a2d044ac</parentGroupId>\n <backPressureDataSizeThreshold>0 MB</backPressureDataSizeThreshold>\n <backPressureObjectThreshold>0</backPressureObjectThreshold>\n <destination>\n <groupId>f5ca9391-0f9a-4e95-8a27-3aa3a2d044ac</groupId>\n <id>d0e55145-6505-48ec-b5bd-272100e70f46</id>\n <type>PROCESSOR</type>\n </destination>\n <flowFileExpiration>0 sec</flowFileExpiration>\n <labelIndex>1</labelIndex>\n <name/>\n <selectedRelationships>matched</selectedRelationships>\n <source>\n <groupId>f5ca9391-0f9a-4e95-8a27-3aa3a2d044ac</groupId>\n <id>3ee301f8-d1b6-4d09-9d10-2060632e9db0</id>\n <type>PROCESSOR</type>\n </source>\n <zIndex>0</zIndex>\n </connections>\n <connections>\n <id>865fcabf-5b5c-4e2e-8d1d-1fc509a5ddb1</id>\n <parentGroupId>f5ca9391-0f9a-4e95-8a27-3aa3a2d044ac</parentGroupId>\n <backPressureDataSizeThreshold>0 MB</backPressureDataSizeThreshold>\n <backPressureObjectThreshold>0</backPressureObjectThreshold>\n <destination>\n <groupId>f5ca9391-0f9a-4e95-8a27-3aa3a2d044ac</groupId>\n <id>d3c85c30-7a66-4351-96b7-0cbd4ff8e809</id>\n <type>PROCESSOR</type>\n </destination>\n <flowFileExpiration>0 sec</flowFileExpiration>\n <labelIndex>1</labelIndex>\n <name/>\n <selectedRelationships>tweet</selectedRelationships>\n <source>\n <groupId>f5ca9391-0f9a-4e95-8a27-3aa3a2d044ac</groupId>\n <id>d0e55145-6505-48ec-b5bd-272100e70f46</id>\n <type>PROCESSOR</type>\n </source>\n <zIndex>0</zIndex>\n </connections>\n <connections>\n <id>bb162957-16b6-4818-882a-1767dd49b86c</id>\n <parentGroupId>f5ca9391-0f9a-4e95-8a27-3aa3a2d044ac</parentGroupId>\n <backPressureDataSizeThreshold>0 MB</backPressureDataSizeThreshold>\n <backPressureObjectThreshold>0</backPressureObjectThreshold>\n <destination>\n <groupId>f5ca9391-0f9a-4e95-8a27-3aa3a2d044ac</groupId>\n <id>63500cda-60fc-433e-9d34-0250c7fe57ba</id>\n <type>PROCESSOR</type>\n </destination>\n <flowFileExpiration>0 sec</flowFileExpiration>\n <labelIndex>1</labelIndex>\n <name/>\n <selectedRelationships>success</selectedRelationships>\n <source>\n <groupId>f5ca9391-0f9a-4e95-8a27-3aa3a2d044ac</groupId>\n <id>d3c85c30-7a66-4351-96b7-0cbd4ff8e809</id>\n <type>PROCESSOR</type>\n </source>\n <zIndex>0</zIndex>\n </connections>\n <connections>\n <id>cbd79ce4-aa7f-47d5-ae7e-665279a4c3c0</id>\n <parentGroupId>f5ca9391-0f9a-4e95-8a27-3aa3a2d044ac</parentGroupId>\n <backPressureDataSizeThreshold>0 MB</backPressureDataSizeThreshold>\n <backPressureObjectThreshold>0</backPressureObjectThreshold>\n <destination>\n <groupId>f5ca9391-0f9a-4e95-8a27-3aa3a2d044ac</groupId>\n <id>3ee301f8-d1b6-4d09-9d10-2060632e9db0</id>\n <type>PROCESSOR</type>\n </destination>\n <flowFileExpiration>0 sec</flowFileExpiration>\n <labelIndex>1</labelIndex>\n <name/>\n <selectedRelationships>success</selectedRelationships>\n <source>\n <groupId>f5ca9391-0f9a-4e95-8a27-3aa3a2d044ac</groupId>\n <id>2c9405dd-f5cf-41eb-a4e6-5eeb1070d658</id>\n <type>PROCESSOR</type>\n </source>\n <zIndex>0</zIndex>\n </connections>\n <connections>\n <id>d4dff594-70e0-4d02-8620-e68afd8e684d</id>\n <parentGroupId>f5ca9391-0f9a-4e95-8a27-3aa3a2d044ac</parentGroupId>\n <backPressureDataSizeThreshold>0 MB</backPressureDataSizeThreshold>\n <backPressureObjectThreshold>0</backPressureObjectThreshold>\n <bends>\n <x>1375.1673094034688</x>\n <y>504.1860631043438</y>\n </bends>\n <bends>\n <x>1375.1673094034688</x>\n <y>554.1860631043438</y>\n </bends>\n <destination>\n <groupId>f5ca9391-0f9a-4e95-8a27-3aa3a2d044ac</groupId>\n <id>6360c55a-a0e3-4fd9-ab55-f5910c6932c6</id>\n <type>PROCESSOR</type>\n </destination>\n <flowFileExpiration>0 sec</flowFileExpiration>\n <labelIndex>1</labelIndex>\n <name/>\n <selectedRelationships>failure</selectedRelationships>\n <source>\n <groupId>f5ca9391-0f9a-4e95-8a27-3aa3a2d044ac</groupId>\n <id>6360c55a-a0e3-4fd9-ab55-f5910c6932c6</id>\n <type>PROCESSOR</type>\n </source>\n <zIndex>0</zIndex>\n </connections>\n <connections>\n <id>fe96993e-137d-4282-94bf-a3e9ce176367</id>\n <parentGroupId>f5ca9391-0f9a-4e95-8a27-3aa3a2d044ac</parentGroupId>\n <backPressureDataSizeThreshold>0 MB</backPressureDataSizeThreshold>\n <backPressureObjectThreshold>0</backPressureObjectThreshold>\n <destination>\n <groupId>f5ca9391-0f9a-4e95-8a27-3aa3a2d044ac</groupId>\n <id>f6327477-fb7d-4af0-a2c2-1ee50e03249e</id>\n <type>PROCESSOR</type>\n </destination>\n <flowFileExpiration>0 sec</flowFileExpiration>\n <labelIndex>1</labelIndex>\n <name/>\n <selectedRelationships>tweet</selectedRelationships>\n <source>\n <groupId>f5ca9391-0f9a-4e95-8a27-3aa3a2d044ac</groupId>\n <id>d0e55145-6505-48ec-b5bd-272100e70f46</id>\n <type>PROCESSOR</type>\n </source>\n <zIndex>0</zIndex>\n </connections>\n <connections>\n <id>211507c9-92e6-49ea-a1bb-0666683e46ec</id>\n <parentGroupId>f5ca9391-0f9a-4e95-8a27-3aa3a2d044ac</parentGroupId>\n <backPressureDataSizeThreshold>0 MB</backPressureDataSizeThreshold>\n <backPressureObjectThreshold>0</backPressureObjectThreshold>\n <destination>\n <groupId>f5ca9391-0f9a-4e95-8a27-3aa3a2d044ac</groupId>\n <id>6f28e92f-9486-45ad-a1e3-b02e4e00bf7c</id>\n <type>PROCESSOR</type>\n </destination>\n <flowFileExpiration>0 sec</flowFileExpiration>\n <labelIndex>1</labelIndex>\n <name/>\n <selectedRelationships>merged</selectedRelationships>\n <source>\n <groupId>f5ca9391-0f9a-4e95-8a27-3aa3a2d044ac</groupId>\n <id>63500cda-60fc-433e-9d34-0250c7fe57ba</id>\n <type>PROCESSOR</type>\n </source>\n <zIndex>0</zIndex>\n </connections>\n <connections>\n <id>717511b2-0372-418f-b344-a864a5c306a3</id>\n <parentGroupId>f5ca9391-0f9a-4e95-8a27-3aa3a2d044ac</parentGroupId>\n <backPressureDataSizeThreshold>0 MB</backPressureDataSizeThreshold>\n <backPressureObjectThreshold>0</backPressureObjectThreshold>\n <destination>\n <groupId>f5ca9391-0f9a-4e95-8a27-3aa3a2d044ac</groupId>\n <id>6360c55a-a0e3-4fd9-ab55-f5910c6932c6</id>\n <type>PROCESSOR</type>\n </destination>\n <flowFileExpiration>0 sec</flowFileExpiration>\n <labelIndex>1</labelIndex>\n <name/>\n <selectedRelationships>merged</selectedRelationships>\n <source>\n <groupId>f5ca9391-0f9a-4e95-8a27-3aa3a2d044ac</groupId>\n <id>63500cda-60fc-433e-9d34-0250c7fe57ba</id>\n <type>PROCESSOR</type>\n </source>\n <zIndex>0</zIndex>\n </connections>\n <processors>\n <id>d0e55145-6505-48ec-b5bd-272100e70f46</id>\n <parentGroupId>f5ca9391-0f9a-4e95-8a27-3aa3a2d044ac</parentGroupId>\n <position>\n <x>-101.12229263071927</x>\n <y>415.77229159831415</y>\n </position>\n <config>\n <bulletinLevel>WARN</bulletinLevel>\n <comments/>\n <concurrentlySchedulableTaskCount>2</concurrentlySchedulableTaskCount>\n <descriptors>\n <entry>\n <key>Routing Strategy</key>\n <value>\n <name>Routing Strategy</name>\n </value>\n </entry>\n <entry>\n <key>tweet</key>\n <value>\n <name>tweet</name>\n </value>\n </entry>\n </descriptors>\n <lossTolerant>false</lossTolerant>\n <penaltyDuration>30 sec</penaltyDuration>\n <properties>\n <entry>\n <key>Routing Strategy</key>\n <value>Route to Property name</value>\n </entry>\n <entry>\n <key>tweet</key>\n <value>${twitter.msg:isEmpty():not()}</value>\n </entry>\n </properties>\n <runDurationMillis>25</runDurationMillis>\n <schedulingPeriod>0 sec</schedulingPeriod>\n <schedulingStrategy>TIMER_DRIVEN</schedulingStrategy>\n <yieldDuration>1 sec</yieldDuration>\n </config>\n <name>Find only Tweets</name>\n <relationships>\n <autoTerminate>false</autoTerminate>\n <name>tweet</name>\n </relationships>\n <relationships>\n <autoTerminate>true</autoTerminate>\n <name>unmatched</name>\n </relationships>\n <style/>\n <type>org.apache.nifi.processors.standard.RouteOnAttribute</type>\n </processors>\n <processors>\n <id>d3c85c30-7a66-4351-96b7-0cbd4ff8e809</id>\n <parentGroupId>f5ca9391-0f9a-4e95-8a27-3aa3a2d044ac</parentGroupId>\n <position>\n <x>347.4908657243287</x>\n <y>331.2840828508703</y>\n </position>\n <config>\n <bulletinLevel>WARN</bulletinLevel>\n <comments/>\n <concurrentlySchedulableTaskCount>1</concurrentlySchedulableTaskCount>\n <descriptors>\n <entry>\n <key>Regular Expression</key>\n <value>\n <name>Regular Expression</name>\n </value>\n </entry>\n <entry>\n <key>Replacement Value</key>\n <value>\n <name>Replacement Value</name>\n </value>\n </entry>\n <entry>\n <key>Evaluation Mode</key>\n <value>\n <name>Evaluation Mode</name>\n </value>\n </entry>\n <entry>\n <key>Character Set</key>\n <value>\n <name>Character Set</name>\n </value>\n </entry>\n <entry>\n <key>Maximum Buffer Size</key>\n <value>\n <name>Maximum Buffer Size</name>\n </value>\n </entry>\n <entry>\n <key>Replacement Strategy</key>\n <value>\n <name>Replacement Strategy</name>\n </value>\n </entry>\n </descriptors>\n <lossTolerant>false</lossTolerant>\n <penaltyDuration>30 sec</penaltyDuration>\n <properties>\n <entry>\n <key>Regular Expression</key>\n <value>(?s:^(.*)$)</value>\n </entry>\n <entry>\n <key>Replacement Value</key>\n <value>${twitter.tweet_id}|${twitter.unixtime}|${twitter.time}|${twitter.handle}|${twitter.msg:replace('$',''):replace('\\n','')}|$1</value>\n </entry>\n <entry>\n <key>Evaluation Mode</key>\n <value>Entire text</value>\n </entry>\n <entry>\n <key>Character Set</key>\n <value>UTF-8</value>\n </entry>\n <entry>\n <key>Maximum Buffer Size</key>\n <value>1 MB</value>\n </entry>\n <entry>\n <key>Replacement Strategy</key>\n <value>Regex Replace</value>\n </entry>\n </properties>\n <runDurationMillis>0</runDurationMillis>\n <schedulingPeriod>0 sec</schedulingPeriod>\n <schedulingStrategy>TIMER_DRIVEN</schedulingStrategy>\n <yieldDuration>1 sec</yieldDuration>\n </config>\n <name>ReplaceText</name>\n <relationships>\n <autoTerminate>true</autoTerminate>\n <name>failure</name>\n </relationships>\n <relationships>\n <autoTerminate>false</autoTerminate>\n <name>success</name>\n </relationships>\n <style/>\n <type>org.apache.nifi.processors.standard.ReplaceText</type>\n </processors>\n <processors>\n <id>f6327477-fb7d-4af0-a2c2-1ee50e03249e</id>\n <parentGroupId>f5ca9391-0f9a-4e95-8a27-3aa3a2d044ac</parentGroupId>\n <position>\n <x>467.54397601551534</x>\n <y>126.61621687404391</y>\n </position>\n <config>\n <bulletinLevel>WARN</bulletinLevel>\n <comments/>\n <concurrentlySchedulableTaskCount>1</concurrentlySchedulableTaskCount>\n <descriptors>\n <entry>\n <key>f.11</key>\n <value>\n <name>f.11</name>\n </value>\n </entry>\n <entry>\n <key>f.1</key>\n <value>\n <name>f.1</name>\n </value>\n </entry>\n <entry>\n <key>f.10</key>\n <value>\n <name>f.10</name>\n </value>\n </entry>\n <entry>\n <key>f.3</key>\n <value>\n <name>f.3</name>\n </value>\n </entry>\n <entry>\n <key>f.2</key>\n <value>\n <name>f.2</name>\n </value>\n </entry>\n <entry>\n <key>f.5</key>\n <value>\n <name>f.5</name>\n </value>\n </entry>\n <entry>\n <key>f.4</key>\n <value>\n <name>f.4</name>\n </value>\n </entry>\n <entry>\n <key>f.7</key>\n <value>\n <name>f.7</name>\n </value>\n </entry>\n <entry>\n <key>f.6</key>\n <value>\n <name>f.6</name>\n </value>\n </entry>\n <entry>\n <key>f.9</key>\n <value>\n <name>f.9</name>\n </value>\n </entry>\n <entry>\n <key>f.8</key>\n <value>\n <name>f.8</name>\n </value>\n </entry>\n <entry>\n <key>split</key>\n <value>\n <name>split</name>\n </value>\n </entry>\n <entry>\n <key>Collection</key>\n <value>\n <name>Collection</name>\n </value>\n </entry>\n <entry>\n <key>Solr Location</key>\n <value>\n <name>Solr Location</name>\n </value>\n </entry>\n <entry>\n <key>Content Stream Path</key>\n <value>\n <name>Content Stream Path</name>\n </value>\n </entry>\n <entry>\n <key>Solr Type</key>\n <value>\n <name>Solr Type</name>\n </value>\n </entry>\n <entry>\n <key>Content-Type</key>\n <value>\n <name>Content-Type</name>\n </value>\n </entry>\n <entry>\n <key>Commit Within</key>\n <value>\n <name>Commit Within</name>\n </value>\n </entry>\n </descriptors>\n <lossTolerant>false</lossTolerant>\n <penaltyDuration>30 sec</penaltyDuration>\n <properties>\n <entry>\n <key>f.11</key>\n <value>place_s:/place</value>\n </entry>\n <entry>\n <key>Solr Socket Timeout</key>\n <value>10 seconds</value>\n </entry>\n <entry>\n <key>f.1</key>\n <value>id:/id</value>\n </entry>\n <entry>\n <key>f.10</key>\n <value>coordinates_s:/coordinates</value>\n </entry>\n <entry>\n <key>ZooKeeper Connection Timeout</key>\n <value>10 seconds</value>\n </entry>\n <entry>\n <key>f.3</key>\n <value>screenName_s:/user/screen_name</value>\n </entry>\n <entry>\n <key>f.2</key>\n <value>text_t:/text</value>\n </entry>\n <entry>\n <key>Solr Maximum Connections</key>\n <value>10</value>\n </entry>\n <entry>\n <key>f.5</key>\n <value>twitter_created_at_dt:/created_at</value>\n </entry>\n <entry>\n <key>f.4</key>\n <value>language_s:/lang</value>\n </entry>\n <entry>\n <key>ZooKeeper Client Timeout</key>\n <value>10 seconds</value>\n </entry>\n <entry>\n <key>f.7</key>\n <value>originalposter_s:/retweeted_status/user/screen_name</value>\n </entry>\n <entry>\n <key>f.6</key>\n <value>tag_ss:/entities/hashtags</value>\n </entry>\n <entry>\n <key>f.9</key>\n <value>geo_s:/geo</value>\n </entry>\n <entry>\n <key>f.8</key>\n <value>source_s:/source</value>\n </entry>\n <entry>\n <key>split</key>\n <value>/</value>\n </entry>\n <entry>\n <key>Solr Maximum Connections Per Host</key>\n <value>5</value>\n </entry>\n <entry>\n <key>Solr Connection Timeout</key>\n <value>10 seconds</value>\n </entry>\n <entry>\n <key>Collection</key>\n <value>tweets</value>\n </entry>\n <entry>\n <key>Solr Location</key>\n <value>localhost:2181</value>\n </entry>\n <entry>\n <key>Content Stream Path</key>\n <value>/update/json/docs</value>\n </entry>\n <entry>\n <key>Solr Type</key>\n <value>Cloud</value>\n </entry>\n <entry>\n <key>Content-Type</key>\n <value>application/json</value>\n </entry>\n <entry>\n <key>Commit Within</key>\n <value>1000</value>\n </entry>\n </properties>\n <runDurationMillis>0</runDurationMillis>\n <schedulingPeriod>0 sec</schedulingPeriod>\n <schedulingStrategy>TIMER_DRIVEN</schedulingStrategy>\n <yieldDuration>1 sec</yieldDuration>\n </config>\n <name>PutSolrContentStream</name>\n <relationships>\n <autoTerminate>true</autoTerminate>\n <name>connection_failure</name>\n </relationships>\n <relationships>\n <autoTerminate>true</autoTerminate>\n <name>failure</name>\n </relationships>\n <relationships>\n <autoTerminate>true</autoTerminate>\n <name>success</name>\n </relationships>\n <style/>\n <type>org.apache.nifi.processors.solr.PutSolrContentStream</type>\n </processors>\n <processors>\n <id>2c9405dd-f5cf-41eb-a4e6-5eeb1070d658</id>\n <parentGroupId>f5ca9391-0f9a-4e95-8a27-3aa3a2d044ac</parentGroupId>\n <position>\n <x>-101.8350917029849</x>\n <y>-66.59999615192999</y>\n </position>\n <config>\n <bulletinLevel>WARN</bulletinLevel>\n <comments/>\n <concurrentlySchedulableTaskCount>1</concurrentlySchedulableTaskCount>\n <descriptors>\n <entry>\n <key>Consumer Key</key>\n <value>\n <name>Consumer Key</name>\n </value>\n </entry>\n <entry>\n <key>Consumer Secret</key>\n <value>\n <name>Consumer Secret</name>\n </value>\n </entry>\n <entry>\n <key>Access Token</key>\n <value>\n <name>Access Token</name>\n </value>\n </entry>\n <entry>\n <key>Languages</key>\n <value>\n <name>Languages</name>\n </value>\n </entry>\n <entry>\n <key>IDs to Follow</key>\n <value>\n <name>IDs to Follow</name>\n </value>\n </entry>\n <entry>\n <key>Twitter Endpoint</key>\n <value>\n <name>Twitter Endpoint</name>\n </value>\n </entry>\n <entry>\n <key>Locations to Filter On</key>\n <value>\n <name>Locations to Filter On</name>\n </value>\n </entry>\n <entry>\n <key>Terms to Filter On</key>\n <value>\n <name>Terms to Filter On</name>\n </value>\n </entry>\n <entry>\n <key>Access Token Secret</key>\n <value>\n <name>Access Token Secret</name>\n </value>\n </entry>\n </descriptors>\n <lossTolerant>false</lossTolerant>\n <penaltyDuration>30 sec</penaltyDuration>\n <properties>\n <entry>\n <key>Consumer Key</key>\n <value>g28NxesU1Vpk12IBXCnIWs2Ur</value>\n </entry>\n <entry>\n <key>Consumer Secret</key>\n </entry>\n <entry>\n <key>Access Token</key>\n <value>2885109412-UDQfXEUV2cQTYqCIbnsU7JtYqOaAksJCi6gbMgS</value>\n </entry>\n <entry>\n <key>Languages</key>\n </entry>\n <entry>\n <key>IDs to Follow</key>\n </entry>\n <entry>\n <key>Twitter Endpoint</key>\n <value>Filter Endpoint</value>\n </entry>\n <entry>\n <key>Locations to Filter On</key>\n </entry>\n <entry>\n <key>Terms to Filter On</key>\n <value>AAPL,ORCL,GOOG,MSFT</value>\n </entry>\n <entry>\n <key>Access Token Secret</key>\n </entry>\n </properties>\n <runDurationMillis>0</runDurationMillis>\n <schedulingPeriod>0 sec</schedulingPeriod>\n <schedulingStrategy>TIMER_DRIVEN</schedulingStrategy>\n <yieldDuration>1 sec</yieldDuration>\n </config>\n <name>Grab Garden Hose</name>\n <relationships>\n <autoTerminate>false</autoTerminate>\n <name>success</name>\n </relationships>\n <style/>\n <type>org.apache.nifi.processors.twitter.GetTwitter</type>\n </processors>\n <processors>\n <id>3ee301f8-d1b6-4d09-9d10-2060632e9db0</id>\n <parentGroupId>f5ca9391-0f9a-4e95-8a27-3aa3a2d044ac</parentGroupId>\n <position>\n <x>-110.79999648814115</x>\n <y>181.37032931804072</y>\n </position>\n <config>\n <bulletinLevel>ERROR</bulletinLevel>\n <comments/>\n <concurrentlySchedulableTaskCount>4</concurrentlySchedulableTaskCount>\n <descriptors>\n <entry>\n <key>twitter.handle</key>\n <value>\n <name>twitter.handle</name>\n </value>\n </entry>\n <entry>\n <key>twitter.tweet_id</key>\n <value>\n <name>twitter.tweet_id</name>\n </value>\n </entry>\n <entry>\n <key>Destination</key>\n <value>\n <name>Destination</name>\n </value>\n </entry>\n <entry>\n <key>twitter.msg</key>\n <value>\n <name>twitter.msg</name>\n </value>\n </entry>\n <entry>\n <key>twitter.user</key>\n <value>\n <name>twitter.user</name>\n </value>\n </entry>\n <entry>\n <key>Return Type</key>\n <value>\n <name>Return Type</name>\n </value>\n </entry>\n <entry>\n <key>twitter.hashtags</key>\n <value>\n <name>twitter.hashtags</name>\n </value>\n </entry>\n <entry>\n <key>Null Value Representation</key>\n <value>\n <name>Null Value Representation</name>\n </value>\n </entry>\n <entry>\n <key>language</key>\n <value>\n <name>language</name>\n </value>\n </entry>\n <entry>\n <key>twitter.time</key>\n <value>\n <name>twitter.time</name>\n </value>\n </entry>\n <entry>\n <key>twitter.unixtime</key>\n <value>\n <name>twitter.unixtime</name>\n </value>\n </entry>\n <entry>\n <key>Path Not Found Behavior</key>\n <value>\n <name>Path Not Found Behavior</name>\n </value>\n </entry>\n </descriptors>\n <lossTolerant>false</lossTolerant>\n <penaltyDuration>30 sec</penaltyDuration>\n <properties>\n <entry>\n <key>twitter.handle</key>\n <value>$.user.screen_name</value>\n </entry>\n <entry>\n <key>twitter.tweet_id</key>\n <value>$.id</value>\n </entry>\n <entry>\n <key>Destination</key>\n <value>flowfile-attribute</value>\n </entry>\n <entry>\n <key>twitter.msg</key>\n <value>$.text</value>\n </entry>\n <entry>\n <key>twitter.user</key>\n <value>$.user.name</value>\n </entry>\n <entry>\n <key>Return Type</key>\n <value>auto-detect</value>\n </entry>\n <entry>\n <key>twitter.hashtags</key>\n <value>$.entities.hashtags[0].text</value>\n </entry>\n <entry>\n <key>Null Value Representation</key>\n <value>empty string</value>\n </entry>\n <entry>\n <key>language</key>\n <value>$.lang</value>\n </entry>\n <entry>\n <key>twitter.time</key>\n <value>$.created_at</value>\n </entry>\n <entry>\n <key>twitter.unixtime</key>\n <value>$.timestamp_ms</value>\n </entry>\n <entry>\n <key>Path Not Found Behavior</key>\n <value>ignore</value>\n </entry>\n </properties>\n <runDurationMillis>25</runDurationMillis>\n <schedulingPeriod>0 sec</schedulingPeriod>\n <schedulingStrategy>TIMER_DRIVEN</schedulingStrategy>\n <yieldDuration>1 sec</yieldDuration>\n </config>\n <name>Pull Key Attributes</name>\n <relationships>\n <autoTerminate>true</autoTerminate>\n <name>failure</name>\n </relationships>\n <relationships>\n <autoTerminate>false</autoTerminate>\n <name>matched</name>\n </relationships>\n <relationships>\n <autoTerminate>true</autoTerminate>\n <name>unmatched</name>\n </relationships>\n <style/>\n <type>org.apache.nifi.processors.standard.EvaluateJsonPath</type>\n </processors>\n <processors>\n <id>63500cda-60fc-433e-9d34-0250c7fe57ba</id>\n <parentGroupId>f5ca9391-0f9a-4e95-8a27-3aa3a2d044ac</parentGroupId>\n <position>\n <x>890.901616061057</x>\n <y>285.4346310401422</y>\n </position>\n <config>\n <bulletinLevel>WARN</bulletinLevel>\n <comments/>\n <concurrentlySchedulableTaskCount>1</concurrentlySchedulableTaskCount>\n <descriptors>\n <entry>\n <key>Keep Path</key>\n <value>\n <name>Keep Path</name>\n </value>\n </entry>\n <entry>\n <key>Maximum Group Size</key>\n <value>\n <name>Maximum Group Size</name>\n </value>\n </entry>\n <entry>\n <key>Merge Strategy</key>\n <value>\n <name>Merge Strategy</name>\n </value>\n </entry>\n <entry>\n <key>Attribute Strategy</key>\n <value>\n <name>Attribute Strategy</name>\n </value>\n </entry>\n <entry>\n <key>Compression Level</key>\n <value>\n <name>Compression Level</name>\n </value>\n </entry>\n <entry>\n <key>Maximum Number of Entries</key>\n <value>\n <name>Maximum Number of Entries</name>\n </value>\n </entry>\n <entry>\n <key>Minimum Group Size</key>\n <value>\n <name>Minimum Group Size</name>\n </value>\n </entry>\n <entry>\n <key>Maximum number of Bins</key>\n <value>\n <name>Maximum number of Bins</name>\n </value>\n </entry>\n <entry>\n <key>Delimiter Strategy</key>\n <value>\n <name>Delimiter Strategy</name>\n </value>\n </entry>\n <entry>\n <key>Merge Format</key>\n <value>\n <name>Merge Format</name>\n </value>\n </entry>\n <entry>\n <key>Footer File</key>\n <value>\n <name>Footer File</name>\n </value>\n </entry>\n <entry>\n <key>Max Bin Age</key>\n <value>\n <name>Max Bin Age</name>\n </value>\n </entry>\n <entry>\n <key>Demarcator File</key>\n <value>\n <name>Demarcator File</name>\n </value>\n </entry>\n <entry>\n <key>Correlation Attribute Name</key>\n <value>\n <name>Correlation Attribute Name</name>\n </value>\n </entry>\n <entry>\n <key>Header File</key>\n <value>\n <name>Header File</name>\n </value>\n </entry>\n <entry>\n <key>Minimum Number of Entries</key>\n <value>\n <name>Minimum Number of Entries</name>\n </value>\n </entry>\n </descriptors>\n <lossTolerant>false</lossTolerant>\n <penaltyDuration>30 sec</penaltyDuration>\n <properties>\n <entry>\n <key>Keep Path</key>\n <value>false</value>\n </entry>\n <entry>\n <key>Maximum Group Size</key>\n </entry>\n <entry>\n <key>Merge Strategy</key>\n <value>Bin-Packing Algorithm</value>\n </entry>\n <entry>\n <key>Attribute Strategy</key>\n <value>Keep Only Common Attributes</value>\n </entry>\n <entry>\n <key>Compression Level</key>\n <value>1</value>\n </entry>\n <entry>\n <key>Maximum Number of Entries</key>\n <value>1000</value>\n </entry>\n <entry>\n <key>Minimum Group Size</key>\n <value>0 B</value>\n </entry>\n <entry>\n <key>Maximum number of Bins</key>\n <value>100</value>\n </entry>\n <entry>\n <key>Delimiter Strategy</key>\n <value>Filename</value>\n </entry>\n <entry>\n <key>Merge Format</key>\n <value>Binary Concatenation</value>\n </entry>\n <entry>\n <key>Footer File</key>\n </entry>\n <entry>\n <key>Max Bin Age</key>\n <value>120 seconds</value>\n </entry>\n <entry>\n <key>Demarcator File</key>\n </entry>\n <entry>\n <key>Correlation Attribute Name</key>\n </entry>\n <entry>\n <key>Header File</key>\n </entry>\n <entry>\n <key>Minimum Number of Entries</key>\n <value>20</value>\n </entry>\n </properties>\n <runDurationMillis>0</runDurationMillis>\n <schedulingPeriod>0 sec</schedulingPeriod>\n <schedulingStrategy>TIMER_DRIVEN</schedulingStrategy>\n <yieldDuration>1 sec</yieldDuration>\n </config>\n <name>MergeContent</name>\n <relationships>\n <autoTerminate>true</autoTerminate>\n <name>failure</name>\n </relationships>\n <relationships>\n <autoTerminate>false</autoTerminate>\n <name>merged</name>\n </relationships>\n <relationships>\n <autoTerminate>true</autoTerminate>\n <name>original</name>\n </relationships>\n <style/>\n <type>org.apache.nifi.processors.standard.MergeContent</type>\n </processors>\n <processors>\n <id>6360c55a-a0e3-4fd9-ab55-f5910c6932c6</id>\n <parentGroupId>f5ca9391-0f9a-4e95-8a27-3aa3a2d044ac</parentGroupId>\n <position>\n <x>966.1673094034688</x>\n <y>479.1860631043438</y>\n </position>\n <config>\n <bulletinLevel>WARN</bulletinLevel>\n <comments/>\n <concurrentlySchedulableTaskCount>1</concurrentlySchedulableTaskCount>\n <descriptors>\n <entry>\n <key>Permissions umask</key>\n <value>\n <name>Permissions umask</name>\n </value>\n </entry>\n <entry>\n <key>Hadoop Configuration Resources</key>\n <value>\n <name>Hadoop Configuration Resources</name>\n </value>\n </entry>\n <entry>\n <key>Remote Owner</key>\n <value>\n <name>Remote Owner</name>\n </value>\n </entry>\n <entry>\n <key>Compression codec</key>\n <value>\n <name>Compression codec</name>\n </value>\n </entry>\n <entry>\n <key>IO Buffer Size</key>\n <value>\n <name>IO Buffer Size</name>\n </value>\n </entry>\n <entry>\n <key>Remote Group</key>\n <value>\n <name>Remote Group</name>\n </value>\n </entry>\n <entry>\n <key>Block Size</key>\n <value>\n <name>Block Size</name>\n </value>\n </entry>\n <entry>\n <key>Kerberos Keytab</key>\n <value>\n <name>Kerberos Keytab</name>\n </value>\n </entry>\n <entry>\n <key>Kerberos Principal</key>\n <value>\n <name>Kerberos Principal</name>\n </value>\n </entry>\n <entry>\n <key>Replication</key>\n <value>\n <name>Replication</name>\n </value>\n </entry>\n <entry>\n <key>Kerberos Relogin Period</key>\n <value>\n <name>Kerberos Relogin Period</name>\n </value>\n </entry>\n <entry>\n <key>Directory</key>\n <value>\n <name>Directory</name>\n </value>\n </entry>\n <entry>\n <key>Conflict Resolution Strategy</key>\n <value>\n <name>Conflict Resolution Strategy</name>\n </value>\n </entry>\n </descriptors>\n <lossTolerant>false</lossTolerant>\n <penaltyDuration>30 sec</penaltyDuration>\n <properties>\n <entry>\n <key>Permissions umask</key>\n </entry>\n <entry>\n <key>Hadoop Configuration Resources</key>\n <value>/etc/hadoop/conf/core-site.xml</value>\n </entry>\n <entry>\n <key>Remote Owner</key>\n </entry>\n <entry>\n <key>Compression codec</key>\n <value>NONE</value>\n </entry>\n <entry>\n <key>IO Buffer Size</key>\n </entry>\n <entry>\n <key>Remote Group</key>\n </entry>\n <entry>\n <key>Block Size</key>\n </entry>\n <entry>\n <key>Kerberos Keytab</key>\n </entry>\n <entry>\n <key>Kerberos Principal</key>\n </entry>\n <entry>\n <key>Replication</key>\n <value>1</value>\n </entry>\n <entry>\n <key>Kerberos Relogin Period</key>\n <value>4 hours</value>\n </entry>\n <entry>\n <key>Directory</key>\n <value>/tmp/tweets_staging</value>\n </entry>\n <entry>\n <key>Conflict Resolution Strategy</key>\n <value>replace</value>\n </entry>\n </properties>\n <runDurationMillis>0</runDurationMillis>\n <schedulingPeriod>0 sec</schedulingPeriod>\n <schedulingStrategy>TIMER_DRIVEN</schedulingStrategy>\n <yieldDuration>1 sec</yieldDuration>\n </config>\n <name>PutHDFS</name>\n <relationships>\n <autoTerminate>false</autoTerminate>\n <name>failure</name>\n </relationships>\n <relationships>\n <autoTerminate>true</autoTerminate>\n <name>success</name>\n </relationships>\n <style/>\n <type>org.apache.nifi.processors.hadoop.PutHDFS</type>\n </processors>\n <processors>\n <id>6f28e92f-9486-45ad-a1e3-b02e4e00bf7c</id>\n <parentGroupId>f5ca9391-0f9a-4e95-8a27-3aa3a2d044ac</parentGroupId>\n <position>\n <x>459.41607100345675</x>\n <y>468.6240270576958</y>\n </position>\n <config>\n <bulletinLevel>WARN</bulletinLevel>\n <comments/>\n <concurrentlySchedulableTaskCount>1</concurrentlySchedulableTaskCount>\n <descriptors>\n <entry>\n <key>Group</key>\n <value>\n <name>Group</name>\n </value>\n </entry>\n <entry>\n <key>Owner</key>\n <value>\n <name>Owner</name>\n </value>\n </entry>\n <entry>\n <key>Create Missing Directories</key>\n <value>\n <name>Create Missing Directories</name>\n </value>\n </entry>\n <entry>\n <key>Permissions</key>\n <value>\n <name>Permissions</name>\n </value>\n </entry>\n <entry>\n <key>Maximum File Count</key>\n <value>\n <name>Maximum File Count</name>\n </value>\n </entry>\n <entry>\n <key>Last Modified Time</key>\n <value>\n <name>Last Modified Time</name>\n </value>\n </entry>\n <entry>\n <key>Directory</key>\n <value>\n <name>Directory</name>\n </value>\n </entry>\n <entry>\n <key>Conflict Resolution Strategy</key>\n <value>\n <name>Conflict Resolution Strategy</name>\n </value>\n </entry>\n </descriptors>\n <lossTolerant>false</lossTolerant>\n <penaltyDuration>30 sec</penaltyDuration>\n <properties>\n <entry>\n <key>Group</key>\n </entry>\n <entry>\n <key>Owner</key>\n </entry>\n <entry>\n <key>Create Missing Directories</key>\n <value>true</value>\n </entry>\n <entry>\n <key>Permissions</key>\n </entry>\n <entry>\n <key>Maximum File Count</key>\n </entry>\n <entry>\n <key>Last Modified Time</key>\n </entry>\n <entry>\n <key>Directory</key>\n <value>/tmp/tweets</value>\n </entry>\n <entry>\n <key>Conflict Resolution Strategy</key>\n <value>fail</value>\n </entry>\n </properties>\n <runDurationMillis>0</runDurationMillis>\n <schedulingPeriod>0 sec</schedulingPeriod>\n <schedulingStrategy>TIMER_DRIVEN</schedulingStrategy>\n <yieldDuration>1 sec</yieldDuration>\n </config>\n <name>PutFile</name>\n <relationships>\n <autoTerminate>true</autoTerminate>\n <name>failure</name>\n </relationships>\n <relationships>\n <autoTerminate>true</autoTerminate>\n <name>success</name>\n </relationships>\n <style/>\n <type>org.apache.nifi.processors.standard.PutFile</type>\n </processors>\n </contents>\n <name>Twitter Dashboard - Push tweets into HDFS/Solr</name>\n </processGroups>\n </snippet>\n <timestamp>09/20/2016 01:36:37 UTC</timestamp>\n</template>\n </rootGroup>\n <controllerServices/>\n <reportingTasks>\n <reportingTask>\n <id>3b80ba0f-a6c0-48db-b721-4dbc04cef28e</id>\n <name>AmbariReportingTask</name>\n <comment/>\n <class>org.apache.nifi.reporting.ambari.AmbariReportingTask</class>\n <schedulingPeriod>{{nifi_ambari_reporting_frequency}}</schedulingPeriod>\n <scheduledState>RUNNING</scheduledState>\n <schedulingStrategy>TIMER_DRIVEN</schedulingStrategy>\n <property>\n <name>Metrics Collector URL</name>\n <value>${ambari.metrics.collector.url}</value>\n </property>\n <property>\n <name>Application ID</name>\n <value>${ambari.application.id}</value>\n </property>\n <property>\n <name>Hostname</name>\n <value>${hostname(true)}</value>\n </property>\n </reportingTask>\n </reportingTasks>\n</flowController>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment