nicht abrufen Ich versuche, Datenbanken oder Tabellendetails von Hive von spark mit HiveContext zu erhalten. Aber ich bin nicht in der Lage zu bestehenden Hive-Datenbank zu zeigen, wie unten dargestellt: Spark-Version: 2.2.0 Hive Version: 2.3.0Konnte vorhandene Hive-Tabellen von HiveContext mit Spark
unter Skript verwenden Spark Shell eine Verbindung zu bestehendem Hive Server (127.0.0.1 unten verwendet meine Maschine IP-Adresse) ist:
scala> val hc = new org.apache.spark.sql.hive.HiveContext(sc)
warning: there was one deprecation warning; re-run with -deprecation for details
hc: org.apache.spark.sql.hive.HiveContext = [email protected]
scala> hc.setConf("hive.metastore.uris","thrift://127.0.0.1:9083")
scala> val df = hc.sql("show databases")
df: org.apache.spark.sql.DataFrame = [databaseName: string]
scala> df.show
+------------+
|databaseName|
+------------+
| default|
+------------+
scala> val dfTables = hc.sql("show tables");
dfTables: org.apache.spark.sql.DataFrame = [database: string, tableName: string ... 1 more field]
scala> dfTables.show
+--------+---------+-----------+
|database|tableName|isTemporary|
+--------+---------+-----------+
+--------+---------+-----------+
Wie oben gezeigt, vermag ich nicht zur Verfügung die bestehenden Hive-Datenbanken und Tabellen zu erhalten. HiveContext verweist auf eine neue Datenbank (Standard) und keine Tabellen verfügbar. Unter meinen hive db aufgeführt sind:
hive> show databases;
OK
default
mydbbackup
Time taken: 7.593 seconds, Fetched: 2 row(s)
hive> use mydbbackup;
OK
Time taken: 0.021 seconds
hive> show tables;
OK
customers
customerspart
customerspart1
Time taken: 0.194 seconds, Fetched: 3 row(s)
hive>
Unten ist mein hive-site.xml:
<configuration>
<property>
<name>javax.jdo.option.ConnectionURL</name>
<value>jdbc:derby:;databaseName=/home/hduser/apache-hive-2.3.0-bin/metastore_db;create=true</value>
<description>
JDBC connect string for a JDBC metastore.
To use SSL to encrypt/authenticate the connection, provide database-specific SSL flag in the connection URL.
For example, jdbc:postgresql://myhost/db?ssl=true for postgres database.
</description>
</property>
<property>
<name>hive.metastore.warehouse.dir</name>
<value>/user/hive/warehouse</value>
<description>location of default database for the warehouse</description>
</property>
<property>
<name>hive.metastore.uris</name>
<value/>
<description>Thrift URI for the remote metastore. Used by metastore client to connect to remote metastore.</description>
</property>
<property>
<name>javax.jdo.option.ConnectionDriverName</name>
<value>org.apache.derby.jdbc.EmbeddedDriver</value>
<description>Driver class name for a JDBC metastore</description>
</property>
<property>
<name>javax.jdo.PersistenceManagerFactoryClass</name>
<value>org.datanucleus.api.jdo.JDOPersistenceManagerFactory</value>
<description>class implementing the jdo persistence</description>
</property>
</configuration>
Unten ist mein Funke conf-Verzeichnis:
total 40
drwxr-xr-x 2 root root 4096 Nov 12 20:22 ./
drwxr-xr-x 12 root root 4096 Nov 9 22:57 ../
-rw-r--r-- 1 root root 996 Nov 9 22:57 docker.properties.template
-rw-r--r-- 1 root root 1105 Nov 9 22:57 fairscheduler.xml.template
-rw-r--r-- 1 root root 2025 Nov 9 22:57 log4j.properties.template
-rw-r--r-- 1 root root 7313 Nov 9 22:57 metrics.properties.template
-rw-r--r-- 1 root root 865 Nov 9 22:57 slaves.template
-rw-r--r-- 1 root root 1292 Nov 9 22:57 spark-defaults.conf.template
-rwxr-xr-x 1 root root 3699 Nov 9 22:57 spark-env.sh.template*
Muss ich ändern Alles, was auf einen vorhandenen Hive-Server verweist, anstatt neu zu erstellen. Bitte hilf mir dabei.
für die Sie gemeinsam Metastore zwischen hive festlegen müssen und Funken –
Sie brauchen nicht explizit einen Bienenstock contect zu erstellen. Sie können die Spark-Sitzung, die von spark2 erstellt wird, direkt verwenden, um Ihre Abfragen in Bezug auf die Struktur auszuführen. Verwenden Sie scala> spark.sql ("show databases") res0: org.apache.spark.sql.DataFrame = [datenbankname: string] –
@AmitKumar Ich habe versucht, mit dem gleichen wie Sie vorgeschlagen, aber zeigt nur Standard-Datenbank. Könntest du mir helfen, den üblichen Metastore zwischen Bienenstock und Funken zu konfigurieren? – Chaithu