When starting Hadoop components on the Linux virtual machines on my laptop, I periodically get failures at startup. The culprit? A corrupt yum database. I’ve been running Hortonworks 2.0 recently and have used the Ambari GUI to start services. The failure I encounter looks like this:
notice: Finished catalog run in 0.65 seconds err: /Stage/Hdp/Hdp::Lzo::Package/Hdp::Package[lzo 64]/Hdp::Package::Process_pkg[lzo 64]/Package[lzo]/ensure: change from absent to present failed: Execution of '/usr/bin/yum -d 0 -e 0 -y install lzo' returned 1: rpmdb: Thread/process 3570/140380093466368 failed: Thread died in Berkeley DB library error: db3 error(-30974) from dbenv->failchk: DB_RUNRECOVERY: Fatal error, run database recovery error: cannot open Packages index using db3 - (-30974) error: cannot open Packages database in /var/lib/rpm CRITICAL:yum.main: Error: rpmdb open failed
The following series of commands straighten out the situation I typically encounter.
# rm -f /var/lib/rpm/__db* # db_verify /var/lib/rpm/Packages # rpm --rebuilddb # yum clean all
The command yum clean all will not work until the first 3 commands are run, should the case be the DB_RUNRECOVERY error show above.