Database

Verbinden von SAS Viya mit Cloudera Impala über ODBC

Simon 17 Aufrufe

Die Integration von Daten aus verschiedenen Quellen ist ein entscheidender Schritt in modernen Analyseumgebungen. Cloudera Impala-Tabellen können als Datenquelle zum Laden von Informationen in die Cloud Analytic Services (CAS) von SAS© Viya verwendet werden.

Im Gegensatz zum Hadoop-Connector, der JAR-Dateien verwendet, funktioniert der SAS© Data Connector to Impala (enthalten in der SAS©/ACCESS® to Impala-Schnittstelle auf SAS© Viya) über einen ODBC-Treiber.

Dieser Artikel beschreibt die technischen Schritte, die zur Installation, Konfiguration und Validierung der Verbindung zwischen SAS© Viya und Cloudera Impala unter Verwendung des UnixODBC-Treiber-Managers erforderlich sind.

Verbinden von SAS Viya mit Cloudera Impala über ODBC -

Voraussetzungen und Architektur

Um diese Verbindung herzustellen, muss der CAS-Server-Controller (UNIX/Linux-Umgebung) über eine gültige ODBC-Konfiguration verfügen, die den Impala ODBC-Treiber in Verbindung mit dem UnixODBC-Manager verwendet.

Schritt 1: Herunterladen der Komponenten

Zwei Hauptkomponenten sind erforderlich:

  1. UnixODBC Driver Manager: Open-Source-Software, die auf der offiziellen Website verfügbar ist. Überprüfen Sie im Installationshandbuch für den Cloudera ODBC-Treiber die kompatible Version.

  2. Cloudera Impala ODBC-Treiber: Zum Herunterladen von der Cloudera-Website.

Hinweis: Wenn Ihre Umgebung bereits über einen ODBC-Manager verfügt, können Sie diesen verwenden und einfach die Impala-Konfiguration zu den vorhandenen Dateien hinzufügen.

Schritt 2: Installation des UnixODBC-Managers

Melden Sie sich auf dem CAS-Server-Controller als root-Benutzer an, um die Software zu extrahieren und zu kompilieren. In diesem Beispiel erfolgt die Installation im Verzeichnis /opt.

Terminal (Bash)
user@sas:~$ $ gunzip unixODBC-2.3.4.tar.gz
user@sas:~$ $ tar -xvf unixODBC-2.3.4.tar

Konfigurieren und kompilieren Sie anschließend UnixODBC:

Terminal (Bash)
user@sas:~$ $ cd /opt/unixODBC-2.3.4
user@sas:~$ $ ./configure --prefix=/opt/unixODBC-2.3.4 --disable-gui --disable-drivers
user@sas:~$ $ make

Schritt 3: Installation des Impala ODBC-Treibers

Installieren Sie den RPM-Treiber mit einem YUM-Befehl. Standardmäßig erfolgt die Installation in /opt/cloudera/impalaodbc.

Terminal (Bash)
user@sas:~$ $ cd /opt
user@sas:~$ $ yum --nogpgcheck localinstall ClouderaImpalaODBC-2.5.35.1006-1.el7.x86

Schritt 4: Konfiguration der Verbindung zwischen Impala und UnixODBC

Nachdem beide Komponenten installiert sind, muss der UnixODBC-Treiber neu konfiguriert werden, um Impala ODBC in seinen Suchpfad aufzunehmen.

Terminal (Bash)
user@sas:~$ $ cd /opt/unixODBC-2.3.4
user@sas:~$ $ export LD_LIBRARY_PATH=/opt/unixODBC-2.3.4/lib
user@sas:~$ $ ./configure --prefix=/opt/cloudera/impalaodbc --with-unixodbc=/opt/unixODBC-2.3.4
user@sas:~$ $ make
user@sas:~$ $ make install

Schritt 5: Aktualisierung der Dateien odbc.ini und odbcinst.ini

Der Cloudera-Treiber stellt Beispieldateien .ini zur Verfügung, die sich in /opt/cloudera/impalaodbc/Setup/ befinden. Sie können diese Dateien direkt ändern oder an einen anderen Speicherort kopieren.

