HSDS is a web service that implements a REST-based web service for HDF5 data stores. HSDS can run with Docker, Kubernetes, or directly on the host. HSDS storage options include AWS S3 (or any S3 API compatible offerings), Azure Blob Storate, or Posix file systems More info at: https://www.hdfgroup.org/solutions/highly-scalable-data-service-hsds/.
Note: this install uses http (rather than https) and default username/passwords. Not for use as a production service.
Export environment variables as shown in "Sample .bashrc" below.
127.0.0.1 hsds.hdf.test (can use any valid DNS name) if you running containers directly on the host, or 192.168.99.100 hsds.hdf.test if using docker machine (use docker-machine ip to get the IP address)docker-compose up -d --scale sn=${CORES} --scale dn=${CORES} where CORES is the number of containers desired (defaults to 1)$ docker ps and verify that the containers are running: hsds_head, hsds_async, hsds_sn_[1-n], hsds_dn_[1-n]$ pip install h5pyd$ hsconfigure. Set hs endpoint with DNS name (e.g. http://hsds.hdf.test) and admin username/password (admin/admin). Ignore API Key.$ hsinfo. Server state should be "READY". Ignore the "Not Found" error for the admin home folder$ hstouch /home/. Note: trailing slash is important!$ hstouch -o test_user1 /home/test_user1/$ python testall.py --skip_unitUsing the following procedure to import test files into hsds
$ pip install h5py$ pip install h5pyd$ wget https://s3.amazonaws.com/hdfgroup/data/hdf5test/tall.h5$ hstouch -u test_user1 -p test /home/test_user1/test/$ hsload -v -u test_user1 -p test tall.h5 /home/test_user1/test/These environment variables will be passed to the Docker containers on start up.
export AWS_ACCESS_KEY_ID=1234567890 # user your AWS account access key if using S3 (Not needed if running on EC2 and AWS_IAM_ROLE is defined)
export AWS_SECRET_ACCESS_KEY=ABCDEFGHIJKL # use your AWS account access secret key if using S3 (Not needed if running on EC2 and AWS_IAM_ROLE is defined)
export BUCKET_NAME=hsds.test # set to the name of the bucket you will be using
export AWS_REGION=us-east-1 # for boto compatibility - for S3 set to the region the bucket is in
export AWS_S3_GATEWAY=http://s3.amazonaws.com # Use AWS endpoint for region where bucket is
export HSDS_ENDPOINT=http://hsds.hdf.test # use https protocal if SSL is desired
# For S3, set AWS_S3_GATEWAY to endpoint for the region the bucket is in. E.g.: http://s3.amazonaws.com.
# See http://docs.aws.amazon.com/general/latest/gr/rande.html#s3_region for list of endpoints.
As a REST service, clients be developed using almost any programming language. The test programs under: h5serv/test/integ illustrate some of the methods for performing different operations using Python.
The related project: https://github.com/HDFGroup/h5pyd provides a (mostly) h5py-compatible interface to the server for Python clients.
For C/C++ clients, the HDF REST VOL is a HDF5 library plugin that enables the HDF5 API to read and write data using HSDS. See: https://bitbucket.hdfgroup.org/users/jhenderson/repos/rest-vol/browse.
HSDS only modifies the S3 bucket that it is configured to use, so to uninstall just remove source files, Docker images, and S3 bucket.
Create new issues at http://github.com/HDFGroup/hsds/issues for any problems you find.
For general questions/feedback, please use the HSDS forum: https://forum.hdfgroup.org/hsds.
HSDS is licensed under an APACHE 2.0 license. See LICENSE in this directory.
The HDF Group provides access to an HSDS instance that is integrated with JupyterLab: HDF Lab. HDF Lab is a hosted Jupyter environment with these features:
Sign up for HDF Lab here: https://www.hdfgroup.org/hdfkitalab/.
Content type
Image
Digest
sha256:96601dc1c…
Size
563.6 MB
Last updated
about 1 year ago
docker pull hdfgroup/hsds