A tool to mount HDFS as a local Linux file system
Перейти к файлу
Vladimir Ivanov f6a0b31322 Added -lazy flag for lazy mounts and implemented automatic retries inside HdfsAccessor 2015-11-13 16:53:51 -08:00
.gitignore Implemented translation of HDFS owner name to user ID with caching 2015-11-13 16:53:50 -08:00
Attrs.go Implemented expiration of cached metadata/attributes 2015-11-13 16:53:50 -08:00
Clock.go Implemented expiration of cached metadata/attributes 2015-11-13 16:53:50 -08:00
Clock_test.go Exponential backoff on retry 2015-11-13 16:53:51 -08:00
Dir.go Implemented expiration of cached metadata/attributes 2015-11-13 16:53:50 -08:00
Dir_test.go Implemented expiration of cached metadata/attributes 2015-11-13 16:53:50 -08:00
File.go Implemented expiration of cached metadata/attributes 2015-11-13 16:53:50 -08:00
FileFragment.go Initial implementation for basic R/O scenarios + build and test harness 2015-11-13 16:53:29 -08:00
FileHandle.go Initial implementation for basic R/O scenarios + build and test harness 2015-11-13 16:53:29 -08:00
FileHandleReader.go Initial implementation for basic R/O scenarios + build and test harness 2015-11-13 16:53:29 -08:00
FileHandleReader_test.go Implemented expiration of cached metadata/attributes 2015-11-13 16:53:50 -08:00
FileSystem.go Implemented expiration of cached metadata/attributes 2015-11-13 16:53:50 -08:00
HdfsAccessor.go Added -lazy flag for lazy mounts and implemented automatic retries inside HdfsAccessor 2015-11-13 16:53:51 -08:00
HdfsReader.go Initial implementation for basic R/O scenarios + build and test harness 2015-11-13 16:53:29 -08:00
HdfsWriter.go Initial implementation for basic R/O scenarios + build and test harness 2015-11-13 16:53:29 -08:00
Int32Min.go Initial implementation for basic R/O scenarios + build and test harness 2015-11-13 16:53:29 -08:00
LICENSE Initial implementation for basic R/O scenarios + build and test harness 2015-11-13 16:53:29 -08:00
Makefile Implemented translation of HDFS owner name to user ID with caching 2015-11-13 16:53:50 -08:00
README.md Initial implementation for basic R/O scenarios + build and test harness 2015-11-13 16:53:29 -08:00
RetryPolicy.go Exponential backoff on retry 2015-11-13 16:53:51 -08:00
RetryPolicy_test.go Exponential backoff on retry 2015-11-13 16:53:51 -08:00
main.go Added -lazy flag for lazy mounts and implemented automatic retries inside HdfsAccessor 2015-11-13 16:53:51 -08:00

README.md

hdfs-mount

Allows to mount remote HDFS as a local Linux filesystem and allow arbitrary applications / shell scripts to access HDFS as normal files and directories in efficient and secure way.

Features (Planned)

  • High performance
    • directly interfacing Linux kernel for FUSE and HDFS using protocol buffers (requires no JavaVM)
    • designed and optimized for throughput-intensive workloads (throughput is traded for latency whenever possible)
    • full streaming and automatic read-ahead support
    • concurrent operations
    • In-memory metadata caching (very fast ls!)
  • High stability and robust failure-handling behavior
    • automatic retries and failover, all configurable
    • optional lazy mounting, before HDFS becomes available
  • Support for both reads and writes
    • support for random writes [slow, but functionally correct]
    • support for file truncations
  • CoreOS and Docker-friendly
    • optionally packagable as a statically-linked self-contained executable

Current state

"Alpha", under active development. Basic R/O scenarios and key R/O throughout optimizations are implemented and outperform existing HDFS/FUSE solutions. If you want to use the component - come back in few weeks If you want to help - contact authors

Other Platforms

It should be relatively easy to enable this working on MacOS and FreeBSD, since all underlying dependencies are MacOS and FreeBSD-ready. Very few changes are needed to the code to get it working on those platforms, but it is currently not a priority for authors. Contact authors if you want to help.