Я пытаюсь настроить HBase, поддерживаемый S3 на K8s, как Po C, и уже 2 дня ломаю голову над этой проблемой.
До сих пор мне удалось настроить пакет с ZK, Hbase master, Hbase regionserver, Hbase rest и сервисами Hbase в контейнере; все они запускаются Supervisord.
Все работает нормально при первом запуске (когда корзина S3 пуста). Однако если по какой-либо причине происходит сбой модуля или он перезапускается, мастер не может инициализироваться после перезапуска и находится в состоянии сбоя. Он продолжает перезапускаться с ошибкой Caused by: java.io.IOException: Timedout 300000ms waiting for namespace table to be assigned and enabled: tableName=hbase:namespace, state=ENABLED
через каждые 3 минуты, и любые команды в оболочке Hbase приводят к:
ERROR: org.apache.hadoop.hbase.PleaseHoldException: Master is initializing
at org.apache.hadoop.hbase.master.HMaster.checkInitialized(HMaster.java:2989)
at org.apache.hadoop.hbase.master.HMaster.createTable(HMaster.java:1964)
at org.apache.hadoop.hbase.master.MasterRpcServices.createTable(MasterRpcServices.java:636)
at org.apache.hadoop.hbase.shaded.protobuf.generated.MasterProtos$MasterService$2.callBlockingMethod(MasterProtos.java)
at org.apache.hadoop.hbase.ipc.RpcServer.call(RpcServer.java:413)
at org.apache.hadoop.hbase.ipc.CallRunner.run(CallRunner.java:133)
at org.apache.hadoop.hbase.ipc.RpcExecutor$Handler.run(RpcExecutor.java:324)
at org.apache.hadoop.hbase.ipc.RpcExecutor$Handler.run(RpcExecutor.java:304)
В онлайновых статьях говорится, что неожиданный регион-сервер cra sh может вызвать это, что может решить проблему путем очистки Zookeeper, однако, в моем случае, даже Zookeeper был перезапущен и, следовательно, запускается заново sh.
Нет ли способа просто получить быструю Hbase на S3 таким образом?
Какие данные / метаданные фактически хранит Hbase в постоянном хранилище, что приводит к его сбою таким образом?
Примечание: я не запускаю никаких служб Hadoop / HDFS, поскольку пишу напрямую в S3; WAL хранится локально в модуле, который очищается при перезапуске.