Skip to content
METRIC OAK

New: the 3-week Data Platform Assessment: fixed fee, priced roadmap. See what's included →

Migration

Hadoop to Databricks migration: moving HDFS, Hive, Spark and Oozie

How to migrate a Hadoop (Cloudera or Hortonworks) estate to Databricks: HDFS to cloud storage, Hive tables to Delta, Hive metastore and Ranger to Unity Catalog, Spark and Oozie jobs to Lakeflow Jobs.

Hemant Walchale

Hemant Walchale
· 3 min read

Many Hadoop clusters, Cloudera and Hortonworks alike, now run on hardware past its prime, with a shrinking pool of people who know how to keep them alive. Databricks is a natural destination because it runs Apache Spark, which many Hadoop jobs already use. The migration is less about rewriting and more about storage, metadata, security and scheduling.

This is the approach we recommend.

1. Inventory the cluster

List HDFS directories and sizes, Hive databases and tables (with format and partitioning), Spark, MapReduce, Pig and Hive jobs, Oozie workflows and coordinators, Sqoop imports, Ranger or Sentry policies, and the consumers of each dataset. Cluster audit logs show what is actually read. Old HDFS data that nobody reads can go to cheap archive storage instead of the lakehouse.

2. Map each Hadoop component

Hadoop On Databricks
HDFS Cloud object storage (S3, ADLS or GCS)
Hive tables (Parquet, ORC, text) Delta tables; CONVERT TO DELTA for Parquet
Hive metastore Unity Catalog (the Databricks Labs UCX tool helps with the upgrade)
Ranger or Sentry policies Unity Catalog grants, row filters and column masks
Hive SQL, Impala queries Spark SQL and Databricks SQL warehouses
Spark jobs Spark jobs on Databricks, with updated paths and libraries
MapReduce, Pig Rewritten in Spark SQL or PySpark
Oozie workflows and coordinators Lakeflow Jobs with schedules and file-arrival triggers
Sqoop imports Lakeflow Connect, JDBC reads or change data capture
HBase Delta tables for analytics, or an operational database
Kafka Keeps running; read with Structured Streaming or Lakeflow Declarative Pipelines

3. Move data in waves

Copy data with distcp or a cloud transfer service, starting with the datasets behind one business domain. Convert to Delta, register in Unity Catalog, and re-create permissions there. Partitioning schemes designed for HDFS (many small partitions) are often worth simplifying: Delta handles file sizes and statistics better than Hive did.

4. Port jobs and schedules

Update Spark jobs for cloud paths and the target runtime, rewrite MapReduce and Pig, and rebuild Oozie workflows as Lakeflow Jobs. Use job compute (not shared all-purpose clusters) for scheduled work, which is usually the biggest cost saving after the cluster itself.

5. Reconcile and switch off nodes

Run old and new side by side per domain, compare outputs table by table, and cut over when they match and owners sign off. Decommission cluster capacity as domains move, so savings start before the last wave.

The short version

Inventory the cluster, archive what nobody reads, move data to cloud storage as Delta, put Unity Catalog in place of the Hive metastore and Ranger, port Spark and rewrite MapReduce and Pig, rebuild Oozie as Lakeflow Jobs and shrink the cluster domain by domain.

Browse all migration guides. For a fixed-price plan for your own cluster, see the Data Platform Assessment.

Not sure where your own platform stands? Take the free 3-minute data platform scorecard, or see how we work on Databricks. Unfamiliar terms are explained in the data engineering glossary.

Frequently asked questions

Do existing Spark jobs run on Databricks unchanged?

Usually with small changes. Spark code is portable, but jobs need new paths (cloud storage instead of HDFS), updated libraries for the Databricks Runtime version, and removal of cluster-specific settings. Hive SQL also runs largely unchanged in Spark SQL.

How are Hive tables converted to Delta?

Copy the data to cloud storage, then convert. Parquet tables can be converted in place with CONVERT TO DELTA; other formats are rewritten as Delta. Register the tables in Unity Catalog so permissions and lineage are managed centrally.

What about MapReduce, Pig and HBase?

MapReduce and Pig jobs are rewritten in Spark SQL or PySpark. HBase has no direct equivalent on Databricks; its data usually moves to Delta tables for analytics, or to an operational database if it serves an application.

Have 30 minutes? Get a senior architect’s view of your data platform.

No sales deck. You talk to the engineer who would lead the work.

Book an architecture review