Der kritische Punkt ist die Aktualisierung der Datei odbc.ini mit den Informationen Ihres Hadoop-Clusters (Hostname und Port des Impala-Daemons).

Konfigurationsbeispiel für einen Cluster, bei dem der Daemon auf dem Standardport 21050 läuft:


/opt/cloudera/impalaodbc/Setup/RO
# Valeurs pour HOST, PORT, KrbFQDN, et KrbServiceName
HOST=sascdh01.race.sas.com
PORT=21050
Database=default
~
~

Schritt 6: Konfiguration der SAS© Viya-Umgebungsvariablen

Es gibt zwei Methoden, um die ODBC-Pfade für SAS© Viya zu deklarieren, je nachdem, ob Sie diese Konfiguration vor oder nach der Installation von Viya durchführen.

Fall A: Vor der Installation (Datei vars.yml) Fügen Sie die folgenden Zeilen im Abschnitt CAS_SETTINGS der Datei vars.yml hinzu:

vars.yml
ODBCINI=/opt/cloudera/impalaodbc/Setup/odbc.ini ODBCINST=/opt/cloudera/impalaodbc/Setup/odbcinst.ini CLOUDERAIMPALAODBC=/opt/cloudera/impalaodbc/Setup/odbc.ini LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/unixODBC-2.3.4:/opt/cloudera/impalaodbc/lib/64

Fall B: Nach der Installation (Datei cas.settings) Wenn SAS© Viya bereits installiert ist, bearbeiten Sie die Datei ~/sas©/viya/home/SASFoundation/cas.settings auf dem CAS-Controller manuell:

~/sas/viya/home/SASFoundation/cas.settingsRO
export ODBCINI=/opt/cloudera/impalaodbc/Setup/odbc.ini ;
export ODBCINST=/opt/cloudera/impalaodbc/Setup/odbcinst.ini;
export CLOUDERAIMPALAODBC=/opt/cloudera/impalaodbc/Setup/odbc.ini;
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/unixODBC-2.3.4:/opt/cloudera/impalaodbc/lib/64
export ODBCSYSINI=/opt/cloudera/impalaodbc/Setup/
~
~
Hinweis: Die Variable ODBCSYSINI zeigt auf den Ordner, der odbcinst.ini enthält.

Fall B: Nach der Installation (Datei cas.settings) Wenn SAS© Viya bereits installiert ist, bearbeiten Sie die Datei ~/sas©/viya/home/SASFoundation/cas.settings auf dem CAS-Controller manuell:

~/sas/viya/home/SASFoundation/cas.settingsRO
export ODBCINI=/opt/cloudera/impalaodbc/Setup/odbc.ini ;
export ODBCINST=/opt/cloudera/impalaodbc/Setup/odbcinst.ini;
export CLOUDERAIMPALAODBC=/opt/cloudera/impalaodbc/Setup/odbc.ini;
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/unixODBC-2.3.4:/opt/cloudera/impalaodbc/lib/64
export ODBCSYSINI=/opt/cloudera/impalaodbc/Setup/
~
~
Hinweis: Die Variable ODBCSYSINI zeigt auf den Ordner, der odbcinst.ini enthält.

Validierung der Verbindung

Um die Konfiguration zu validieren, führen Sie ein SAS©-Programm aus SAS© Studio aus. Das Ziel ist es, eine CASLIB vom Typ "impala" zu erstellen und eine Tabelle zu laden.

1cas mySession sessopts=(messagelevel=all);
2 
3caslib implib datasource=(srctype="impala",
4 username="hadoop",
5 server="sascdh01.race.sas.com",
6 database="default");
7 
8PROC CASUTIL;
9 load casdata="s_heart" incaslib="implib" outcaslib="implib" casout="s_heart" replace;
10 list tables incaslib="implib";
11QUIT;
12 
13cas mySession terminate;

Überprüfung im Protokoll (Log): Das Protokoll sollte die Verwendung des Datenkonnektors anzeigen: NOTE: Performing serial LoadTable action using SAS© Data Connector to Impala.

Wenn diese Meldung erscheint und die Tabelle erfolgreich geladen wird, ist Ihre Verbindung zwischen SAS© Viya und Cloudera Impala betriebsbereit.