星火仓库vsHive仓库

rseugnpd  于 2021-06-27  发布在  Hive
关注(0)|答案(2)|浏览(625)

hortonworks数据平台hdp 3.0有spark 2.3和hive 3.1,默认情况下spark 2.3应用程序(pyspark/spark sql等)使用spark数据仓库,spark 2.3使用hive warehouse连接器与apache hive集成的方式不同。
集成apache hive和apache spark hive仓库连接器
我可以在hivemetastore(mysql)中看到2个默认数据库。一个指向Hive位置,另一个指向星火位置。

mysql> SELECT NAME, DB_LOCATION_URI FROM hive.DBS;
+--------+----------------------------------------------------------+
| NAME   | DB_LOCATION_URI                                          |
+--------+----------------------------------------------------------+
| default| hdfs://<hostname>:8020/warehouse/tablespace/managed/hive |
| default| hdfs://<hostname>:8020/apps/spark/warehouse              |
+--------+----------------------------------------------------------+

mysql>

有人能告诉我这两种仓库有什么区别吗,我找不到任何关于这方面的文章,我们可以用spark仓库而不是hive(我知道spark仓库不能通过hive访问,或者有什么办法?)。这2个(spark仓库和hive仓库)的优缺点是什么?

tjrkku2a

tjrkku2a1#

在hdp3.1.4中,您可以在spark仓库和hive仓库之间切换。您只需要在ambari:services->spark2->configs->advanced spark2 hive site override中配置它
违约:

metastore.catalog.default = spark

更改为:

metastore.catalog.default = hive


在ambari中重新启动spark2,您可以通过pyspark访问hive,方法是:

spark.sql('show databases').show()
5m1hhzi4

5m1hhzi42#

从hdp3.0开始,apachehive和apachespark的目录是分开的,它们使用自己的目录;也就是说,它们是互斥的—apache hive目录只能由apache hive或此库访问,而apache spark目录只能由apache spark中的现有API访问。换句话说,一些特性,如acid表或apache ranger with apache hive表,只能通过apachespark中的这个库获得。配置单元中的那些表不应该直接在apachesparkapi中访问。
默认情况下,spark使用spark目录,下面的文章将解释如何通过spark访问apachehive表。
集成apache-hive和apache-spark-hive-warehouse连接器
github链接到一些其他详细信息:
HiveWarehouse连接器-github

相关问题