s4
beam
s4 | beam | |
---|---|---|
5 | 30 | |
29 | 7,556 | |
- | 1.4% | |
3.2 | 10.0 | |
3 months ago | 3 days ago | |
Go | Java | |
MIT License | Apache License 2.0 |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
s4
-
Ask HN: Does (or why does) anyone use MapReduce anymore?
the idea of map reduce remains a good one.
there are a number of interesting innovations in streaming systems that followed, mostly around reducing latency, reducing batch size, and alternate failure/retry strategies.
even hadoop could be hard to debug when hitting a performance ceiling for challenging workloads. the streaming systems took this even further, spark being notorious for fiddle with knobs and pray the next job doesn’t fail after a few hours, again.
i played around with the thinnest possible map reduce stack a while back[1][2]. i wanted to understand the performance ceiling for different workloads without all the impenetrable layers of data bureaucracy. turns out modern network and cpu are really fast when you stop adding random software layers like lasagna.
i think the future of data, for serious workloads, is gonna be bespoke. the primitives are just too good now.
1. https://github.com/nathants/s4
2. https://github.com/nathants/bsv
-
How fast are Linux pipes anyway?
pipes are great. is the other process on another cpu or another machine? honestly who cares.
https://github.com/nathants/s4/blob/master/examples/nyc_taxi...
-
Learning Go as a Python Developer: The Good and the Bad
i dragged my feet on go for a long time. i also thought that skipping go and moving to rust was the play. a few years later, i still write python often, but i don’t build systems with it. python i now use like bash, to glue things together and automate random things. it’s a fantastic language and i will never drop it.
the verbosity of go is the biggest hurdle for a pythonista. the thought of giving up context managers, decorators, iterators, comprehensions, exceptions, coroutines, it’s unthinkable. in comparison go is ugly. your aesthetic mind screams in protest.
write go full time. dive in. as months pass, not only will those aesthetic objections fade, your mental model from python cleanly transforms to go. go is what mypy tried to be. the cost was aesthetic changes. the benefit is worth it.
the zen of python says if it’s easy to explain it might be a good idea. this is go, and it is.
i rebuilt a reasonably sized project from python[1] to go[2] over the last few years. i also have a system that i maintained both python[3] and go[4] implementations for, sharing a test suite in python.
go, like python, is fantastic. use both in whatever amount works for you. don’t read about them, build with them. you won’t regret it.
1. https://github.com/nathants/cli-aws/tree/bb78e529e7d1d3f95ac...
2. https://github.com/nathants/libaws
3. https://github.com/nathants/s4/tree/python
4. https://github.com/nathants/s4
- Ask HN: Have you created programs for only your personal use?
- Super Simple Storage Service (S4)
beam
-
Ask HN: Does (or why does) anyone use MapReduce anymore?
The "streaming systems" book answers your question and more: https://www.oreilly.com/library/view/streaming-systems/97814.... It gives you a history of how batch processing started with MapReduce, and how attempts at scaling by moving towards streaming systems gave us all the subsequent frameworks (Spark, Beam, etc.).
As for the framework called MapReduce, it isn't used much, but its descendant https://beam.apache.org very much is. Nowadays people often use "map reduce" as a shorthand for whatever batch processing system they're building on top of.
-
beam VS quix-streams - a user suggested alternative
2 projects | 7 Dec 2023
-
How do Streaming Aggregation Pipelines work?
Apache Beam is one of many tools that you can use
-
Releasing Temporian, a Python library for processing temporal data, built together with Google
Flexible runtime ☁️: Temporian programs can run seamlessly in-process in Python, on large datasets using Apache Beam.
-
Kafka cluster loses or duplicates messages
To perform the tests I'm using a Kafka cluster on Kubernetes from the Beam repo (here).
- Apache Beam
-
Real Time Data Infra Stack
Apache Beam: Streaming framework which can be run on several runner such as Apache Flink and GCP Dataflow
-
Google Cloud Reference
Apache Beam: Batch/streaming data processing 🔗Link
-
Composer out of resources - "INFO Task exited with return code Negsignal.SIGKILL"
What you are looking for is Dataflow. It can be a bit tricky to wrap your head around at first, but I highly suggest leaning into this technology for most of your data engineering needs. It's based on the open source Apache Beam framework that originated at Google. We use an internal version of this system at Google for virtually all of our pipeline tasks, from a few GB, to Exabyte scale systems -- it can do it all.
-
Pub/Sub parallel processing best practices
That being said, there is a learning curve in understanding how Apache Beam works. Take a look at the beam website for more information.
What are some alternatives?
epanet-js - Model a water distribution network in JavaScript using the OWA-EPANET engine
Apache Arrow - Apache Arrow is a multi-language toolbox for accelerated data interchange and in-memory processing
fastmod - A fast partial replacement for the codemod tool
Apache Hadoop - Apache Hadoop
Hasura - Blazing fast, instant realtime GraphQL APIs on your DB with fine grained access control, also trigger webhooks on database events.
Scio - A Scala API for Apache Beam and Google Cloud Dataflow.
wsl-ssh-pageant - A Pageant -> TCP bridge for use with WSL, allowing for Pageant to be used as an ssh-ageant within the WSL environment.
Apache Spark - Apache Spark - A unified analytics engine for large-scale data processing
ppp_thing - A poorly written, minimum viable PPPoE client with session handoff between redundant FreeBSD routers
Airflow - Apache Airflow - A platform to programmatically author, schedule, and monitor workflows
hnrss - Custom, realtime RSS feeds for Hacker News
Apache Hive - Apache Hive