Xuanwo opened a new issue, #1130:
URL: https://github.com/apache/iceberg-rust/issues/1130

   There are several ways to access HDFS in remote areas:
   
   - libhdfs + JNI: needs java runtime and libhdfs
   - WebHDFS: http based, may have performance issues
   - [HDFS Native](https://github.com/Kimahriman/hdfs-native): rust native but 
not well adopted.
   
   OpenDAL supports all these methods. However, from Iceberg's perspective, 
it's better to expose a single `hdfs` storage option and allow users to choose 
the method via feature flags to avoid confusion. This is because we write 
service names in our metadata files, and all implementations must be able to 
read `hdfs://host:port/files`.
   
   So my current plan is to introduce `webhdfs` and `hdfs_native` support in 
iceberg-rust. They will hide under `storage-webhdfs` and `storage-hdfs-native` 
flag:
   
   Users can choose which implementations to use:
   
   ```rust
   fn parse_scheme(scheme: &str) -> crate::Result<Scheme> {
       match scheme {
           "memory" => Ok(Scheme::Memory),
           "file" | "" => Ok(Scheme::Fs),
           "s3" | "s3a" => Ok(Scheme::S3),
           "gs" | "gcs" => Ok(Scheme::Gcs),
           #[cfg(feature = "storage-webhdfs")]
           "hdfs" => Ok(Scheme::Webhdfs),
           #[cfg(feature = "storage-hdfs-native")]
           "hdfs" => Ok(Scheme::HdfsNative),
           s => Ok(s.parse::<Scheme>()?),
       }
   }
   ```


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: issues-unsubscr...@iceberg.apache.org.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscr...@iceberg.apache.org
For additional commands, e-mail: issues-h...@iceberg.apache.org

Reply via email to