[ 
https://issues.apache.org/jira/browse/METRON-664?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15828406#comment-15828406
 ] 

ASF GitHub Bot commented on METRON-664:
---------------------------------------

Github user cestella commented on the issue:

    https://github.com/apache/incubator-metron/pull/419
  
    Testing Instructions beyond the normal smoke test (i.e. letting data
    flow through to the indices and checking them).
    
    ## Preliminaries
    
    Since I will use the squid topology to pass data through in a controlled
    way, we must install squid and generate one point of data:
    * `yum install -y squid`
    * `service squid start`
    * `squidclient http://www.yahoo.com`
    
    Also, set an environment variable to indicate `METRON_HOME`:
    * `export METRON_HOME=/usr/metron/0.3.0` 
    
    ## Free Up Space on the virtual machine
    
    First, let's free up some headroom on the virtual machine.  If you are 
running this on a
    multinode cluster, you would not have to do this.
    * Kill monit via `service monit stop`
    * Kill tcpreplay via `for i in $(ps -ef | grep tcpreplay | awk '{print 
$2}');do kill -9 $i;done`
    * Kill existing parser topologies via 
       * `storm kill snort`
       * `storm kill bro`
    * Kill flume via `for i in $(ps -ef | grep flume | awk '{print $2}');do 
kill -9 $i;done`
    * Kill yaf via `for i in $(ps -ef | grep yaf | awk '{print $2}');do kill -9 
$i;done`
    * Kill bro via `for i in $(ps -ef | grep bro | awk '{print $2}');do kill -9 
$i;done`
    
    ## Deploy the squid parser
    * Create the squid kafka topic: 
`/usr/hdp/current/kafka-broker/bin/kafka-topics.sh --zookeeper node1:2181 
--create --topic squid --partitions 1 --replication-factor 1`
    * Start via `$METRON_HOME/bin/start_parser_topology.sh -k node1:6667 -z 
node1:2181 -s squid`
    
    ### Test Case 0: Base Case Test
    * Delete any squid index that currently exists (if any do) via `curl 
-XDELETE "http://localhost:9200/squid*"`
    * Send 1 data points through and ensure that there are no data points in 
the index:
      * `cat /var/log/squid/access.log | 
/usr/hdp/current/kafka-broker/bin/kafka-console-producer.sh --broker-list 
node1:6667 --topic squid`
      * `curl "http://localhost:9200/squid*/_search?pretty=true&q=*:*"; 2> 
/dev/null| grep "full_hostname" | wc -l` should yield  `1`
    * Validate that the Storm UI for the indexing topology indicates a warning 
in the console for both the "hdfsIndexingBolt" and "indexingBolt" to the effect 
of `java.lang.Exception: WARNING: Default and (likely) unoptimized writer 
config used for hdfs writer and sensor squid` and `java.lang.Exception: 
WARNING: Default and (likely) unoptimized writer config used for elasticsearch 
writer and sensor squid` respectively 
    
    ### Test Case 1: Adjusting batch sizes independently
    * Delete any squid index that currently exists (if any do) via `curl 
-XDELETE "http://localhost:9200/squid*"`
    * Create a file at `$METRON_HOME/config/zookeeper/indexing/squid.json` with 
