Ambari 업그레이드 실패 롤백 복구 (데이터베이스 롤백 + 다운 그레이드 + 버그 수정)

1. 배경 소개

이전에 Ambari 2.2.18 버전을 사용하고 있는데 저자가 업그레이드를 시도하는 동안 부적절한 작동으로 인해 업그레이드에 실패했습니다. 몇 번의 우여곡절 끝에 마침내 롤백 작업이 실현되었습니다 .ambari의 실패한 업그레이드 롤백 및 데이터베이스 롤백에 대한 현재 정보가 거의 조각화되어 있지 않다는 점을 고려하여 저자는이 기사를 요약하여 여러분과 공유했습니다. 업그레이드 실패 문제가 발생하는 경우이 문서를주의 깊게 읽으십시오. 해결책을 찾을 수 있습니다.

2. 오작동

  1. 2.2에서 2.4로 업그레이드하려면 ambari-server / agent / grafana / ambari 메트릭 수집기 및 기타 구성 요소를 별도로 업그레이드해야하며 순서는 공식 문서의 요구 사항에 따라야합니다. 업그레이드 전에 ambari 서버를 시작하면 예기치 않은 오류가 발생합니다.
  2. ambari-server 웹 UI의 배경 옵션이 멈춘 경우 오류 및 하트 비트 대기 중이어야합니다. 작업을 종료하기 위해 많은 수의 일시 중지를 보내지 않도록하십시오. 올바른 방법은 / var / log에서 관련 로그를 확인하는 것입니다. 문제 해결 후 옵션은 자연스럽게 계속됩니다.
  3. 데이터베이스를 백업하지 않고 ambari-server 재설정을 수행하지 마십시오 . 그렇지 않으면 기존 클러스터가 손실되고 ambari 설치 인터페이스로 돌아갑니다.
  4. 모든 업그레이드 작업 전에 데이터베이스 ambari 및 ambarirca를 백업해야합니다. 동시에 /etc/ambari-server/conf/ambari.properties 파일을 백업해야합니다. 작성자가 권장하는 작업은 전체 conf 폴더를 백업하는 것 입니다.
    1.备份ambari数据库
    pg_dump -U postgres ambari > /usr/local/ambari_bak/ambari_rec.sql
    2.备份ambarirca数据库
    pg_dump -U postgres ambarirca > /usr/local/ambari_bak/ambarirca_rec.sql
    3.备份ambari-server的conf目录
    cp -R /etc/ambari-server/conf /usr/local/ambari_bak

3. 주요 버그 수정 기록

  • 잘못된 업그레이드 또는 다운 그레이드로 인해 데이터베이스 스키마에 기록 된 서버 버전이 서버의 실제 버전과 일치하지 않게됩니다. ambari-server 업그레이드를 수행하기 전에 데이터베이스의 서버 버전 정보가 실제 정보와 일치하는지 확인해야합니다.
Current database store version is not compatible with current server version

분석 : 여기에있는 데이터베이스 버전이 현재 서버 버전보다 높거나 낮을 수 있습니다. 이는 일반적으로 업그레이드 중에 발생하는 문제입니다. 현재 데이터베이스 버전이 현재 서버 버전보다 낮습니다. 일반적으로 다음과 같은 경우에 해당합니다. 온라인 자료. 이때 ambari-server 업그레이드가 실행되어야합니다. 그러나 내가 만난 것은 다운 그레이드 중에 발생한 오류 였는데, 이는 데이터베이스 버전이 현재 서버 버전보다 높았 기 때문입니다. 이 경우 데이터베이스를 다시 설치하거나 데이터베이스를 다시 초기화 할 수만 있습니다.

  • 에이전트 노드의 common-services 폴더에서 서비스 metainfo.xml을 찾을 수 없음을보고하십시오.
Caused by: org.apache.ambari.server.AmbariException: Stack Definition Service at '/var/lib/ambari-server/resources/common-services/PXF/3.0.0/metainfo.xml' doesn't contain a metainfo.xml file

분석 :이 오류는 일반적으로 ambari-agent의 잘못된 재설치 또는 불완전한 제거로 인해 발생합니다. 모든 에이전트 노드의 / var / lib / ambari-agent 디렉토리를 삭제하고 모든 노드에서 yum -y remove ambari-agent를 실행해야합니다.

  • ambari 업그레이드의 일부 후 에이전트를 시작할 수 없으며 에이전트 로그는 다음과 같습니다.
('INFO 2013-03-06 10:37:42,580 NetUtil.py:58 - Failed to connect to https://localhost:8440/cert/ca due to [Errno 111] Connection refused
INFO 2013-03-06 10:37:42,580 NetUtil.py:77 - Server at https://localhost:8440 is not reachable,

분석 : 인터넷에서이 오류에 대한 많은 의견이 있으며, 일부는 openssl을 업그레이드하고, 일부는 oracle JDK를 업그레이드하고, 일부는 수정하고 있지만 작성자는 아무 소용이 없습니다. 일반적으로이 오류는 ambari-agent를 수동으로 설치하거나 ambari의 일부 버전을 업그레이드 한 후에 발생합니다. 올바른 방법은 / etc / ambari-agent / conf에서 ambari-agent.ini 파일을 수정하는 것입니다. 다음 프로세스에 따라 확인할 수 있습니다.

1.这里的hostname一定是全部agent节点都填写主节点(ambari-server)节点的hostname
[server]
hostname=bdp01.szmg.com.cn
url_port=8440
secured_url_port=8441


2.如果无法解决,可尝试下面策略(增加protocol信息)
[security]
keysdir=/var/lib/ambari-agent/keys
server_crt=ca.crt
passphrase_env_var_name=AMBARI_PASSPHRASE
#下面这行是增加的
force_https_protocol=PROTOCOL_TLSv1_2

  • ambari-server가 시작되면 다양한 검사 데이터베이스 필드 유형이 일치하지 않거나 객체 유형이 잘못됨 등을보고합니다.

솔루션 : 데이터베이스 롤백

 

4. 데이터베이스 롤백 (롤백) + 서비스 다운 그레이드 (다운 그레이드)

위의 작업으로 여전히 업그레이드 실패 문제를 해결할 수없는 경우 마지막 만병 통치약은 모든 플러스 다운 그레이드를 롤백하는 것입니다. 이는 종종 위험한 작업으로 인해 발생합니다. 예를 들어 작성자가 업그레이드 실패를 경험하고 데이터베이스를 확인하지 않고 업그레이드하거나 ambari-server를 재설정 한 후 마지막으로 다음 프로세스를 통해 비즈니스 복구를 달성했습니다.

  1. ambri-server 및 에이전트가 모두 닫히고 ambari 메타베이스가 닫힙니다.
  2. ambari.properties 백업
  3. 모든 노드의 모든 ambari.repo는 이전 repo 파일에 포함됩니다.
  4. ambari-server, ambari-agent, grafana, ambari-metrics-collector, ambari-metrics-monitor, ambari-metrics-hadoop-sink를 포함한 모든 버전은 사전 업그레이드 버전으로 다운 그레이드됩니다. 모든 노드에 대해 하위 노드의 서비스를 다운 그레이드해야합니다. 다운 그레이드 후 버전을 확인하세요.
降级命令:
替换repo后 yum update
降级:
yum downgrade ambari-server
yum downgrade ambari-agent
yum downgrade grafana
yum downgrade ambari-metrics-monitor ambari-metrics-hadoop-sink ambari-metrics-collector
主节点:
[root@bdp01 package]# rpm -qa|grep ambari
ambari-metrics-collector-2.2.2.18-1.x86_64
ambari-metrics-monitor-2.2.2.18-1.x86_64
ambari-server-2.2.2.18-1.x86_64
ambari-metrics-hadoop-sink-2.2.2.18-1.x86_64
ambari-agent-2.2.2.18-1.x86_64
子节点:
[root@bdp07 conf]# rpm -qa |grep ambari
ambari-metrics-hadoop-sink-2.2.2.18-1.x86_64
ambari-metrics-monitor-2.2.2.18-1.x86_64
ambari-agent-2.2.2.18-1.x86_64
  1. ambari 메타베이스 다시 설치
1.删除postgresql数据库
yum -y remove postgresql postgresql-libs
2.重装
yum -y install postgresql
3.数据库init
sudo service postgresql initdb 
4.rollback
 CREATE ROLE ambari WITH LOGIN PASSWORD 'bigdata';
 CREATE ROLE mapred WITH LOGIN PASSWORD 'mapred';
 create database ambari;
 create database ambarirca;
 psql -U postgres ambari < /usr/local/ambari_bak/ambari_rec.sql
 psql -U postgres -d ambarirca < /usr/local/ambari_bak/ambarirca_rec.sql

 

추천

출처blog.csdn.net/weixin_36714575/article/details/84790281