Apache HBase Master (HMaster) falha no Azure HDInsight

Este artigo descreve etapas de resolução de problemas e possíveis resoluções para problemas ao interagir com clusters Azure HDInsight.

Cenário: Master startup não pode progredir, em padrão de detenção até que a região entre online

Problema

HMaster não começa devido ao seguinte aviso:

hbase:namespace,,<timestamp_region_create>.<encoded_region_name>.is NOT online; state={<encoded_region_name> state=OPEN, ts=<some_timestamp>, server=<server_name>}; ServerCrashProcedures=true. Master startup cannot progress, in holding-pattern until region onlined. 

Por exemplo, os valores dos parâmetros podem variar na mensagem real:

hbase:namespace,,1546588612000.0000010bc582e331e3080d5913a97000. is NOT online; state={0000010bc582e331e3080d5913a97000 state=OPEN, ts=1633935993000, server=<wn fqdn>,16000,1622012792000}; ServerCrashProcedures=false. Master startup cannot progress, in holding-pattern until region onlined.

Causa

O HMaster irá verificar o diretório WAL nos servidores da região antes de trazer de volta as regiões OPEN online. Neste caso, se o diretório não estava presente, não estava a começar

Resolução

  1. Crie este diretório falso utilizando o comando: sudo -u hbase hdfs dfs -mkdir /hbase-wals/WALs/<wn fqdn>,16000,1622012792000

  2. Reinicie o serviço HMaster a partir da UI Ambari.

Cenário: Falha de renomeação atómica

Problema

Ficheiros inesperados identificados durante o processo de arranque.

Causa

Durante o processo de arranque, o HMaster executa muitas etapas de inicialização, incluindo a transferência de dados do risco (.tmp) para a pasta de dados. O HMaster também olha para a pasta de registos de escrita (WAL) para ver se existem servidores da região sem resposta.

HMaster faz um comando de lista básica nas pastas WAL. Se em qualquer momento, o HMaster vir um ficheiro inesperado em qualquer uma destas pastas, lança uma exceção e não arranca.

Resolução

Verifique a pilha de chamadas e tente determinar qual a pasta que pode estar a causar o problema (por exemplo, pode ser a pasta WAL ou a pasta .tmp). Em seguida, no Cloud Explorer ou utilizando comandos HDFS, tente localizar o ficheiro problemático. Normalmente, isto é um *-renamePending.json ficheiro. (O *-renamePending.json ficheiro é um ficheiro de diário que é usado para implementar a operação de renome atómico no controlador WASB. Devido a bugs nesta implementação, estes ficheiros podem ser deixados após falhas de processo, e assim por diante.) Elimine este ficheiro no Cloud Explorer ou utilizando comandos HDFS.

Às vezes, também pode haver um ficheiro temporário chamado algo como $$$.$$$ neste local. Tem de usar o comando HDFS ls para ver este ficheiro; não pode ver o ficheiro no Cloud Explorer. Para eliminar este ficheiro, utilize o comando hdfs dfs -rm /\<path>\/\$\$\$.\$\$\$HDFS .

Depois de executar estes comandos, o HMaster deve começar imediatamente.


Cenário: Sem endereço de servidor listado

Problema

Pode ver uma mensagem que indica que a hbase: meta mesa não está online. A execução hbck pode informar que hbase: meta table replicaId 0 is not found on any region. nos registos HMaster, pode ver a mensagem: No server address listed in hbase: meta for region hbase: backup <region name>.

Causa

HMaster não pôde inicializar depois de reiniciar a Base H.

Resolução

  1. No reservatório HBase, introduza os seguintes comandos (alterar valores reais conforme aplicável):

    scan 'hbase:meta'
    delete 'hbase:meta','hbase:backup <region name>','<column name>'
    
  2. Apague a hbase: namespace entrada. Esta entrada pode ser o mesmo erro que está a ser reportado quando a hbase: namespace tabela é digitalizada.

  3. Reinicie o HMaster ativo da Ambari UI para trazer hbase em estado de execução.

  4. Na concha HBase, para trazer todas as tabelas offline, executar o seguinte comando:

    hbase hbck -ignorePreCheckPermission -fixAssignments
    

Cenário: java.io.IOExcepção: Timedout

Problema

