diff options
| author | hilimd <68371223+hilimd@users.noreply.github.com> | 2020-07-30 11:43:00 +0800 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2020-07-30 11:43:00 +0800 |
| commit | d9af6e851bc435c2f3cf142d7f8bfd8bdb2686ab (patch) | |
| tree | 755520d38ae1077d77d8e3ef50af32abf8f1ab70 /other/java/hdfs2/src | |
| parent | 4a88cca543cb487e04c13703d263c3f19f4c1e92 (diff) | |
| parent | 703057bff9d8a1ef02af43722e0fd5bd6c536a7e (diff) | |
| download | seaweedfs-d9af6e851bc435c2f3cf142d7f8bfd8bdb2686ab.tar.xz seaweedfs-d9af6e851bc435c2f3cf142d7f8bfd8bdb2686ab.zip | |
Merge pull request #7 from chrislusf/master
sync
Diffstat (limited to 'other/java/hdfs2/src')
| -rw-r--r-- | other/java/hdfs2/src/main/java/seaweed/hdfs/BufferedSeaweedInputStream.java | 49 | ||||
| -rw-r--r-- | other/java/hdfs2/src/main/java/seaweed/hdfs/SeaweedFileSystem.java | 2 |
2 files changed, 50 insertions, 1 deletions
diff --git a/other/java/hdfs2/src/main/java/seaweed/hdfs/BufferedSeaweedInputStream.java b/other/java/hdfs2/src/main/java/seaweed/hdfs/BufferedSeaweedInputStream.java new file mode 100644 index 000000000..0bee6e43f --- /dev/null +++ b/other/java/hdfs2/src/main/java/seaweed/hdfs/BufferedSeaweedInputStream.java @@ -0,0 +1,49 @@ +package seaweed.hdfs; + +import org.apache.hadoop.fs.PositionedReadable; +import org.apache.hadoop.fs.Seekable; + +import java.io.BufferedInputStream; +import java.io.FilterInputStream; +import java.io.IOException; +import java.io.InputStream; + +class BufferedSeaweedInputStream extends FilterInputStream implements Seekable, PositionedReadable { + + SeaweedInputStream t; + + protected BufferedSeaweedInputStream(InputStream in, int bufferSize) { + super(new BufferedInputStream(in, bufferSize)); + t = (SeaweedInputStream)in; + } + + @Override + public int read(long position, byte[] buffer, int offset, int length) throws IOException { + return this.t.read(position,buffer,offset,length); + } + + @Override + public void readFully(long position, byte[] buffer, int offset, int length) throws IOException { + this.t.readFully(position,buffer,offset,length); + } + + @Override + public void readFully(long position, byte[] buffer) throws IOException { + this.t.readFully(position,buffer); + } + + @Override + public void seek(long pos) throws IOException { + this.t.seek(pos); + } + + @Override + public long getPos() throws IOException { + return this.t.getPos(); + } + + @Override + public boolean seekToNewSource(long targetPos) throws IOException { + return this.t.seekToNewSource(targetPos); + } +} diff --git a/other/java/hdfs2/src/main/java/seaweed/hdfs/SeaweedFileSystem.java b/other/java/hdfs2/src/main/java/seaweed/hdfs/SeaweedFileSystem.java index 2341d335d..585fa39a3 100644 --- a/other/java/hdfs2/src/main/java/seaweed/hdfs/SeaweedFileSystem.java +++ b/other/java/hdfs2/src/main/java/seaweed/hdfs/SeaweedFileSystem.java @@ -76,7 +76,7 @@ public class SeaweedFileSystem extends FileSystem { try { InputStream inputStream = seaweedFileSystemStore.openFileForRead(path, statistics, bufferSize); - return new FSDataInputStream(inputStream); + return new FSDataInputStream(new BufferedSeaweedInputStream(inputStream, 16 * 1024 * 1024)); } catch (Exception ex) { LOG.warn("open path: {} bufferSize:{}", path, bufferSize, ex); return null; |
