Created
September 21, 2016 16:24
-
-
Save seanorama/828f547b9eb154b5e1f3afc0bde3a24f to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{ | |
"Blueprints": { | |
"stack_name": "HDP", | |
"stack_version": "2.5" | |
}, | |
"host_groups": [ | |
{ | |
"name": "host-group-1", | |
"components": [ | |
{ | |
"name": "HBASE_CLIENT" | |
}, | |
{ | |
"name": "DATANODE" | |
}, | |
{ | |
"name": "SPARK_JOBHISTORYSERVER" | |
}, | |
{ | |
"name": "APP_TIMELINE_SERVER" | |
}, | |
{ | |
"name": "HIVE_CLIENT" | |
}, | |
{ | |
"name": "RESOURCEMANAGER" | |
}, | |
{ | |
"name": "MAPREDUCE2_CLIENT" | |
}, | |
{ | |
"name": "HISTORYSERVER" | |
}, | |
{ | |
"name": "SUPERVISOR" | |
}, | |
{ | |
"name": "NAMENODE" | |
}, | |
{ | |
"name": "ZEPPELIN_MASTER" | |
}, | |
{ | |
"name": "NIMBUS" | |
}, | |
{ | |
"name": "PIG" | |
}, | |
{ | |
"name": "SPARK_CLIENT" | |
}, | |
{ | |
"name": "YARN_CLIENT" | |
}, | |
{ | |
"name": "HDFS_CLIENT" | |
}, | |
{ | |
"name": "STORM_UI_SERVER" | |
}, | |
{ | |
"name": "NIFI_MASTER" | |
}, | |
{ | |
"name": "JOURNALNODE" | |
}, | |
{ | |
"name": "DRPC_SERVER" | |
}, | |
{ | |
"name": "SECONDARY_NAMENODE" | |
}, | |
{ | |
"name": "KAFKA_BROKER" | |
}, | |
{ | |
"name": "ZOOKEEPER_SERVER" | |
}, | |
{ | |
"name": "HBASE_REGIONSERVER" | |
}, | |
{ | |
"name": "HBASE_MASTER" | |
}, | |
{ | |
"name": "HIVE_METASTORE" | |
}, | |
{ | |
"name": "HIVE_SERVER_INTERACTIVE" | |
}, | |
{ | |
"name": "TEZ_CLIENT" | |
}, | |
{ | |
"name": "ZOOKEEPER_CLIENT" | |
}, | |
{ | |
"name": "SOLR_MASTER" | |
}, | |
{ | |
"name": "WEBHCAT_SERVER" | |
}, | |
{ | |
"name": "HCAT" | |
}, | |
{ | |
"name": "NODEMANAGER" | |
}, | |
{ | |
"name": "HIVE_SERVER" | |
}, | |
{ | |
"name": "MYSQL_SERVER" | |
}, | |
{ | |
"name": "PHOENIX_QUERY_SERVER" | |
} | |
] | |
} | |
], | |
"configurations": [ | |
{ | |
"cluster-env": { | |
"ambari-bootstrap-filler": "this does nothing but is needed to merge configurations" | |
} | |
}, | |
{ | |
"solr-config": { | |
"solr.demo_mode": "true", | |
"solr.cloudmode": "true", | |
"solr.download.location": "HDPSEARCH" | |
} | |
}, | |
{ | |
"nifi-flow-env": { | |
"properties_attributes": {}, | |
"properties": { | |
"content": "<?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,DELL</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('$',''):replace('\\n','')}|$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,DELL</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>" | |
} | |
} | |
}, | |
{ | |
"hive-interactive-env": { | |
"llap_queue_capacity": "75" | |
} | |
} | |
] | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment