pub struct HdfsObjectStore { /* private fields */ }Expand description
Interface for Hadoop Distributed File System.
Implementations§
Source§impl HdfsObjectStore
impl HdfsObjectStore
Sourcepub fn new(client: Client) -> Self
pub fn new(client: Client) -> Self
Creates a new HdfsObjectStore from an existing hdfs-native Client
use hdfs_native::ClientBuilder;
let client = ClientBuilder::new().with_url("hdfs://127.0.0.1:9000").build().unwrap();
let store = HdfsObjectStore::new(client);Sourcepub fn with_url(url: &str) -> Result<Self>
👎Deprecated since 0.15.0: Use HdfsObjectStoreBuilder instead
pub fn with_url(url: &str) -> Result<Self>
Creates a new HdfsObjectStore using the specified URL
Connect to a NameNode
let store = HdfsObjectStore::with_url("hdfs://127.0.0.1:9000")?;Sourcepub fn with_config(url: &str, config: HashMap<String, String>) -> Result<Self>
👎Deprecated since 0.15.0: Use HdfsObjectStoreBuilder instead
pub fn with_config(url: &str, config: HashMap<String, String>) -> Result<Self>
Creates a new HdfsObjectStore using the specified URL and Hadoop configs.
Connect to a NameService
let config = HashMap::from([
("dfs.ha.namenodes.ns".to_string(), "nn1,nn2".to_string()),
("dfs.namenode.rpc-address.ns.nn1".to_string(), "nn1.example.com:9000".to_string()),
("dfs.namenode.rpc-address.ns.nn2".to_string(), "nn2.example.com:9000".to_string()),
]);
let store = HdfsObjectStore::with_config("hdfs://ns", config)?;Trait Implementations§
Source§impl Clone for HdfsObjectStore
impl Clone for HdfsObjectStore
Source§fn clone(&self) -> HdfsObjectStore
fn clone(&self) -> HdfsObjectStore
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for HdfsObjectStore
impl Debug for HdfsObjectStore
Source§impl Display for HdfsObjectStore
impl Display for HdfsObjectStore
Source§impl From<Client> for HdfsObjectStore
impl From<Client> for HdfsObjectStore
Source§impl ObjectStore for HdfsObjectStore
impl ObjectStore for HdfsObjectStore
Source§fn put_opts<'life0, 'life1, 'async_trait>(
&'life0 self,
location: &'life1 Path,
payload: PutPayload,
opts: PutOptions,
) -> Pin<Box<dyn Future<Output = Result<PutResult>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn put_opts<'life0, 'life1, 'async_trait>(
&'life0 self,
location: &'life1 Path,
payload: PutPayload,
opts: PutOptions,
) -> Pin<Box<dyn Future<Output = Result<PutResult>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Save the provided bytes to the specified location
To make the operation atomic, we write to a temporary file .{filename}.tmp.{i} and rename
on a successful write, where i is an integer that is incremented until a non-existent file
is found.
Source§fn put_multipart_opts<'life0, 'life1, 'async_trait>(
&'life0 self,
location: &'life1 Path,
_opts: PutMultipartOpts,
) -> Pin<Box<dyn Future<Output = Result<Box<dyn MultipartUpload>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn put_multipart_opts<'life0, 'life1, 'async_trait>(
&'life0 self,
location: &'life1 Path,
_opts: PutMultipartOpts,
) -> Pin<Box<dyn Future<Output = Result<Box<dyn MultipartUpload>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Create a multipart writer that writes to a temporary file in a background task, and renames to the final destination on complete.
Source§fn get_opts<'life0, 'life1, 'async_trait>(
&'life0 self,
location: &'life1 Path,
options: GetOptions,
) -> Pin<Box<dyn Future<Output = Result<GetResult>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn get_opts<'life0, 'life1, 'async_trait>(
&'life0 self,
location: &'life1 Path,
options: GetOptions,
) -> Pin<Box<dyn Future<Output = Result<GetResult>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
Reads data for the specified location.
Source§fn delete_stream(
&self,
locations: BoxStream<'static, Result<Path>>,
) -> BoxStream<'static, Result<Path>>
fn delete_stream( &self, locations: BoxStream<'static, Result<Path>>, ) -> BoxStream<'static, Result<Path>>
Delete a stream of objects.
Source§fn list(&self, prefix: Option<&Path>) -> BoxStream<'static, Result<ObjectMeta>>
fn list(&self, prefix: Option<&Path>) -> BoxStream<'static, Result<ObjectMeta>>
List all the objects with the given prefix.
Prefixes are evaluated on a path segment basis, i.e. foo/bar/ is a prefix of foo/bar/x but not of
foo/bar_baz/x.
Note: the order of returned ObjectMeta is not guaranteed
Source§fn list_with_delimiter<'life0, 'life1, 'async_trait>(
&'life0 self,
prefix: Option<&'life1 Path>,
) -> Pin<Box<dyn Future<Output = Result<ListResult>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn list_with_delimiter<'life0, 'life1, 'async_trait>(
&'life0 self,
prefix: Option<&'life1 Path>,
) -> Pin<Box<dyn Future<Output = Result<ListResult>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
List objects with the given prefix and an implementation specific delimiter. Returns common prefixes (directories) in addition to object metadata.
Prefixes are evaluated on a path segment basis, i.e. foo/bar/ is a prefix of foo/bar/x but not of
foo/bar_baz/x.
Source§fn copy_opts<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
from: &'life1 Path,
to: &'life2 Path,
options: CopyOptions,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn copy_opts<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
from: &'life1 Path,
to: &'life2 Path,
options: CopyOptions,
) -> Pin<Box<dyn Future<Output = Result<()>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Copy an object from one path to another with options.