the following contents:
    ```
    {
      "hdfs" : {
        "index": "squid",
        "batchSize": 1,
        "enabled" : true
      },
      "elasticsearch" : {
        "index": "squid",
        "batchSize": 5,
        "enabled" : true
      }
    }
    ```
    * Push the configs via `$METRON_HOME/bin/zk_load_configs.sh -m PUSH -i 
$METRON_HOME/config/zookeeper -z node1:2181`
    * Send 4 data points through and ensure:
      * `cat /var/log/squid/access.log /var/log/squid/access.log 
/var/log/squid/access.log /var/log/squid/access.log | 
/usr/hdp/current/kafka-broker/bin/kafka-console-producer.sh --broker-list 
node1:6667 --topic squid`
      * `curl "http://localhost:9200/squid*/_search?pretty=true&q=*:*"; 2> 
/dev/null| grep "full_hostname" | wc -l` should yield  `0` 
      * `hadoop fs -cat /apps/metron/indexing/indexed/squid/enrichment-null* | 
wc -l` should yield `4`
    * Send a final data point through and ensure:
      * `cat /var/log/squid/access.log | 
/usr/hdp/current/kafka-broker/bin/kafka-console-producer.sh --broker-list 
node1:6667 --topic squid`
      * `curl "http://localhost:9200/squid*/_search?pretty=true&q=*:*"; 2> 
/dev/null| grep "full_hostname" | wc -l` should yield  `5` 
      * `hadoop fs -cat /apps/metron/indexing/indexed/squid/enrichment-null* | 
wc -l` should yield `5`
     
    ### Test Case 2: Turn off HDFS writer
    * Delete any squid index that currently exists (if any do) via `curl 
-XDELETE "http://localhost:9200/squid*"`
    * Edit the file at `$METRON_HOME/config/zookeeper/indexing/squid.json` to 
the following contents:
    ```
    {
      "hdfs" : {
        "index": "squid",
        "batchSize": 1,
        "enabled" : false 
      },
      "elasticsearch" : {
        "index": "squid",
        "batchSize": 1,
        "enabled" : true
      }
    }
    ```
    * Send 1 data points through and ensure:
      * `cat /var/log/squid/access.log | 
/usr/hdp/current/kafka-broker/bin/kafka-console-producer.sh --broker-list 
node1:6667 --topic squid`
      * `curl "http://localhost:9200/squid*/_search?pretty=true&q=*:*"; 2> 
/dev/null| grep "full_hostname" | wc -l` should yield  `1`
      * `hadoop fs -cat /apps/metron/indexing/indexed/squid/enrichment-null* | 
wc -l` should yield `0`
    
    ### Test Case 3: Stellar Management Functions
    * Execute the following in the stellar shell:
    ```
    Stellar, Go!
    Please note that functions are loading lazily in the background and will be 
unavailable until loaded fully.
    {es.clustername=metron, es.ip=node1, es.port=9300, 
es.date.format=yyyy.MM.dd.HH}
    [Stellar]>>> # Grab the indexing config
    [Stellar]>>> squid_config := CONFIG_GET('INDEXING', 'squid', true)
    [Stellar]>>>
    [Stellar]>>> # Update the index and batch size
    [Stellar]>>> squid_config := INDEXING_SET_BATCH( 
INDEXING_SET_INDEX(squid_config, 'hdfs', 'squid'), 'hdfs', 2)
    [Stellar]>>> # Push the config to zookeeper
    [Stellar]>>> CONFIG_PUT('INDEXING', squid_config, 'squid')
    [Stellar]>>> # Grab the updated config from zookeeper
    [Stellar]>>> CONFIG_GET('INDEXING', 'squid')
    {
      "hdfs" : {
        "index" : "squid",
        "batchSize" : 2,
        "enabled" : false
      },
      "elasticsearch" : {
        "index" : "squid",
        "batchSize" : 1,
        "enabled" : true
      }
    }
    ```
    * Confirm that the dump command from `$METRON_HOME/bin/zk_load_configs.sh 
-m DUMP -z node1:2181` contains the config with batch size of `1`
    * Now pull the configs locally via `$METRON_HOME/bin/zk_load_configs.sh -m 
PULL -z node1:2181 -o $METRON_HOME/config/zookeeper -f`
    * Check that the "hdfs" config at 
`$METRON_HOME/config/zookeeper/indexing/squid.json` is indeed:
    ```
    {
      "index" : "squid",
      "batchSize" : 2,
      "enabled" : false
    }
    ```



> Make the index configuration per-writer with enabled/disabled
> -------------------------------------------------------------
>
>                 Key: METRON-664
>                 URL: https://issues.apache.org/jira/browse/METRON-664
>             Project: Metron
>          Issue Type: Sub-task
>            Reporter: Casey Stella
>




--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to