Data platformStacks integrationDatabricks08 — Package Archaeology

08 — Package Archaeology

DBR fork Spark sâu tới mức nào, classpath/jar/module cho thấy runtime boundary ra sao.

Câu hỏi

Databricks Runtime là Spark OSS cộng vài plugin, hay là một fork/runtime bundle sâu hơn nhiều?

Vì sao câu này quan trọng

Nếu DBR chỉ là plugin rời thì có thể hiểu bằng cách học Spark extension points. Nhưng nếu org.apache.spark.*com.databricks.* nằm chung trong core jar, và security/catalog/storage/telemetry đều chạm vào analyzer/runtime/filesystem, thì phải đọc nó như một managed runtime fork.

Breakdown

  • Jar nào chứa Spark core/sql/catalyst/fork classes?
  • com.databricks.* nằm trong jar nào cùng với org.apache.spark.*?
  • Class nào chỉ có ở DBR so với upstream Spark 4.0.0?
  • Package nào correspond với monorepo module nào?
  • driver/preload_class.lst cho biết runtime preload surface nào?
  • Classpath/shadow jar thay behavior gốc ở đâu?

Evidence trong snapshot

  • /Users/chimeyrock/ChimeyRock/databricks/reverse/docs/04-jars-va-monorepo.md
  • /Users/chimeyrock/ChimeyRock/databricks/reverse/docs/06-4-phat-hien-quan-trong.md
  • /Users/chimeyrock/ChimeyRock/databricks/reverse/docs/09-huong-dan-decompile.md
  • driver/preload_class.lst
  • jars/*.jar
  • hadoop-safety-jars/*.jar
  • class→jar SQLite index nếu build theo roadmap

Câu trả lời tạm thời

Snapshot gợi ý DBR không có ranh giới sạch giữa OSS Spark và proprietary plugin. Databricks embed nhiều class và behavior vào chính Spark/SQL/runtime jars, cộng thêm classpath shadowing và dynamic config. Vì vậy nên đọc DBR như một runtime bundle/fork có nhiều control boundary, không phải chỉ là Spark + extension jar.

Còn thiếu / cần verify

  • Cần chạy class-set diff với upstream Spark 4.0.0.
  • Cần module map package → jar → monorepo target để tránh đoán từ tên package.

On this page