Author: suresh
Date: Tue Sep 8 17:54:16 2009
New Revision: 812597
URL: http://svn.apache.org/viewvc?rev=812597&view=rev
Log:
HADOOP-6235. Adds new method to FileSystem for clients to get server defaults.
Contributed by Kan Zhang.
Added:
hadoop/common/trunk/src/java/org/apache/hadoop/fs/FsServerDefaults.java
Modified:
hadoop/common/trunk/CHANGES.txt
hadoop/common/trunk/src/java/org/apache/hadoop/fs/FileSystem.java
Modified: hadoop/common/trunk/CHANGES.txt
URL:
http://svn.apache.org/viewvc/hadoop/common/trunk/CHANGES.txt?rev=812597&r1=812596&r2=812597&view=diff
==============================================================================
--- hadoop/common/trunk/CHANGES.txt (original)
+++ hadoop/common/trunk/CHANGES.txt Tue Sep 8 17:54:16 2009
@@ -178,6 +178,9 @@
HADOOP-6105. Adds support for automatically handling deprecation of
configuration keys. (V.V.Chaitanya Krishna via yhemanth)
+ HADOOP-6235. Adds new method to FileSystem for clients to get server
+ defaults. (Kan Zhang via suresh)
+
IMPROVEMENTS
HADOOP-4565. Added CombineFileInputFormat to use data locality information
Modified: hadoop/common/trunk/src/java/org/apache/hadoop/fs/FileSystem.java
URL:
http://svn.apache.org/viewvc/hadoop/common/trunk/src/java/org/apache/hadoop/fs/FileSystem.java?rev=812597&r1=812596&r2=812597&view=diff
==============================================================================
--- hadoop/common/trunk/src/java/org/apache/hadoop/fs/FileSystem.java (original)
+++ hadoop/common/trunk/src/java/org/apache/hadoop/fs/FileSystem.java Tue Sep
8 17:54:16 2009
@@ -365,6 +365,20 @@
}
/**
+ * Return a set of server default configuration values
+ * @return server default configuration values
+ * @throws IOException
+ */
+ public FsServerDefaults getServerDefaults() throws IOException {
+ Configuration conf = getConf();
+ return new FsServerDefaults(getDefaultBlockSize(),
+ conf.getInt("io.bytes.per.checksum", 512),
+ 64 * 1024,
+ getDefaultReplication(),
+ conf.getInt("io.file.buffer.size", 4096));
+ }
+
+ /**
* Opens an FSDataInputStream at the indicated Path.
* @param f the file name to open
* @param bufferSize the size of the buffer to be used.
Added: hadoop/common/trunk/src/java/org/apache/hadoop/fs/FsServerDefaults.java
URL:
http://svn.apache.org/viewvc/hadoop/common/trunk/src/java/org/apache/hadoop/fs/FsServerDefaults.java?rev=812597&view=auto
==============================================================================
--- hadoop/common/trunk/src/java/org/apache/hadoop/fs/FsServerDefaults.java
(added)
+++ hadoop/common/trunk/src/java/org/apache/hadoop/fs/FsServerDefaults.java Tue
Sep 8 17:54:16 2009
@@ -0,0 +1,98 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.hadoop.fs;
+
+import java.io.DataInput;
+import java.io.DataOutput;
+import java.io.IOException;
+
+import org.apache.hadoop.io.Writable;
+import org.apache.hadoop.io.WritableFactories;
+import org.apache.hadoop.io.WritableFactory;
+
+/****************************************************
+ * Provides server default configuration values to clients.
+ *
+ ****************************************************/
+public class FsServerDefaults implements Writable {
+
+ static { // register a ctor
+ WritableFactories.setFactory(FsServerDefaults.class, new WritableFactory()
{
+ public Writable newInstance() {
+ return new FsServerDefaults();
+ }
+ });
+ }
+
+ private long blockSize;
+ private int bytesPerChecksum;
+ private int writePacketSize;
+ private short replication;
+ private int fileBufferSize;
+
+ public FsServerDefaults() {
+ }
+
+ public FsServerDefaults(long blockSize, int bytesPerChecksum,
+ int writePacketSize, short replication, int fileBufferSize) {
+ this.blockSize = blockSize;
+ this.bytesPerChecksum = bytesPerChecksum;
+ this.writePacketSize = writePacketSize;
+ this.replication = replication;
+ this.fileBufferSize = fileBufferSize;
+ }
+
+ public long getBlockSize() {
+ return blockSize;
+ }
+
+ public int getBytesPerChecksum() {
+ return bytesPerChecksum;
+ }
+
+ public int getWritePacketSize() {
+ return writePacketSize;
+ }
+
+ public short getReplication() {
+ return replication;
+ }
+
+ public int getFileBufferSize() {
+ return fileBufferSize;
+ }
+
+ // /////////////////////////////////////////
+ // Writable
+ // /////////////////////////////////////////
+ public void write(DataOutput out) throws IOException {
+ out.writeLong(blockSize);
+ out.writeInt(bytesPerChecksum);
+ out.writeInt(writePacketSize);
+ out.writeShort(replication);
+ out.writeInt(fileBufferSize);
+ }
+
+ public void readFields(DataInput in) throws IOException {
+ blockSize = in.readLong();
+ bytesPerChecksum = in.readInt();
+ writePacketSize = in.readInt();
+ replication = in.readShort();
+ fileBufferSize = in.readInt();
+ }
+}