We are happy to announce Cascading 3.1 is now publicly available for download.
Version 3.1 improves the performance of Cascading over 3.0, resolves a number of issues during planning of complex workloads when running on MapReduce and Apache Tez, and further delivers on the promise of new platform portability with the addition of Apache Flink as an execution platform.
As of version 3.1, Cascading can further leverage declared type information during serialization of data across the ‘shuffle’ (partitioning phase) between map and reduce tasks or Tez vertices. For many applications, performing ETL or data cleansing type workloads, having flexible type support within a column can dramatically improve reliability by having operation request values as the types they require (a string or an integer). When integrating complex data sets, a given column or field may not be consistent across data sets, so requiring a common type instead of a means to lazily convert value on demand can be difficult to rely on in practice. But for applications and systems that are consistent, declaring types not only enforce consistency (or prevent inconsistency), the type information is now used to improve serialization IO efficiency.
In addition to leveraging additional type information, applications consuming data from directory partitioned data sets (data stored by date or other values) can be pre-filtered using a new filtering mechanism introduced in 3.1. For example, if a data set spans 10 years and is partitioned by year, and month, a filter can be used to prevent a Cascading application from reading files that are not within the expected time range during runtime by excluding partitions (directories) that do not match the filter. This simple enhancement allows applications to have greater performance without impacting the maintainability of large complex applications.
We are also very happy to remind users of the availability of Cascading on Apache Flink, with the release of 3.1.0, the Cascading Connector on Flink can be run against a stable Cascading release. For more information, see this Apache Conference presentation Faster Workflows.
Please note this is a minor release retaining API compatibility with Cascading 3.0 public methods.
As we continue to advance the code base, a number of other enhancements and bug fixes are included in the release. For the complete list of changes in Cascading 3.1, please see the change log.
Thanks to our partners, data Artisans, Cascading users now have an additional compute fabric to execute Cascading 3.0 applications on, Apache Flink.
From the project site..
“Apache Flink is a platform for scalable stream and batch processing. Flink’s execution engine features low-latency pipelined and scalable batched data transfers and high-performance, in-memory operators for sorting and joining that gracefully go out-of-core in case of scarce memory resources.
Apache Flink uses in-memory storage to achieve massive performance gains over MapReduce. It’s active memory management and custom serialization stack enables highly efficient operations on binary data and effectively prevents JVM OutOfMemoryErrors as well as frequent Garbage Collection pauses. Memory-safe execution means very little parameter tuning is necessary to reliably execute Cascading programs on Flink.”
According to data Artisans, with virtually no code changes, Cascading 3.0 applications will run in Apache Flink, furthering the portability promise of Cascading through their contribution.
We are very excited to see another alternative for high performance production deployments made available to our community.
Link to Source code: http://cascading.org/cascading-flink/
Data Artisans blog: http://data-artisans.com/announcing-cascading-on-flink/
We have just published Cascading 2.7.1, a minor maintenance release.
This release resolves the following issues:
We have just published a new maintenance release 3.0.1 of Cascading.
This release resolves the following issue:
– Fixed issue in c.f.t.p.Hadoop2TezFlowStepJob where the LocalResources were not passed to the AppMaster correctly causing ClassNotFoundException during split calculation for custom InputFormats.
It can be downloaded from these locations:
We are happy to announce the release of Cascading-Hive 2.0. This release adds compatibility with Cascading 3.0. Furthermore it contains a major contribution from the Cascading community, namely hotels.com: It is now possible to read and write ACID ORC tables with Cascading-Hive. This feature relies on corc, an ORC integration for Cascading, also created by hotels.com. The demo directory contains a new application demonstrating this new feature.
The jars are deployed on conjars and the code is available on github.
Cascading-Hive allows you to read and write Hive tables from within Cascading Flows as well as running any HiveQL query as part of a Cascade.
We are happy to announce Cascading 3.0 is now publicly available for download.
The biggest change in this version, compared to previous releases, is Cascading has added native support for Apache Tez along side Apache Hadoop MapReduce and Cascading’s native local in memory mode. It is now trivial (a matter of changing a few lines of code) to move your application to run on Tez instead of MapReduce. We’ve seen others run performance tests with Scalding and Tez and are reporting significant performance improvements.
This milestone release of Cascading with Apache Tez support means we’ve completed the work to the query planner to make it faster for us and the community to integrate Cascading with other compute fabrics, as they become available. We hope to announce additional platform support in the near future.
Along with the ease of adding new platforms, the new query planner should also show some improvements over Cascading 2.x execution times on MapReduce. Additionally, we’ve given the developer direct control over how they optimize their MapReduce and Tez jobs perform so you can tune performance to your specific needs.
Please note this is a major release, thus all deprecated methods have been removed, along with some incompatible API changes to the Cascading public API, you will need to edit and recompile in order to upgrade to 3.0.
As we continue to advance the code base, a number of other enhancements and bug fixes are included in the release. For the complete list of changes in Cascading 3.0, please see the change log.