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仓库)的优缺点是什么?
2条答案
按热度按时间tjrkku2a1#
在hdp3.1.4中,您可以在spark仓库和hive仓库之间切换。您只需要在ambari:services->spark2->configs->advanced spark2 hive site override中配置它
违约:
更改为:
在ambari中重新启动spark2,您可以通过pyspark访问hive,方法是:
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