0

Ich möchte ein einfaches Shell-Skript schreiben, die überprüfen sollte, ob ein Hadoop-Client installiert ist, und welche Art (CDH, HDP oder generische). Später muss dieses Skript auch die entsprechende Version drucken. Kann mir jemand einen Vorschlag für das gleiche geben.Shell-Skript zu überprüfen Hadoop-Client

Antwort

0

Angenommen, Ihr Pfad stimmt und Sie verwenden Standardinstallationen, müssen Sie nur die Hadoop-Version ausführen.

if /usr/bin/which hadoop; then 
    if [ -d /usr/hdp ]; then 
    echo "HDP" 
    elif hadoop version | grep cdh > /dev/null; then 
    echo "CDH" 
    else 
    echo "generic" 
    fi 
else 
    echo "no hadoop found" 
fi 
+0

aber das wird mir nicht bestimmte Versionen von CDH/HDP oder generische – HiveRLearner

+0

hadoop Version sagt die Version von hadoop zurückgegeben. – tk421

0

die andere Antwort Ändern etwas robuster zu sein, indem die Ausgabe und das Hinzufügen von Unterstützung für die 3 Haupt hadoop Plattformen (Hortonworks Data Platform, IBM Open Platform und Cloudera Data Hub) Reinigung erhalten wir das folgende Skript :

#!/usr/bin/env bash 

CDH_HOME=/opt/cloudera/parcels 
HDP_HOME=/usr/hdp 
IOP_HOME=/usr/iop 

if /usr/bin/which hadoop > /dev/null 2>&1; then 
    if [ -d $HDP_HOME ]; then 
    platform="HDP" 
    version=`hdp-select status hadoop-client | awk -F "-" '{print $3}'` 
    elif [ -d $IOP_HOME ]; then 
    platform="IOP" 
    version=`iop-select status hadoop-client | awk -F "-" '{print $3}'` 
    elif [ -d $CDH_HOME ]; then 
    platform="CDH" 
    version=`readlink $CDH_HOME/CDH` 
    else 
    platform="Other" 
    version="Unknown" 
    fi 
    echo "Platform: $platform" 
    echo "Version: $version" 
else 
    echo "No hadoop found" 
fi 

Anmerkung: (. dh HDP-select) die Plattform wählen Dienstprogramm können Sie Informationen über alle installierten Dienste auf dem gegebenen Knoten geben. Der Status wird als None angegeben, wenn er nicht installiert ist.

Verwandte Themen