HMaster vezes fora com exceção fatal semelhante a: java.io.IOException: Timedout 300000ms waiting for namespace table to be assigned.

Causa

Você pode experimentar este problema se você tiver muitas tabelas e regiões que não foram lavadas quando você reiniciar seus serviços HMaster. O tempo de 2019 é um defeito conhecido com a HMaster. As tarefas gerais de arranque do cluster podem demorar muito tempo. HMaster desliga se a tabela do espaço de identificação ainda não estiver atribuída. As longas tarefas de arranque acontecem onde existe uma grande quantidade de dados não flushed e um intervalo de cinco minutos não é suficiente.

Resolução

  1. Da Apache Ambari UI, vá à HBase>Configs. No ficheiro personalizado hbase-site.xml , adicione a seguinte definição:

    Key: hbase.master.namespace.init.timeout Value: 2400000  
    
  2. Reinicie os serviços necessários (HMaster e, possivelmente, outros serviços HBase).


Cenário: Reinício frequente do servidor da região

Problema

Os nós reiniciam periodicamente. A partir dos registos do servidor da região, poderá ver entradas semelhantes a:

2017-05-09 17:45:07,683 WARN  [JvmPauseMonitor] util.JvmPauseMonitor: Detected pause in JVM or host machine (eg GC): pause of approximately 31000ms
2017-05-09 17:45:07,683 WARN  [JvmPauseMonitor] util.JvmPauseMonitor: Detected pause in JVM or host machine (eg GC): pause of approximately 31000ms
2017-05-09 17:45:07,683 WARN  [JvmPauseMonitor] util.JvmPauseMonitor: Detected pause in JVM or host machine (eg GC): pause of approximately 31000ms

Causa: tempo limite de sessão do zookeeper

Longa regionserver pausa JVM GC. A pausa fará com regionserver que não responda e não seja capaz de enviar batimentos cardíacos para o HMaster dentro do tempo limite de 40 sessão do ZK. HMaster vai acreditar que regionserver está morto e vai abortar e regionserver reiniciar.

Para mitigar, altere o tempo limite de sessão do Zookeeper, não só hbase-site a definiçãozookeeper.session.timeout, mas também a definição maxSessionTimeout do Zookeeperzoo.cfg.

  1. Aceda a Ambari UI, vá a HBase -> Configs -> Definições, na secção Timeouts, altere o valor do Tempo de Sessão zookeeper.

  2. Aceda a Ambari UI, vá ao Zookeeper -> Configs -> Customzoo.cfg, adicione/altere a seguinte definição. Certifique-se de que o valor é o mesmo que a HBase zookeeper.session.timeout.

    Key: maxSessionTimeout Value: 120000  
    
  3. Reiniciar os serviços necessários.

Causa: RegiãoServer sobrecarregado

Siga o Número de regiões por RS - limite superior para calcular o limite superior. Por exemplo: 8000 (Region server Heap -- Xmx in MB) * 0.4 (hbase.regionserver.global.memstore.size) /64 (hbase.regionserver.hlog.blocksize/2) = 50

Para atenuar, dimensione o seu cluster HBase.


Cenário: Falha na divisão de registos

Problema

A HMasters não conseguiu chegar a um cluster HBase.

Causa

Configurações HDFS e HBase mal configuradas para uma conta de armazenamento secundária.

Resolução

set hbase.rootdir: wasb://@.blob.core.windows.net/hbase e reiniciar os serviços em Ambari.


Passos seguintes

Se não viu o seu problema ou não conseguir resolver o seu problema, visite um dos seguintes canais para obter mais apoio:

  • Obtenha respostas de especialistas do Azure através do Apoio Comunitário Azure.

  • Conecte-se com @AzureSupport - a conta oficial do Microsoft Azure para melhorar a experiência do cliente. Ligação da comunidade Azure aos recursos certos: respostas, apoio e especialistas.

  • Se precisar de mais ajuda, pode submeter um pedido de apoio da portal do Azure. Selecione Suporte a partir da barra de menu ou abra o hub de suporte Help + . Para obter informações mais detalhadas, reveja como criar um pedido de suporte do Azure. O acesso à Gestão de Subscrições e suporte à faturação está incluído na subscrição do Microsoft Azure, e o Suporte Técnico é fornecido através de um dos Planos de Suporte Azure.