星火仓库vsHive仓库

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

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位置,另一个指向星火位置。

  1. mysql> SELECT NAME, DB_LOCATION_URI FROM hive.DBS;
  2. +--------+----------------------------------------------------------+
  3. | NAME | DB_LOCATION_URI |
  4. +--------+----------------------------------------------------------+
  5. | default| hdfs://<hostname>:8020/warehouse/tablespace/managed/hive |
  6. | default| hdfs://<hostname>:8020/apps/spark/warehouse |
  7. +--------+----------------------------------------------------------+
  8. mysql>

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

tjrkku2a

tjrkku2a1#

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

  1. metastore.catalog.default = spark

更改为:

  1. metastore.catalog.default = hive


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

  1. 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

相关问题