I should implement a trident transactional topology. I find out that I can use kafka as spout to make my topology transactional. I find https://github.com/nathanmarz/storm-contrib/tree/master/storm-kafka it's a kafka spout for storm but it's not transactional. Also I find https://github.com/nathanmarz/storm/blob/master/storm-core/src/jvm/storm/trident/spout/IOpaquePartitionedTridentSpout.java it's a trident kafka transactional spout. But I don't have maven source for it and there is no instruction for using it. There is only instruction for using kafka storm spout. Also I need an instruction for implementing partitioned kafka. If you had an experience in implementing transactional topology, please help me! Thank you!
Trident kafka transactional spout
2.2k Views Asked by Vladimir At
1
There are 1 best solutions below
Related Questions in MAVEN
- Auto reload with play2
- maven pom.xml dependencies order vs classpath/build path order
- How to ignore or fix the duplicate classes warning?
- Scala Eclipse IDE compiler giving errors until "clean" is run
- How to run multiple "mvn test"-commands from batch file?
- Not able to send email in java using SMTP,its blocked by firewall in my office.Is there any other method by which we can send mail?
- javaCV Maven project
- Logging error when executing Maven SonarQube plugin
- Gradle: Override transitive dependency by version classifier
- Why we need maven if there's javac that compiles the code?
- jar file input == null while java app is working
- JPA and web app
- Test Selector Plugin Jenkins returns No tests were executed
- Eclipse OSGI unsatisfied constraint
- GlassFish 4.0 CDI deployment failure + Apache Spark
Related Questions in TRANSACTIONS
- C# MySQL Transaction commit
- Multiple transaction managers - Selecting a one at runtime - Spring
- Django transactions: managing two different transactions atomically inside the overriding of save() method
- How can I add FOR UPDATE to a cakephp3 query?
- Why my mysql transaction is not working properly?
- Multiple Hibernate transactions in a JTA session
- Using transaction in Ruby On Rails controller method
- Google Analytics duplicate transaction id multiple domains
- How to limit dynamic queries to only accept select statements?
- combining rollback in two action rails 4
- Symfony2: transactions fail with "There is no active transaction."
- Can RPUSH and LPUSH in Redis race?
- PHP rollback on IBMi db2 doesn't work
- Error in OleDbTransaction
- Wildfly - Infinispan Transactions configuration
Related Questions in APACHE-STORM
- How can I serialize a numpy array while preserving matrix dimensions?
- Logging from a storm bolt - where is it going?
- Storm Word Count Topology - Concept issue with number of executions
- Supervisor node will not connect to storm cluster
- Storm [ERROR] Async loop died
- How to export data from Cassandra to mongodb?
- Why is my streamparse topology definition complaining about a wrong number of arguments to thrift$mk-topology?
- storm caching in topology level available for all bolts
- java.lang.RuntimeException : no viable alternative at input '<EOF>'
- storm supervisor exits when processing event
- apache storm into node js
- Passing cmd line params to storm subprocesses
- storm-starter with intellij idea,maven project could not find class
- storm + kafka: understanding ack, fail and latency
- storm topology: one to many (random)
Related Questions in TRANSACTIONAL
- @Transactional with xml-defined bean not working. (OSGi)
- The previous persisted data always being overlapped after the new persisting
- Transaction Interceptor CDI JPA JavaSE
- Annotation @Transactional does not working
- How to write transactional spout for storm trident
- Exception - createQuery is not valid without active transaction
- Dependent rollback among different DAO implementation
- JOOQ: Is a single statement implicitly transactional, or do I still have to wrap it in a transactional block?
- Spring Data Redis - @Transactional support on Repository
- Why my spring @Transactional with REQUIRED can't rollback?
- Grails GORM locks table when updating a DB table
- JavaFX + Spring (JDBC & @SpringBootApplication & @Autowired & @Transactional)
- Spring @Transactional(isolation=Isolation.READ_UNCOMMITTED) vs Spring Data @Lock(LockModeType.None)
- Spring boot @Transactional doesn't work
- spring transactional nested open session?
Related Questions in TRIDENT
- How to write transactional spout for storm trident
- Does Storm Trident newValueStream after persistentAggregate maintain partition from groupBy
- How to get previous state before counter update
- Why does the locaton of my animated circles flicker?
- issue on implementing transactional topology in trident
- Debugging JavaScript in Trident-based app
- DRPC Server error in storm
- KafkaTridentSpoutOpaque Repeated consumption the last message
- Should i use Trident to compute the global mean of tuples in Storm?
- Storm Trident Window Join
- Storm Trident State Query While Update
- Total number of non repeated words in each tweet
- Trident kafka transactional spout
- How to create serial TridentState bolts using partitionpersist in Apache Storm?
- I don't understand what's mean that should use trident if the message process must only once
Trending Questions
- UIImageView Frame Doesn't Reflect Constraints
- Is it possible to use adb commands to click on a view by finding its ID?
- How to create a new web character symbol recognizable by html/javascript?
- Why isn't my CSS3 animation smooth in Google Chrome (but very smooth on other browsers)?
- Heap Gives Page Fault
- Connect ffmpeg to Visual Studio 2008
- Both Object- and ValueAnimator jumps when Duration is set above API LvL 24
- How to avoid default initialization of objects in std::vector?
- second argument of the command line arguments in a format other than char** argv or char* argv[]
- How to improve efficiency of algorithm which generates next lexicographic permutation?
- Navigating to the another actvity app getting crash in android
- How to read the particular message format in android and store in sqlite database?
- Resetting inventory status after order is cancelled
- Efficiently compute powers of X in SSE/AVX
- Insert into an external database using ajax and php : POST 500 (Internal Server Error)
Popular Questions
- How do I undo the most recent local commits in Git?
- How can I remove a specific item from an array in JavaScript?
- How do I delete a Git branch locally and remotely?
- Find all files containing a specific text (string) on Linux?
- How do I revert a Git repository to a previous commit?
- How do I create an HTML button that acts like a link?
- How do I check out a remote Git branch?
- How do I force "git pull" to overwrite local files?
- How do I list all files of a directory?
- How to check whether a string contains a substring in JavaScript?
- How do I redirect to another webpage?
- How can I iterate over rows in a Pandas DataFrame?
- How do I convert a String to an int in Java?
- Does Python have a string 'contains' substring method?
- How do I check if a string contains a specific word?
have you looked at this Kafka Spout ?
The transactional spout is not sufficient to guarantee that your topology is transactional. The OpaqueTridentKafkaSpout implements the following properties:
But if you attempt to persist some computations then you have to implement a Transactional State so that updates on your database are performed exactly-once for each batch of tuples
To achieve exactly-once processing you have to persist batch transaction ids and previous update values for your computations.
Let's consider the example from the documentation:
You are processing the following batch of tuples : ["man"] ["man"] ["dog"] associated with the transaction id "3"
Then in your database you currently hold some word counters as key/value pairs :
man => [count=3, txid=1]; dog => [count=4, txid=3] ; apple => [count=10, txid=2]
Since the txid associated with key "dog" is the same that the current processing transaction you can skip this update. The tuple "dog" has already been updated for this transaction. But it's not the case of the others tuples. After updating you database look like this :
man => [count=5, txid=3]; dog => [count=4, txid=3]; apple => [count=10, txid=2]
By this way, Trident is able to compare transaction ids and previous values to decide if the update must be performed.
Have a look at Map State!
Basically a transactional topology is composed by both a transactional spout and a transactional state.
You can find more information about trident state on this page : http://storm.incubator.apache.org/documentation/Trident-state
I hope this will help you.