public class HdfsClientBlobStore extends ClientBlobStore
Client to access the HDFS blobStore. At this point, this is meant to only be used by the supervisor. Don’t trust who the client says they are so pass null for all Subjects.
The HdfsBlobStore implementation takes care of the null Subjects. It assigns Subjects based on what hadoop says who the users are. These users must be configured accordingly in the SUPERVISOR_ADMINS for ACL validation and for the supervisors to download the blobs. This API is only used by the supervisor in order to talk directly to HDFS.
ClientBlobStore.WithBlobstore
Constructor and Description |
---|
HdfsClientBlobStore() |
Modifier and Type | Method and Description |
---|---|
void |
close() |
AtomicOutputStream |
createBlobToExtend(String key,
SettableBlobMeta meta)
Client facing API to create a blob.
|
void |
createStateInZookeeper(String key)
Creates state inside a zookeeper.
|
void |
deleteBlob(String key)
Client facing API to delete a blob.
|
InputStreamWithMeta |
getBlob(String key)
Client facing API to read a blob.
|
ReadableBlobMeta |
getBlobMeta(String key)
Client facing API to read the metadata information.
|
int |
getBlobReplication(String key)
Client facing API to read the replication of a blob.
|
long |
getRemoteBlobstoreUpdateTime()
Client facing API to get the last update time of existing blobs in a blobstore.
|
boolean |
isRemoteBlobExists(String blobKey)
Decide if the blob is deleted from cluster.
|
Iterator<String> |
listKeys()
List keys.
|
void |
prepare(Map<String,Object> conf)
Sets up the client API by parsing the configs.
|
void |
setBlobMetaToExtend(String key,
SettableBlobMeta meta)
Client facing API to set the metadata for a blob.
|
boolean |
setClient(Map<String,Object> conf,
NimbusClient client)
Client facing API to set a nimbus client.
|
void |
shutdown() |
AtomicOutputStream |
updateBlob(String key)
Client facing API to update a blob.
|
int |
updateBlobReplication(String key,
int replication)
Client facing API to update the replication of a blob.
|
createBlob, setBlobMeta, withConfiguredClient
public void prepare(Map<String,Object> conf)
ClientBlobStore
Sets up the client API by parsing the configs.
prepare
in class ClientBlobStore
conf
- The storm conf containing the config detailspublic AtomicOutputStream createBlobToExtend(String key, SettableBlobMeta meta) throws AuthorizationException, KeyAlreadyExistsException
ClientBlobStore
Client facing API to create a blob.
createBlobToExtend
in class ClientBlobStore
key
- blob key namemeta
- contains ACL informationAuthorizationException
KeyAlreadyExistsException
public AtomicOutputStream updateBlob(String key) throws AuthorizationException, KeyNotFoundException
ClientBlobStore
Client facing API to update a blob.
updateBlob
in class ClientBlobStore
key
- blob key nameAuthorizationException
KeyNotFoundException
public ReadableBlobMeta getBlobMeta(String key) throws AuthorizationException, KeyNotFoundException
ClientBlobStore
Client facing API to read the metadata information.
getBlobMeta
in class ClientBlobStore
key
- blob key nameAuthorizationException
KeyNotFoundException
public boolean isRemoteBlobExists(String blobKey) throws AuthorizationException
ClientBlobStore
Decide if the blob is deleted from cluster.
isRemoteBlobExists
in class ClientBlobStore
blobKey
- blob keyAuthorizationException
public void setBlobMetaToExtend(String key, SettableBlobMeta meta) throws AuthorizationException, KeyNotFoundException
ClientBlobStore
Client facing API to set the metadata for a blob.
setBlobMetaToExtend
in class ClientBlobStore
key
- blob key namemeta
- contains ACL informationAuthorizationException
KeyNotFoundException
public void deleteBlob(String key) throws AuthorizationException, KeyNotFoundException
ClientBlobStore
Client facing API to delete a blob.
deleteBlob
in class ClientBlobStore
key
- blob key nameAuthorizationException
KeyNotFoundException
public InputStreamWithMeta getBlob(String key) throws AuthorizationException, KeyNotFoundException
ClientBlobStore
Client facing API to read a blob.
getBlob
in class ClientBlobStore
key
- blob key nameAuthorizationException
KeyNotFoundException
public Iterator<String> listKeys()
ClientBlobStore
List keys.
listKeys
in class ClientBlobStore
public int getBlobReplication(String key) throws AuthorizationException, KeyNotFoundException
ClientBlobStore
Client facing API to read the replication of a blob.
getBlobReplication
in class ClientBlobStore
key
- blob key nameAuthorizationException
KeyNotFoundException
public int updateBlobReplication(String key, int replication) throws AuthorizationException, KeyNotFoundException
ClientBlobStore
Client facing API to update the replication of a blob.
updateBlobReplication
in class ClientBlobStore
key
- blob key namereplication
- int indicates the replication factor a blob has to be setAuthorizationException
KeyNotFoundException
public boolean setClient(Map<String,Object> conf, NimbusClient client)
ClientBlobStore
Client facing API to set a nimbus client.
setClient
in class ClientBlobStore
conf
- storm confclient
- NimbusClientpublic void createStateInZookeeper(String key)
ClientBlobStore
Creates state inside a zookeeper. Required for blobstore to write to zookeeper when Nimbus HA is turned on in order to maintain state consistency.
createStateInZookeeper
in class ClientBlobStore
public void shutdown()
public void close()
close
in interface AutoCloseable
close
in class ClientBlobStore
public long getRemoteBlobstoreUpdateTime() throws IOException
ClientBlobStore
Client facing API to get the last update time of existing blobs in a blobstore. This is only required for use on supervisors.
getRemoteBlobstoreUpdateTime
in class ClientBlobStore
IOException
Copyright © 2022 The Apache Software Foundation. All rights reserved.