|
@@ -638,6 +638,7 @@ public class DFSClient implements java.io.Closeable, RemotePeerFactory,
|
|
|
* @see ClientProtocol#getPreferredBlockSize(String)
|
|
|
*/
|
|
|
public long getBlockSize(String f) throws IOException {
|
|
|
+ checkOpen();
|
|
|
TraceScope scope = getPathTraceScope("getBlockSize", f);
|
|
|
try {
|
|
|
return namenode.getPreferredBlockSize(f);
|
|
@@ -654,6 +655,7 @@ public class DFSClient implements java.io.Closeable, RemotePeerFactory,
|
|
|
* @see ClientProtocol#getServerDefaults()
|
|
|
*/
|
|
|
public FsServerDefaults getServerDefaults() throws IOException {
|
|
|
+ checkOpen();
|
|
|
long now = Time.monotonicNow();
|
|
|
if ((serverDefaults == null) ||
|
|
|
(now - serverDefaultsLastUpdate > SERVER_DEFAULTS_VALIDITY_PERIOD)) {
|
|
@@ -845,6 +847,7 @@ public class DFSClient implements java.io.Closeable, RemotePeerFactory,
|
|
|
* @see ClientProtocol#reportBadBlocks(LocatedBlock[])
|
|
|
*/
|
|
|
public void reportBadBlocks(LocatedBlock[] blocks) throws IOException {
|
|
|
+ checkOpen();
|
|
|
namenode.reportBadBlocks(blocks);
|
|
|
}
|
|
|
|
|
@@ -918,6 +921,7 @@ public class DFSClient implements java.io.Closeable, RemotePeerFactory,
|
|
|
*/
|
|
|
public BlockLocation[] getBlockLocations(String src, long start,
|
|
|
long length) throws IOException, UnresolvedLinkException {
|
|
|
+ checkOpen();
|
|
|
TraceScope scope = getPathTraceScope("getBlockLocations", src);
|
|
|
try {
|
|
|
LocatedBlocks blocks = getLocatedBlocks(src, start, length);
|
|
@@ -952,6 +956,7 @@ public class DFSClient implements java.io.Closeable, RemotePeerFactory,
|
|
|
public BlockStorageLocation[] getBlockStorageLocations(
|
|
|
List<BlockLocation> blockLocations) throws IOException,
|
|
|
UnsupportedOperationException, InvalidBlockTokenException {
|
|
|
+ checkOpen();
|
|
|
if (!getConf().isHdfsBlocksMetadataEnabled()) {
|
|
|
throw new UnsupportedOperationException("Datanode-side support for " +
|
|
|
"getVolumeBlockLocations() must also be enabled in the client " +
|
|
@@ -1418,6 +1423,7 @@ public class DFSClient implements java.io.Closeable, RemotePeerFactory,
|
|
|
*/
|
|
|
public void createSymlink(String target, String link, boolean createParent)
|
|
|
throws IOException {
|
|
|
+ checkOpen();
|
|
|
TraceScope scope = getPathTraceScope("createSymlink", target);
|
|
|
try {
|
|
|
final FsPermission dirPerm = applyUMask(null);
|
|
@@ -1540,6 +1546,7 @@ public class DFSClient implements java.io.Closeable, RemotePeerFactory,
|
|
|
*/
|
|
|
public boolean setReplication(String src, short replication)
|
|
|
throws IOException {
|
|
|
+ checkOpen();
|
|
|
TraceScope scope = getPathTraceScope("setReplication", src);
|
|
|
try {
|
|
|
return namenode.setReplication(src, replication);
|
|
@@ -1563,6 +1570,7 @@ public class DFSClient implements java.io.Closeable, RemotePeerFactory,
|
|
|
*/
|
|
|
public void setStoragePolicy(String src, String policyName)
|
|
|
throws IOException {
|
|
|
+ checkOpen();
|
|
|
TraceScope scope = getPathTraceScope("setStoragePolicy", src);
|
|
|
try {
|
|
|
namenode.setStoragePolicy(src, policyName);
|
|
@@ -1582,6 +1590,7 @@ public class DFSClient implements java.io.Closeable, RemotePeerFactory,
|
|
|
* @return All the existing storage policies
|
|
|
*/
|
|
|
public BlockStoragePolicy[] getStoragePolicies() throws IOException {
|
|
|
+ checkOpen();
|
|
|
TraceScope scope = Trace.startSpan("getStoragePolicies", traceSampler);
|
|
|
try {
|
|
|
return namenode.getStoragePolicies();
|
|
@@ -2232,6 +2241,7 @@ public class DFSClient implements java.io.Closeable, RemotePeerFactory,
|
|
|
* @see ClientProtocol#setSafeMode(HdfsConstants.SafeModeAction,boolean)
|
|
|
*/
|
|
|
public boolean setSafeMode(SafeModeAction action) throws IOException {
|
|
|
+ checkOpen();
|
|
|
return setSafeMode(action, false);
|
|
|
}
|
|
|
|
|
@@ -2434,6 +2444,7 @@ public class DFSClient implements java.io.Closeable, RemotePeerFactory,
|
|
|
|
|
|
public RemoteIterator<CacheDirectiveEntry> listCacheDirectives(
|
|
|
CacheDirectiveInfo filter) throws IOException {
|
|
|
+ checkOpen();
|
|
|
return new CacheDirectiveIterator(namenode, filter, traceSampler);
|
|
|
}
|
|
|
|
|
@@ -2474,6 +2485,7 @@ public class DFSClient implements java.io.Closeable, RemotePeerFactory,
|
|
|
}
|
|
|
|
|
|
public RemoteIterator<CachePoolEntry> listCachePools() throws IOException {
|
|
|
+ checkOpen();
|
|
|
return new CachePoolIterator(namenode, traceSampler);
|
|
|
}
|
|
|
|
|
@@ -2483,6 +2495,7 @@ public class DFSClient implements java.io.Closeable, RemotePeerFactory,
|
|
|
* @see ClientProtocol#saveNamespace(long, long)
|
|
|
*/
|
|
|
boolean saveNamespace(long timeWindow, long txGap) throws IOException {
|
|
|
+ checkOpen();
|
|
|
TraceScope scope = Trace.startSpan("saveNamespace", traceSampler);
|
|
|
try {
|
|
|
return namenode.saveNamespace(timeWindow, txGap);
|
|
@@ -2500,6 +2513,7 @@ public class DFSClient implements java.io.Closeable, RemotePeerFactory,
|
|
|
* @see ClientProtocol#rollEdits()
|
|
|
*/
|
|
|
long rollEdits() throws AccessControlException, IOException {
|
|
|
+ checkOpen();
|
|
|
TraceScope scope = Trace.startSpan("rollEdits", traceSampler);
|
|
|
try {
|
|
|
return namenode.rollEdits();
|
|
@@ -2522,6 +2536,7 @@ public class DFSClient implements java.io.Closeable, RemotePeerFactory,
|
|
|
*/
|
|
|
boolean restoreFailedStorage(String arg)
|
|
|
throws AccessControlException, IOException{
|
|
|
+ checkOpen();
|
|
|
TraceScope scope = Trace.startSpan("restoreFailedStorage", traceSampler);
|
|
|
try {
|
|
|
return namenode.restoreFailedStorage(arg);
|
|
@@ -2538,6 +2553,7 @@ public class DFSClient implements java.io.Closeable, RemotePeerFactory,
|
|
|
* @see ClientProtocol#refreshNodes()
|
|
|
*/
|
|
|
public void refreshNodes() throws IOException {
|
|
|
+ checkOpen();
|
|
|
TraceScope scope = Trace.startSpan("refreshNodes", traceSampler);
|
|
|
try {
|
|
|
namenode.refreshNodes();
|
|
@@ -2552,6 +2568,7 @@ public class DFSClient implements java.io.Closeable, RemotePeerFactory,
|
|
|
* @see ClientProtocol#metaSave(String)
|
|
|
*/
|
|
|
public void metaSave(String pathname) throws IOException {
|
|
|
+ checkOpen();
|
|
|
TraceScope scope = Trace.startSpan("metaSave", traceSampler);
|
|
|
try {
|
|
|
namenode.metaSave(pathname);
|
|
@@ -2569,6 +2586,7 @@ public class DFSClient implements java.io.Closeable, RemotePeerFactory,
|
|
|
* @see ClientProtocol#setBalancerBandwidth(long)
|
|
|
*/
|
|
|
public void setBalancerBandwidth(long bandwidth) throws IOException {
|
|
|
+ checkOpen();
|
|
|
TraceScope scope = Trace.startSpan("setBalancerBandwidth", traceSampler);
|
|
|
try {
|
|
|
namenode.setBalancerBandwidth(bandwidth);
|
|
@@ -2581,6 +2599,7 @@ public class DFSClient implements java.io.Closeable, RemotePeerFactory,
|
|
|
* @see ClientProtocol#finalizeUpgrade()
|
|
|
*/
|
|
|
public void finalizeUpgrade() throws IOException {
|
|
|
+ checkOpen();
|
|
|
TraceScope scope = Trace.startSpan("finalizeUpgrade", traceSampler);
|
|
|
try {
|
|
|
namenode.finalizeUpgrade();
|
|
@@ -2590,6 +2609,7 @@ public class DFSClient implements java.io.Closeable, RemotePeerFactory,
|
|
|
}
|
|
|
|
|
|
RollingUpgradeInfo rollingUpgrade(RollingUpgradeAction action) throws IOException {
|
|
|
+ checkOpen();
|
|
|
TraceScope scope = Trace.startSpan("rollingUpgrade", traceSampler);
|
|
|
try {
|
|
|
return namenode.rollingUpgrade(action);
|
|
@@ -2675,6 +2695,7 @@ public class DFSClient implements java.io.Closeable, RemotePeerFactory,
|
|
|
* @see ClientProtocol#getContentSummary(String)
|
|
|
*/
|
|
|
ContentSummary getContentSummary(String src) throws IOException {
|
|
|
+ checkOpen();
|
|
|
TraceScope scope = getPathTraceScope("getContentSummary", src);
|
|
|
try {
|
|
|
return namenode.getContentSummary(src);
|
|
@@ -2693,6 +2714,7 @@ public class DFSClient implements java.io.Closeable, RemotePeerFactory,
|
|
|
*/
|
|
|
void setQuota(String src, long namespaceQuota, long storagespaceQuota)
|
|
|
throws IOException {
|
|
|
+ checkOpen();
|
|
|
// sanity check
|
|
|
if ((namespaceQuota <= 0 && namespaceQuota != HdfsConstants.QUOTA_DONT_SET &&
|
|
|
namespaceQuota != HdfsConstants.QUOTA_RESET) ||
|
|
@@ -2726,6 +2748,7 @@ public class DFSClient implements java.io.Closeable, RemotePeerFactory,
|
|
|
*/
|
|
|
void setQuotaByStorageType(String src, StorageType type, long quota)
|
|
|
throws IOException {
|
|
|
+ checkOpen();
|
|
|
if (quota <= 0 && quota != HdfsConstants.QUOTA_DONT_SET &&
|
|
|
quota != HdfsConstants.QUOTA_RESET) {
|
|
|
throw new IllegalArgumentException("Invalid values for quota :" +
|
|
@@ -3071,11 +3094,13 @@ public class DFSClient implements java.io.Closeable, RemotePeerFactory,
|
|
|
}
|
|
|
|
|
|
public DFSInotifyEventInputStream getInotifyEventStream() throws IOException {
|
|
|
+ checkOpen();
|
|
|
return new DFSInotifyEventInputStream(traceSampler, namenode);
|
|
|
}
|
|
|
|
|
|
public DFSInotifyEventInputStream getInotifyEventStream(long lastReadTxid)
|
|
|
throws IOException {
|
|
|
+ checkOpen();
|
|
|
return new DFSInotifyEventInputStream(traceSampler, namenode, lastReadTxid);
|
|
|
}
|
|
|
|