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

Nick Allen commented on METRON-2012:
------------------------------------

This bug also causes a problem with Streaming Enrichments in the Parser 
topology.  To replicate this, follow [these instructions 
|https://cwiki.apache.org/confluence/display/METRON/2016/06/16/Metron+Tutorial+-+Fundamentals+Part+6%3A+Streaming+Enrichment]to
 define a simple Streaming Enrichment. The tuples will fail and the following 
is logged.
{code:java}
2019-03-02 02:19:59.993 o.a.s.d.executor Thread-12-parserBolt-executor[5 5] 
[ERROR]
java.lang.IllegalAccessError: tried to access method 
com.google.common.base.Stopwatch.<init>()V from class 
org.apache.hadoop.hbase.zookeeper.MetaTableLocator
at 
org.apache.hadoop.hbase.zookeeper.MetaTableLocator.blockUntilAvailable(MetaTableLocator.java:596)
 ~[stormjar.jar:?]
at 
org.apache.hadoop.hbase.zookeeper.MetaTableLocator.blockUntilAvailable(MetaTableLocator.java:580)
 ~[stormjar.jar:?]
at 
org.apache.hadoop.hbase.zookeeper.MetaTableLocator.blockUntilAvailable(MetaTableLocator.java:559)
 ~[stormjar.jar:?]
at 
org.apache.hadoop.hbase.client.ZooKeeperRegistry.getMetaRegionLocation(ZooKeeperRegistry.java:61)
 ~[stormjar.jar:?]
at 
org.apache.hadoop.hbase.client.ConnectionManager$HConnectionImplementation.locateMeta(ConnectionManager.java:1185)
 ~[stormjar.jar:?]
at 
org.apache.hadoop.hbase.client.ConnectionManager$HConnectionImplementation.locateRegion(ConnectionManager.java:1152)
 ~[stormjar.jar:?]
at 
org.apache.hadoop.hbase.client.ConnectionManager$HConnectionImplementation.relocateRegion(ConnectionManager.java:1126)
 ~[stormjar.jar:?]
at 
org.apache.hadoop.hbase.client.ConnectionManager$HConnectionImplementation.locateRegionInMeta(ConnectionManager.java:1331)
 ~[stormjar.jar:?]
at 
org.apache.hadoop.hbase.client.ConnectionManager$HConnectionImplementation.locateRegion(ConnectionManager.java:1155)
 ~[stormjar.jar:?]
at org.apache.hadoop.hbase.client.AsyncProcess.submit(AsyncProcess.java:370) 
~[stormjar.jar:?]
at org.apache.hadoop.hbase.client.AsyncProcess.submit(AsyncProcess.java:321) 
~[stormjar.jar:?]
at 
org.apache.hadoop.hbase.client.BufferedMutatorImpl.backgroundFlushCommits(BufferedMutatorImpl.java:206)
 ~[stormjar.jar:?]
at 
org.apache.hadoop.hbase.client.BufferedMutatorImpl.flush(BufferedMutatorImpl.java:183)
 ~[stormjar.jar:?]
at org.apache.hadoop.hbase.client.HTable.flushCommits(HTable.java:1439) 
~[stormjar.jar:?]
at org.apache.hadoop.hbase.client.HTable.put(HTable.java:1042) ~[stormjar.jar:?]
at 
org.apache.metron.enrichment.writer.SimpleHbaseEnrichmentWriter.write(SimpleHbaseEnrichmentWriter.java:342)
 ~[stormjar.jar:?]
at 
org.apache.metron.writer.BulkWriterComponent.flush(BulkWriterComponent.java:123)
 [stormjar.jar:?]
at 
org.apache.metron.writer.BulkWriterComponent.applyShouldFlush(BulkWriterComponent.java:179)
 [stormjar.jar:?]
at 
org.apache.metron.writer.BulkWriterComponent.write(BulkWriterComponent.java:99) 
[stormjar.jar:?]
at org.apache.metron.parsers.bolt.WriterHandler.write(WriterHandler.java:90) 
[stormjar.jar:?]
at org.apache.metron.parsers.bolt.ParserBolt.execute(ParserBolt.java:269) 
[stormjar.jar:?]
at 
org.apache.storm.daemon.executor$fn__10252$tuple_action_fn__10254.invoke(executor.clj:735)
 [storm-core-1.1.0.2.6.5.0-292.jar:1.1.0.2.6.5.0-292]
at 
org.apache.storm.daemon.executor$mk_task_receiver$fn__10171.invoke(executor.clj:466)
 [storm-core-1.1.0.2.6.5.0-292.jar:1.1.0.2.6.5.0-292]
at 
org.apache.storm.disruptor$clojure_handler$reify__9685.onEvent(disruptor.clj:40)
 [storm-core-1.1.0.2.6.5.0-292.jar:1.1.0.2.6.5.0-292]
at 
org.apache.storm.utils.DisruptorQueue.consumeBatchToCursor(DisruptorQueue.java:472)
 [storm-core-1.1.0.2.6.5.0-292.jar:1.1.0.2.6.5.0-292]
at 
org.apache.storm.utils.DisruptorQueue.consumeBatchWhenAvailable(DisruptorQueue.java:451)
 [storm-core-1.1.0.2.6.5.0-292.jar:1.1.0.2.6.5.0-292]
at 
org.apache.storm.disruptor$consume_batch_when_available.invoke(disruptor.clj:73)
 [storm-core-1.1.0.2.6.5.0-292.jar:1.1.0.2.6.5.0-292]
at 
org.apache.storm.daemon.executor$fn__10252$fn__10265$fn__10320.invoke(executor.clj:855)
 [storm-core-1.1.0.2.6.5.0-292.jar:1.1.0.2.6.5.0-292]
at org.apache.storm.util$async_loop$fn__553.invoke(util.clj:484) 
[storm-core-1.1.0.2.6.5.0-292.jar:1.1.0.2.6.5.0-292]
at clojure.lang.AFn.run(AFn.java:22) [clojure-1.7.0.jar:?]
at java.lang.Thread.run(Thread.java:745) [?:1.8.0_112]
{code}
 

 

> Unable to Execute Stellar Functions Against HBase in the REPL
> -------------------------------------------------------------
>
>                 Key: METRON-2012
>                 URL: https://issues.apache.org/jira/browse/METRON-2012
>             Project: Metron
>          Issue Type: Bug
>            Reporter: Nick Allen
>            Assignee: Nick Allen
>            Priority: Major
>          Time Spent: 1.5h
>  Remaining Estimate: 0h
>
> When running any functions that attempt to access HBase from the REPL, an 
> IllegalAccessError exception is thrown. This can be replicated with Stellar 
> functions like ENRICHMENT_GET and PROFILE_GET that attempt to read from HBase.
> To replicate, start the Stellar REPL with HBase and Zookeeper running and 
> accessible.
> {code:java}
> [root@node1 ~]# source /etc/default/metron
> [root@node1 ~]# cd $METRON_HOME
> [root@node1 0.7.1]# bin/stellar -z $ZOOKEEPER
> SLF4J: Class path contains multiple SLF4J bindings.
> SLF4J: Found binding in 
> [jar:file:/usr/metron/0.7.1/lib/metron-profiler-repl-0.7.1.jar!/org/slf4j/impl/StaticLoggerBinder.class]
> SLF4J: Found binding in 
> [jar:file:/usr/hdp/2.6.5.0-292/hadoop/lib/slf4j-log4j12-1.7.10.jar!/org/slf4j/impl/StaticLoggerBinder.class]
> SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an 
> explanation.
> SLF4J: Actual binding is of type [org.slf4j.impl.Log4jLoggerFactory]
> Stellar, Go!
> Functions are loading lazily in the background and will be unavailable until 
> loaded fully.
> {es.clustername=metron, es.ip=node1:9200, es.date.format=yyyy.MM.dd.HH, 
> parser.error.topic=indexing, update.hbase.table=metron_update, 
> update.hbase.cf=t, es.client.settings={}, profiler.client.period.duration=15, 
> profiler.client.period.duration.units=MINUTES, 
> user.settings.hbase.table=user_settings, user.settings.hbase.cf=cf, 
> bootstrap.servers=node1:6667, source.type.field=source:type, 
> threat.triage.score.field=threat:triage:score, 
> enrichment.writer.batchSize=15, enrichment.writer.batchTimeout=0, 
> profiler.writer.batchSize=15, profiler.writer.batchTimeout=0, 
> geo.hdfs.file=/apps/metron/geo/default/GeoLite2-City.tar.gz, 
> asn.hdfs.file=/apps/metron/asn/default/GeoLite2-ASN.tar.gz}
> {code}
> {code:java}
> [Stellar]>>> ENRICHMENT_GET("example","192.168.1.1","example","E")
> 2019-01-30 08:51:31 ERROR SimpleHBaseEnrichmentFunctions:251 - Unable to call 
> exists: java.lang.IllegalAccessError: tried to access method 
> com.google.common.base.Stopwatch.<init>()V from class 
> org.apache.hadoop.hbase.zookeeper.MetaTableLocator
> org.apache.hadoop.hbase.DoNotRetryIOException: java.lang.IllegalAccessError: 
> tried to access method com.google.common.base.Stopwatch.<init>()V from class 
> org.apache.hadoop.hbase.zookeeper.MetaTableLocator
>  at 
> org.apache.hadoop.hbase.client.RpcRetryingCaller.translateException(RpcRetryingCaller.java:229)
>  at 
> org.apache.hadoop.hbase.client.RpcRetryingCaller.callWithRetries(RpcRetryingCaller.java:140)
>  at org.apache.hadoop.hbase.client.HTable.get(HTable.java:879)
>  at org.apache.hadoop.hbase.client.HTable.get(HTable.java:845)
>  at 
> org.apache.metron.enrichment.lookup.EnrichmentLookup$Handler.get(EnrichmentLookup.java:70)
>  at 
> org.apache.metron.enrichment.lookup.EnrichmentLookup$Handler.get(EnrichmentLookup.java:52)
>  at org.apache.metron.enrichment.lookup.Lookup.get(Lookup.java:68)
>  at 
> org.apache.metron.enrichment.stellar.SimpleHBaseEnrichmentFunctions$EnrichmentGet.apply(SimpleHBaseEnrichmentFunctions.java:245)
>  at 
> org.apache.metron.stellar.common.StellarCompiler.lambda$exitTransformationFunc$13(StellarCompiler.java:664)
>  at 
> org.apache.metron.stellar.common.StellarCompiler$Expression.apply(StellarCompiler.java:259)
>  at 
> org.apache.metron.stellar.common.BaseStellarProcessor.parse(BaseStellarProcessor.java:151)
>  at 
> org.apache.metron.stellar.common.shell.DefaultStellarShellExecutor.executeStellar(DefaultStellarShellExecutor.java:407)
>  at 
> org.apache.metron.stellar.common.shell.DefaultStellarShellExecutor.execute(DefaultStellarShellExecutor.java:257)
>  at 
> org.apache.metron.stellar.common.shell.cli.StellarShell.execute(StellarShell.java:359)
>  at org.jboss.aesh.console.AeshProcess.run(AeshProcess.java:53)
>  at 
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
>  at 
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
>  at java.lang.Thread.run(Thread.java:748)
> Caused by: java.lang.IllegalAccessError: tried to access method 
> com.google.common.base.Stopwatch.<init>()V from class 
> org.apache.hadoop.hbase.zookeeper.MetaTableLocator
>  at 
> org.apache.hadoop.hbase.zookeeper.MetaTableLocator.blockUntilAvailable(MetaTableLocator.java:596)
>  at 
> org.apache.hadoop.hbase.zookeeper.MetaTableLocator.blockUntilAvailable(MetaTableLocator.java:580)
>  at 
> org.apache.hadoop.hbase.zookeeper.MetaTableLocator.blockUntilAvailable(MetaTableLocator.java:559)
>  at 
> org.apache.hadoop.hbase.client.ZooKeeperRegistry.getMetaRegionLocation(ZooKeeperRegistry.java:61)
>  at 
> org.apache.hadoop.hbase.client.ConnectionManager$HConnectionImplementation.locateMeta(ConnectionManager.java:1185)
>  at 
> org.apache.hadoop.hbase.client.ConnectionManager$HConnectionImplementation.locateRegion(ConnectionManager.java:1152)
>  at 
> org.apache.hadoop.hbase.client.ConnectionManager$HConnectionImplementation.relocateRegion(ConnectionManager.java:1126)
>  at 
> org.apache.hadoop.hbase.client.ConnectionManager$HConnectionImplementation.locateRegionInMeta(ConnectionManager.java:1331)
>  at 
> org.apache.hadoop.hbase.client.ConnectionManager$HConnectionImplementation.locateRegion(ConnectionManager.java:1155)
>  at 
> org.apache.hadoop.hbase.client.ConnectionManager$HConnectionImplementation.locateRegion(ConnectionManager.java:1139)
>  at 
> org.apache.hadoop.hbase.client.ConnectionManager$HConnectionImplementation.locateRegion(ConnectionManager.java:1096)
>  at 
> org.apache.hadoop.hbase.client.ConnectionManager$HConnectionImplementation.getRegionLocation(ConnectionManager.java:931)
>  at 
> org.apache.hadoop.hbase.client.HRegionLocator.getRegionLocation(HRegionLocator.java:83)
>  at 
> org.apache.hadoop.hbase.client.RegionServerCallable.prepare(RegionServerCallable.java:79)
>  at 
> org.apache.hadoop.hbase.client.RpcRetryingCaller.callWithRetries(RpcRetryingCaller.java:124)
>  ... 16 more
> {}
> {code}
> {code:java}
> [Stellar]>>> PROFILE_GET("hello-world","192.168.1.1",PROFILE_FIXED(30, 
> "DAYS"))
> [!] Unable to parse: 
> PROFILE_GET("hello-world","192.168.1.1",PROFILE_FIXED(30, "DAYS")) due to: 
> tried to access method com.google.common.base.Stopwatch.<init>()V from class 
> org.apache.hadoop.hbase.zookeeper.MetaTableLocator
> org.apache.metron.stellar.dsl.ParseException: Unable to parse: 
> PROFILE_GET("hello-world","192.168.1.1",PROFILE_FIXED(30, "DAYS")) due to: 
> tried to access method com.google.common.base.Stopwatch.<init>()V from class 
> org.apache.hadoop.hbase.zookeeper.MetaTableLocator
>  at 
> org.apache.metron.stellar.common.BaseStellarProcessor.createException(BaseStellarProcessor.java:166)
>  at 
> org.apache.metron.stellar.common.BaseStellarProcessor.parse(BaseStellarProcessor.java:154)
>  at 
> org.apache.metron.stellar.common.shell.DefaultStellarShellExecutor.executeStellar(DefaultStellarShellExecutor.java:407)
>  at 
> org.apache.metron.stellar.common.shell.DefaultStellarShellExecutor.execute(DefaultStellarShellExecutor.java:257)
>  at 
> org.apache.metron.stellar.common.shell.cli.StellarShell.execute(StellarShell.java:359)
>  at org.jboss.aesh.console.AeshProcess.run(AeshProcess.java:53)
>  at 
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
>  at 
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
>  at java.lang.Thread.run(Thread.java:748)
> Caused by: java.lang.IllegalAccessError: tried to access method 
> com.google.common.base.Stopwatch.<init>()V from class 
> org.apache.hadoop.hbase.zookeeper.MetaTableLocator
>  at 
> org.apache.hadoop.hbase.zookeeper.MetaTableLocator.blockUntilAvailable(MetaTableLocator.java:596)
>  at 
> org.apache.hadoop.hbase.zookeeper.MetaTableLocator.blockUntilAvailable(MetaTableLocator.java:580)
>  at 
> org.apache.hadoop.hbase.zookeeper.MetaTableLocator.blockUntilAvailable(MetaTableLocator.java:559)
>  at 
> org.apache.hadoop.hbase.client.ZooKeeperRegistry.getMetaRegionLocation(ZooKeeperRegistry.java:61)
>  at 
> org.apache.hadoop.hbase.client.ConnectionManager$HConnectionImplementation.locateMeta(ConnectionManager.java:1185)
>  at 
> org.apache.hadoop.hbase.client.ConnectionManager$HConnectionImplementation.locateRegion(ConnectionManager.java:1152)
>  at 
> org.apache.hadoop.hbase.client.ConnectionManager$HConnectionImplementation.relocateRegion(ConnectionManager.java:1126)
>  at 
> org.apache.hadoop.hbase.client.ConnectionManager$HConnectionImplementation.locateRegionInMeta(ConnectionManager.java:1331)
>  at 
> org.apache.hadoop.hbase.client.ConnectionManager$HConnectionImplementation.locateRegion(ConnectionManager.java:1155)
>  at 
> org.apache.hadoop.hbase.client.AsyncProcess$AsyncRequestFutureImpl.findAllLocationsOrFail(AsyncProcess.java:940)
>  at 
> org.apache.hadoop.hbase.client.AsyncProcess$AsyncRequestFutureImpl.groupAndSendMultiAction(AsyncProcess.java:857)
>  at 
> org.apache.hadoop.hbase.client.AsyncProcess$AsyncRequestFutureImpl.access$100(AsyncProcess.java:575)
>  at 
> org.apache.hadoop.hbase.client.AsyncProcess.submitAll(AsyncProcess.java:557)
>  at org.apache.hadoop.hbase.client.HTable.batch(HTable.java:923)
>  at org.apache.hadoop.hbase.client.HTable.batch(HTable.java:940)
>  at org.apache.hadoop.hbase.client.HTable.get(HTable.java:901)
>  at 
> org.apache.metron.profiler.client.HBaseProfilerClient.doFetch(HBaseProfilerClient.java:138)
>  at 
> org.apache.metron.profiler.client.HBaseProfilerClient.fetch(HBaseProfilerClient.java:120)
>  at 
> org.apache.metron.profiler.client.stellar.GetProfile.apply(GetProfile.java:182)
>  at 
> org.apache.metron.stellar.common.StellarCompiler.lambda$exitTransformationFunc$13(StellarCompiler.java:664)
>  at 
> org.apache.metron.stellar.common.StellarCompiler$Expression.apply(StellarCompiler.java:259)
>  at 
> org.apache.metron.stellar.common.BaseStellarProcessor.parse(BaseStellarProcessor.java:151)
>  ... 7 more
> {code}
>  
>  



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to