Class FanOutOneBlockAsyncDFSOutputHelper
java.lang.Object
org.apache.hadoop.hbase.io.asyncfs.FanOutOneBlockAsyncDFSOutputHelper
Helper class for implementing
FanOutOneBlockAsyncDFSOutput.-
Nested Class Summary
Nested ClassesModifier and TypeClassDescription(package private) static final classprivate static interfaceprivate static interfaceprivate static interfacestatic classException other than RemoteException thrown when calling create on namenode -
Field Summary
FieldsModifier and TypeFieldDescriptionprivate static final org.apache.hbase.thirdparty.io.netty.buffer.ByteBufAllocatorstatic final Stringstatic final intprivate static final FanOutOneBlockAsyncDFSOutputHelper.DFSClientAdaptorprivate static final FanOutOneBlockAsyncDFSOutputHelper.FileCreatorstatic final longprivate static final FanOutOneBlockAsyncDFSOutputHelper.LeaseManagerprivate static final org.slf4j.Loggerstatic final intprivate static final org.apache.hadoop.fs.CreateFlag -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescription(package private) static voidbeginFileLease(org.apache.hadoop.hdfs.DFSClient client, long inodeId) (package private) static voidcompleteFile(org.apache.hadoop.hdfs.DFSClient client, org.apache.hadoop.hdfs.protocol.ClientProtocol namenode, String src, String clientName, org.apache.hadoop.hdfs.protocol.ExtendedBlock block, long fileId) private static List<org.apache.hbase.thirdparty.io.netty.util.concurrent.Future<org.apache.hbase.thirdparty.io.netty.channel.Channel>>connectToDataNodes(org.apache.hadoop.conf.Configuration conf, org.apache.hadoop.hdfs.DFSClient client, String clientName, org.apache.hadoop.hdfs.protocol.LocatedBlock locatedBlock, long maxBytesRcvd, long latestGS, org.apache.hadoop.hdfs.protocol.datatransfer.BlockConstructionStage stage, org.apache.hadoop.util.DataChecksum summer, org.apache.hbase.thirdparty.io.netty.channel.EventLoopGroup eventLoopGroup, Class<? extends org.apache.hbase.thirdparty.io.netty.channel.Channel> channelClass) (package private) static org.apache.hadoop.util.DataChecksumcreateChecksum(org.apache.hadoop.hdfs.DFSClient client) private static FanOutOneBlockAsyncDFSOutputHelper.DFSClientAdaptorprivate static FanOutOneBlockAsyncDFSOutputHelper.FileCreatorprivate static FanOutOneBlockAsyncDFSOutputHelper.FileCreatorprivate static FanOutOneBlockAsyncDFSOutputHelper.FileCreatorprivate static FanOutOneBlockAsyncDFSOutputHelper.FileCreatorprivate static FanOutOneBlockAsyncDFSOutputHelper.LeaseManagerprivate static FanOutOneBlockAsyncDFSOutputcreateOutput(org.apache.hadoop.hdfs.DistributedFileSystem dfs, String src, boolean overwrite, boolean createParent, short replication, long blockSize, org.apache.hbase.thirdparty.io.netty.channel.EventLoopGroup eventLoopGroup, Class<? extends org.apache.hbase.thirdparty.io.netty.channel.Channel> channelClass, StreamSlowMonitor monitor, boolean noLocalWrite) static FanOutOneBlockAsyncDFSOutputcreateOutput(org.apache.hadoop.hdfs.DistributedFileSystem dfs, org.apache.hadoop.fs.Path f, boolean overwrite, boolean createParent, short replication, long blockSize, org.apache.hbase.thirdparty.io.netty.channel.EventLoopGroup eventLoopGroup, Class<? extends org.apache.hbase.thirdparty.io.netty.channel.Channel> channelClass, StreamSlowMonitor monitor, boolean noLocalWrite) Create aFanOutOneBlockAsyncDFSOutput.(package private) static voidendFileLease(org.apache.hadoop.hdfs.DFSClient client, long inodeId) private static org.apache.hadoop.io.EnumSetWritable<org.apache.hadoop.fs.CreateFlag>getCreateFlags(boolean overwrite, boolean noLocalWrite) (package private) static org.apache.hadoop.hdfs.protocol.proto.DataTransferProtos.StatusgetStatus(org.apache.hadoop.hdfs.protocol.proto.DataTransferProtos.PipelineAckProto ack) private static voidinitialize(org.apache.hadoop.conf.Configuration conf, org.apache.hbase.thirdparty.io.netty.channel.Channel channel, org.apache.hadoop.hdfs.protocol.DatanodeInfo dnInfo, org.apache.hadoop.fs.StorageType storageType, org.apache.hadoop.hdfs.protocol.proto.DataTransferProtos.OpWriteBlockProto.Builder writeBlockProtoBuilder, int timeoutMs, org.apache.hadoop.hdfs.DFSClient client, org.apache.hadoop.security.token.Token<org.apache.hadoop.hdfs.security.token.block.BlockTokenIdentifier> accessToken, org.apache.hbase.thirdparty.io.netty.util.concurrent.Promise<org.apache.hbase.thirdparty.io.netty.channel.Channel> promise) private static org.apache.hadoop.fs.CreateFlagprivate static voidprocessWriteBlockResponse(org.apache.hbase.thirdparty.io.netty.channel.Channel channel, org.apache.hadoop.hdfs.protocol.DatanodeInfo dnInfo, org.apache.hbase.thirdparty.io.netty.util.concurrent.Promise<org.apache.hbase.thirdparty.io.netty.channel.Channel> promise, int timeoutMs) private static voidrequestWriteBlock(org.apache.hbase.thirdparty.io.netty.channel.Channel channel, org.apache.hadoop.fs.StorageType storageType, org.apache.hadoop.hdfs.protocol.proto.DataTransferProtos.OpWriteBlockProto.Builder writeBlockProtoBuilder) static booleanshouldRetryCreate(org.apache.hadoop.ipc.RemoteException e) (package private) static voidsleepIgnoreInterrupt(int retry)
-
Field Details
-
LOG
-
ASYNC_DFS_OUTPUT_CREATE_MAX_RETRIES
- See Also:
-
DEFAULT_ASYNC_DFS_OUTPUT_CREATE_MAX_RETRIES
- See Also:
-
ALLOC
-
HEART_BEAT_SEQNO
- See Also:
-
READ_TIMEOUT
- See Also:
-
LEASE_MANAGER
-
DFS_CLIENT_ADAPTOR
-
FILE_CREATOR
-
SHOULD_REPLICATE_FLAG
-
-
Constructor Details
-
FanOutOneBlockAsyncDFSOutputHelper
private FanOutOneBlockAsyncDFSOutputHelper()
-
-
Method Details
-
createDFSClientAdaptor
private static FanOutOneBlockAsyncDFSOutputHelper.DFSClientAdaptor createDFSClientAdaptor() throws NoSuchMethodException- Throws:
NoSuchMethodException
-
createLeaseManager
private static FanOutOneBlockAsyncDFSOutputHelper.LeaseManager createLeaseManager() throws NoSuchMethodException- Throws:
NoSuchMethodException
-
createFileCreator3_3
private static FanOutOneBlockAsyncDFSOutputHelper.FileCreator createFileCreator3_3() throws NoSuchMethodException- Throws:
NoSuchMethodException
-
createFileCreator3
private static FanOutOneBlockAsyncDFSOutputHelper.FileCreator createFileCreator3() throws NoSuchMethodException- Throws:
NoSuchMethodException
-
createFileCreator2
private static FanOutOneBlockAsyncDFSOutputHelper.FileCreator createFileCreator2() throws NoSuchMethodException- Throws:
NoSuchMethodException
-
createFileCreator
private static FanOutOneBlockAsyncDFSOutputHelper.FileCreator createFileCreator() throws NoSuchMethodException- Throws:
NoSuchMethodException
-
loadShouldReplicateFlag
-
beginFileLease
-
endFileLease
-
createChecksum
-
getStatus
static org.apache.hadoop.hdfs.protocol.proto.DataTransferProtos.Status getStatus(org.apache.hadoop.hdfs.protocol.proto.DataTransferProtos.PipelineAckProto ack) -
processWriteBlockResponse
private static void processWriteBlockResponse(org.apache.hbase.thirdparty.io.netty.channel.Channel channel, org.apache.hadoop.hdfs.protocol.DatanodeInfo dnInfo, org.apache.hbase.thirdparty.io.netty.util.concurrent.Promise<org.apache.hbase.thirdparty.io.netty.channel.Channel> promise, int timeoutMs) -
requestWriteBlock
private static void requestWriteBlock(org.apache.hbase.thirdparty.io.netty.channel.Channel channel, org.apache.hadoop.fs.StorageType storageType, org.apache.hadoop.hdfs.protocol.proto.DataTransferProtos.OpWriteBlockProto.Builder writeBlockProtoBuilder) throws IOException - Throws:
IOException
-
initialize
private static void initialize(org.apache.hadoop.conf.Configuration conf, org.apache.hbase.thirdparty.io.netty.channel.Channel channel, org.apache.hadoop.hdfs.protocol.DatanodeInfo dnInfo, org.apache.hadoop.fs.StorageType storageType, org.apache.hadoop.hdfs.protocol.proto.DataTransferProtos.OpWriteBlockProto.Builder writeBlockProtoBuilder, int timeoutMs, org.apache.hadoop.hdfs.DFSClient client, org.apache.hadoop.security.token.Token<org.apache.hadoop.hdfs.security.token.block.BlockTokenIdentifier> accessToken, org.apache.hbase.thirdparty.io.netty.util.concurrent.Promise<org.apache.hbase.thirdparty.io.netty.channel.Channel> promise) throws IOException - Throws:
IOException
-
connectToDataNodes
private static List<org.apache.hbase.thirdparty.io.netty.util.concurrent.Future<org.apache.hbase.thirdparty.io.netty.channel.Channel>> connectToDataNodes(org.apache.hadoop.conf.Configuration conf, org.apache.hadoop.hdfs.DFSClient client, String clientName, org.apache.hadoop.hdfs.protocol.LocatedBlock locatedBlock, long maxBytesRcvd, long latestGS, org.apache.hadoop.hdfs.protocol.datatransfer.BlockConstructionStage stage, org.apache.hadoop.util.DataChecksum summer, org.apache.hbase.thirdparty.io.netty.channel.EventLoopGroup eventLoopGroup, Class<? extends org.apache.hbase.thirdparty.io.netty.channel.Channel> channelClass) -
getCreateFlags
private static org.apache.hadoop.io.EnumSetWritable<org.apache.hadoop.fs.CreateFlag> getCreateFlags(boolean overwrite, boolean noLocalWrite) -
createOutput
private static FanOutOneBlockAsyncDFSOutput createOutput(org.apache.hadoop.hdfs.DistributedFileSystem dfs, String src, boolean overwrite, boolean createParent, short replication, long blockSize, org.apache.hbase.thirdparty.io.netty.channel.EventLoopGroup eventLoopGroup, Class<? extends org.apache.hbase.thirdparty.io.netty.channel.Channel> channelClass, StreamSlowMonitor monitor, boolean noLocalWrite) throws IOException - Throws:
IOException
-
createOutput
public static FanOutOneBlockAsyncDFSOutput createOutput(org.apache.hadoop.hdfs.DistributedFileSystem dfs, org.apache.hadoop.fs.Path f, boolean overwrite, boolean createParent, short replication, long blockSize, org.apache.hbase.thirdparty.io.netty.channel.EventLoopGroup eventLoopGroup, Class<? extends org.apache.hbase.thirdparty.io.netty.channel.Channel> channelClass, StreamSlowMonitor monitor, boolean noLocalWrite) throws IOException Create aFanOutOneBlockAsyncDFSOutput. The method maybe blocked so do not call it inside anEventLoop.- Throws:
IOException
-
shouldRetryCreate
-
completeFile
static void completeFile(org.apache.hadoop.hdfs.DFSClient client, org.apache.hadoop.hdfs.protocol.ClientProtocol namenode, String src, String clientName, org.apache.hadoop.hdfs.protocol.ExtendedBlock block, long fileId) -
sleepIgnoreInterrupt
-