Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache spark 星火仓库VS蜂巢仓库_Apache Spark_Hive_Apache Spark Sql_Hortonworks Data Platform - Fatal编程技术网

Apache spark 星火仓库VS蜂巢仓库

Apache spark 星火仓库VS蜂巢仓库,apache-spark,hive,apache-spark-sql,hortonworks-data-platform,Apache Spark,Hive,Apache Spark Sql,Hortonworks Data Platform,Hortonworks数据平台HDP 3.0有spark 2.3和Hive 3.1,默认情况下,spark 2.3应用程序(pyspark/spark sql等)使用spark数据仓库,spark 2.3使用Hive warehouse连接器与Apache Hive集成的方式不同 我可以在Hive metastore(MySQL)中看到2个默认数据库。一个指向蜂巢位置,另一个指向火花位置 mysql> SELECT NAME, DB_LOCATION_URI FROM hive.DBS;

Hortonworks数据平台HDP 3.0有spark 2.3和Hive 3.1,默认情况下,spark 2.3应用程序(pyspark/spark sql等)使用spark数据仓库,spark 2.3使用Hive warehouse连接器与Apache Hive集成的方式不同

我可以在Hive metastore(MySQL)中看到2个默认数据库。一个指向蜂巢位置,另一个指向火花位置

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>
mysql>从hive.DBS中选择NAME、DB\u LOCATION\u URI;
+--------+----------------------------------------------------------+
|名称|数据库位置| URI|
+--------+----------------------------------------------------------+
|默认值| hdfs://:8020/仓库/表空间/托管/配置单元|
|默认值| hdfs://:8020/apps/spark/warehouse|
+--------+----------------------------------------------------------+
mysql>

有人能解释一下这两种仓库之间的区别吗?我找不到任何关于这方面的文章,我们可以用spark warehouse代替Hive吗(我知道spark warehouse不能通过Hive访问,或者有什么办法?)。这两种(spark warehouse和hive warehouse)的优缺点是什么?

从HDP 3.0开始,Apache hive和Apache spark的目录是分开的,它们使用自己的目录;也就是说,它们是互斥的—Apache配置单元目录只能由Apache配置单元或此库访问,而Apache Spark目录只能由Apache Spark中的现有API访问。换句话说,某些特性,如ACID表或带有Apache配置单元表的Apache Ranger,只能通过ApacheSpark中的该库获得。配置单元中的这些表不应该在ApacheSparkAPI中直接访问

默认情况下,spark使用spark目录,下面的文章将解释如何通过spark访问ApacheHive表

Github链接到一些其他详细信息:


在HDP 3.1.4中,您可以在Spark Warehouse和Hive Warehouse之间切换。 您只需在Ambari中进行配置: 服务->Spark2->配置->高级Spark2配置单元站点覆盖

默认值:

metastore.catalog.default = spark
将其更改为:

metastore.catalog.default = hive

在Ambari中重新启动Spark2,您可以通过以下方式通过Pyspark访问Hive:

spark.sql('show databases').show()
答复如下: