"An exception was thrown by org.apache.hadoop.hbase.io.asyncfs.FanOutOneBlockAsyncDFSOutputHelper"的解决方法

有两种情况和原因

情况一:

WARN concurrent.DefaultPromise: An exception was thrown by
org.apache.hadoop.hbase.io.asyncfs.FanOutOneBlockAsyncDFSOutputHelper$6.operationComplete()
java.lang.Error: Couldn't properly initialize access to HDFS internals.
Please update your WAL Provider to not make use of the 'asyncfs' provider.

* 其中的6也可能是其它数值

原因:

WAL(Write-Ahead-Log)需要指定写入模式(WALFactory),有defaultProvider、asyncfs、filesystem、multiwal四种选项。

https://hbase.apache.org/devapidocs/org/apache/hadoop/hbase/wal/WALFactory.html

解决方法:

在hbase-site.xml文件添加属性

vim /hbase/conf/hbase-site.xml

添加以下内容:

<property>
  <name>hbase.wal.provider</name>
  <value>filesystem</value> <!--也可以用multiwal-->
</property>

情况二:

WARN [RS-EventLoopGroup-1-1] concurrent.DefaultPromise: An exception was thrown by
org.apache.hadoop.hbase.io.asyncfs.FanOutOneBlockAsyncDFSOutputHelper$4.operationComplete()
java.lang.IllegalArgumentException: object is not an instance of declaring class

* 其中的1-1也可能是其它数值

原因和解决方法:

只启动成功了Master(HMaster)和部分RegionServer,有1个或多个RegionServer没启动成功。

有可能是以下错误(解决方法也在里面):

https://www.cnblogs.com/live41/p/15497022.html

原文地址:https://www.cnblogs.com/live41/p/15497029.html