1.hive的主要特性:
spark不支持hive的桶(bucket)
2.深奥的hive特性
(1)不支持union数据类型(注意:是数据类型,不是sql语法中的union)
(2)不支持unique join
(3)不支持列统计信息收集
3.Hive Input/Output Formats
不支持hadoop文件归档(hadoop archive)
4.Hive的优化特性
(1)不支持hive的索引
(2)对于join和group by操作,不能自动的决定reduce的数量。可以通过设置SET spark.sql.shuffle.partitions=[num_tasks]来设置shuffle的并行度(对于spark-sql来说,默认是shuffle并行度是200,对于其他spark程序来说,默认是占有的executor的cpu的数量)
(3)查询元数据信息必须启动executor,而不像hive那样不需要启动计算资源
(4)不支持hive的数据倾斜(Skew data flag)标志
(5)不支持hive的STREAMTABLE join的标志
(6)对于查询结果不支持小文件合并
5.经过测试发现,spark不支持 insert overwrite/into directory 语法。
1.hive的主要特性:    spark不支持hive的桶(bucket)2.深奥的hive特性   (1)不支持union数据类型(注意:是数据类型,不是sql语法中的union)   (2)不支持unique join        (3)不支持列统计信息收集3.Hive Input/Output Formats   不支持hadoop文件归档(hadoop ar Quick sql SQL 查询产品,可用于特定的数据存储查询或多个数据存储相关查询。 它支持关系数据库,非关系数据库,甚至不支持 SQL 的数据存储(例如Elasticsearch,Druid)。 另外, SQL 查询可以联接或合并Quick sql 中多个数据存储中的数据。 例如,您可以在一种 情况 下执行统一 SQL 查询,其中一部分数据存储在Elasticsearch上,而另一部分数据存储在 Hive 上。 最重要的是,Q SQL 不依赖于任何中间计算引擎,用户只需要关注数据和统一 SQL 语法 即可完成统计和分析。 架构图可帮助您更轻松地访问Quick sql 。 Q SQL 体系结构包括三层: 解析层:用于解析,验证,优化 SQL 语句,拆分混合 SQL 并最终生成查询计划; 计算层:用于将查询计划路由到特定执行计划,然后解释为给定存储或引擎的可执行代码(例如Elasticsearch JSON查询或 Hive HQL); 存储层:用于准备数据提取和存储; 在大多数 情况 下,我们希望使用一种语言进行数据分析,并且不想考虑与数据分析无关的事物,Quick sql 就是为此而生的。 Quick sql 的目标是
错误一:Unable to locate hive jars to connect to metastore. Please set spark . sql . hive .metastore.jars. 解决方案:将JDK11切换为JDK8,问题解决。JDK11和 Spark / Hive 应该存在版本兼容性问题 错误二:连接成功后只显示一个default数据库 解决方案:把 HIVE _HOME/conf目录下的 hive -site.xml文件拷贝到本地IDEA的maven项目的resources目录下
关于在zepelin中使用 spark sql 连接 hive ,只能查询到default数据库,由于我的 spark 已经整合好了 hive ,最后找到其原因,发现是有一个 spark 集群的节点,没有配好 hive ,将 hive hive -site.xml文件放到此节点的conf目录下,将jdbc的连接驱动放到此节点的jars目录下,重启zepelin,测试 hive 连接,发现可以查询到 hive 数据中的内容。 关于 spark 整合 hive 可以参考我的上篇博文: https://blog.csdn.net/lucklydog123/a
文章目录Compatibility with Apache Hive Deploying in Existing Hive WarehousesSupported Hive FeaturesUnsupported Hive FunctionalityIncompatible Hive UDF Compatibility with Apache Hive Spark SQL 旨在与 Hive Metastore、SerDes 和 UDF 兼容。 目前 Hive SerDes 和 UDF 基于 Hive 1.2.
<scala.version>2.11.8</scala.version> < spark .version>2.2.0</ spark .version> <scala.compat.version>2.11</scala.compat.version> import org.apache. spark . sql .functions._ val windowSpec = Window.partitionBy($"site_id",$"pxSessionId").orderBy($"timeMs").rowsBetween(Long.MinValue,Long.MaxValue) res.withColumn("pageVie..
将$ HIVE _HOME/lib下的 spark - hive _2.11-2.4.2.jar与 spark - hive -thriftserver_2.11-2.4.2.jar添加到project中
最近使用 spark 兼容 hive 进行开发,所以静下心来简易的看了一遍。个人感觉有关与技术学习去官网是最正确的选择。所以我从官方网站入手开始将,其他详细内容我不做过多介绍,这里直接开门见山。 官方网站有如下两点很重要: Spark SQL also supports reading and writing data stored in Apache Hive . However, since
Exception in thread "main" java.lang.NoSuchMethodError: org.apache.hadoop. hive .ql.exec.Utilities.clearWorkMap()V at org.apache. spark . sql . hive .client.ClientWrapper.<init>(ClientWrapper.scala:204) at org.apache. spark . sql . hive .client.IsolatedClientLoader.createClient(IsolatedClientLoader.scala:271) at org.apache. spark . sql . hive . Hive Utils$.newClientForMetadata( Hive Utils.scala:362) at org.apache. spark . sql . hive . Hive Utils$.newClientForMetadata( Hive Utils.scala:266) at org.apache. spark . sql . hive . Hive SharedState.metadata Hive $lzycompute( Hive SharedState.scala:39) at org.apache. spark . sql . hive . Hive SharedState.metadata Hive ( Hive SharedState.scala:38) at org.apache. spark . sql . hive . Hive SharedState.externalCatalog$lzycompute( Hive SharedState.scala:46) at org.apache. spark . sql . hive . Hive SharedState.externalCatalog( Hive SharedState.scala:45) at org.apache. spark . sql . hive . Hive SessionState.catalog$lzycompute( Hive SessionState.scala:50) at org.apache. spark . sql . hive . Hive SessionState.catalog( Hive SessionState.scala:48) at org.apache. spark . sql . hive . Hive SessionState$$anon$1.<init>( Hive SessionState.scala:63) at org.apache. spark . sql . hive . Hive SessionState.analyzer$lzycompute( Hive SessionState.scala:63) at org.apache. spark . sql . hive . Hive SessionState.analyzer( Hive SessionState.scala:62) at org.apache. spark . sql .execution.QueryExecution.assertAnalyzed(QueryExecution.scala:49) at org.apache. spark . sql .Dataset$.ofRows(Dataset.scala:64) at org.apache. spark . sql . Spark Session. sql ( Spark Session.scala:582) 解决方法: 该问题是由于 Hive 版本与 Spark 版本 不兼容 导致的。解决方法如下: 1. 确认 Hive 版本与 Spark 版本是否兼容,可以在 Spark 官网查看版本兼容性。 2. 如果版本 不兼容 ,可以升级或降级 Hive 版本,或者升级或降级 Spark 版本。 3. 如果版本兼容,可以尝试重新启动 Spark Hive 服务,或者重新编译 Spark Hive 。 4. 如果以上方法都无法解决问题,可以尝试使用其他的 SQL 操作 Hive 的工具,如Beeline等。 总之,要保证 Spark Hive 版本兼容,并且正确配置 Spark Hive 的环境,才能避免出现该问题。 hive报错java.io.IOException: Could not find status of job:job_1470047186803_131111 daydayup-2016 wy1071593930: 关闭退出hive,重启hadoop后可行了 hive报错java.io.IOException: Could not find status of job:job_1470047186803_131111 daydayup-2016 wy1071593930: 我的也不行 hive on tez安装