【发布时间】:2018-03-30 08:12:25
【问题描述】:
我使用的是 HDP-2.6.0.3,但我需要 Zeppelin 0.8,所以我将它安装为独立服务。当我跑步时:
%sql
show tables
当我运行 Spark2 SQL 命令时,我什么也没得到,而且我得到“找不到表”。表可以在作为 HDP 一部分的 0.7 Zeppelin 中看到。
谁能告诉我我错过了什么,让 Zeppelin/Spark 看到 Hive?
我创建zep0.8的步骤如下:
maven clean package -DskipTests -Pspark-2.1 -Phadoop-2.7-Dhadoop.version=2.7.3 -Pyarn -Ppyspark -Psparkr -Pr -Pscala-2.11
将 zeppelin-site.xml 和 shiro.ini 从 /usr/hdp/2.6.0.3-8/zeppelin/conf 复制到 /home/ed/zeppelin/conf。
创建了 /home/ed/zeppelin/conf/zeppeli-env.sh 我在其中放置了以下内容:
export JAVA_HOME=/usr/jdk64/jdk1.8.0_112
export HADOOP_CONF_DIR=/etc/hadoop/conf
export ZEPPELIN_JAVA_OPTS="-Dhdp.version=2.6.0.3-8"
复制 /etc/hive/conf/hive-site.xml 到 /home/ed/zeppelin/conf
编辑: 我也试过:
import org.apache.spark.sql.SparkSession
val spark = SparkSession
.builder()
.appName("interfacing spark sql to hive metastore without configuration file")
.config("hive.metastore.uris", "thrift://s2.royble.co.uk:9083") // replace with your hivemetastore service's thrift url
.config("url", "jdbc:hive2://s2.royble.co.uk:10000/default")
.config("UID", "admin")
.config("PWD", "admin")
.config("driver", "org.apache.hive.jdbc.HiveDriver")
.enableHiveSupport() // don't forget to enable hive support
.getOrCreate()
同样的结果,并且:
import java.sql.{DriverManager, Connection, Statement, ResultSet}
val url = "jdbc:hive2://"
val driver = "org.apache.hive.jdbc.HiveDriver"
val user = "admin"
val password = "admin"
Class.forName(driver).newInstance
val conn: Connection = DriverManager.getConnection(url, user, password)
给出:
java.lang.RuntimeException: Unable to instantiate org.apache.hadoop.hive.ql.metadata.SessionHiveMetaStoreClient
ERROR XSDB6: Another instance of Derby may have already booted the database /home/ed/metastore_db
修正错误:
val url = "jdbc:hive2://s2.royble.co.uk:10000"
但仍然没有表格:(
【问题讨论】:
标签: apache-spark hive hortonworks-data-platform apache-zeppelin