HIVE上的Spark-SQL插件

fdbelqdn  于 2022-11-05  发布在  Hive
关注(0)|答案(1)|浏览(192)

HIVE有一个元存储,HIVESERVER 2监听SQL请求;在元存储的帮助下,查询被执行,结果被传回。Thrift框架实际上被定制为HIVESERVER 2。这样,HIVE就充当了服务。通过编程语言,我们可以将HIVE用作数据库。
Spark-SQL和HIVE之间的关系是:
Spark-SQL只使用HIVE设置(HDFS文件系统、HIVE元存储、Hiveserver 2)。start-thriftserver2.sh(在spark安装中提供),我们应该给予hiveserver 2端口号和主机名。然后通过spark的直线,我们可以在HIVE中实际创建、删除和操作表。API可以是Spark-SQL或HIVE QL。如果我们创建表/删除表,如果我们登录到HIVE并进行检查(比如说通过HIVEbeeline或HIVECLI),它将是清晰可见的。
我的理解是Spark没有像HIVE那样的 meta存储设置,Spark只是利用HIVE设置,简单地通过Spark SQL API执行SQL。
我的理解是否正确?
然后我对bin/ www.example.com的用法有点困惑spark-sql.sh(它也存在于Spark安装中)。文档说通过这个SQL shell,我们可以像上面那样创建表(通过Thrift Server/Beeline)。现在我的问题是:那么spark是如何维护元数据信息的?
或者像第一种方法一样,我们可以让spark-sql CLI与HIVE进行通信(具体来说:HIVEServer 2)?如果是,我们如何做到这一点?
提前感谢!

oprakyz7

oprakyz71#

我的理解是Spark没有像HIVE那样的 meta存储设置
如果没有提供Hive元存储库,Spark将自己启动Derby服务器
我们是否可以使spark-sql CLI与HIVE通信
启动外部元存储进程,使用hive.metastore.urishive-site.xml文件添加到$SPARK_CONF_DIR,或使用SET SQL语句执行相同操作。
然后,spark-sql CLI应该能够查询配置单元表。在代码中,您需要在SparkSession上使用enableHiveSupport()方法。

相关问题