Skip to content

A tool to mount HDFS as a local Linux file system

License

Notifications You must be signed in to change notification settings

hahatt/hdfs-mount

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

41 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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
  • Optionally expands ZIP archives with extracting content on demand
    • this provides an effective solution to "millions of small files on HDFS" problem
  • CoreOS and Docker-friendly
    • optionally packagable as a statically-linked self-contained executable

Current state

"Alpha", under active development. Basic R/O scenarios, key R/O throughout optimizations and ZIP support 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

Building

Ensure that you cloned the git repository recursively, since it contains submodules. Run 'make' to build and 'make test' to run unit test. Please use Go version at least 1.6beta2. This version contains bugfix for handling zip64 archives necessary for hdfs-mount to operate normally.

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.

About

A tool to mount HDFS as a local Linux file system

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Go 98.4%
  • Makefile 1.6%