使用spark引擎查询hive有以下几种方式:
1>使用spark-sql(spark sql cli)
2>使用spark-thrift提交查询sql
3>使用hive on spark(即hive本身设置执行引擎为spark)
针对第一种情况:
1>ambari 已经支持,不需要特殊配置;
2>cdh不支持spark sql cli,原因是cdh自带的spark,spark-sql和spark-R是阉割版本的,如果需要使用
spark sql cli,需要下载原生的编译好的spark包替换cdh自带的包

针对第二种情况:

1>cdh 上手动启动/opt/cloudera/parcels/SPARK2-2.0.0.cloudera.beta1-1.cdh5.7.0.p0.108015/lib/spark2/sbin/start-thriftserver.sh 
然后通过beeline连接即可(由于hive-site.xml配置的和hive thrift一样,没有单独配置,所以应在hiveserver2之外的其他节点启动start-thriftserver.sh,这个服务看看能不能添加到spark2管理界面中 ),目前已经调试通过
注:131上spark/conf/yarn-conf/hive-site.xml这个文件不存在,手动拷贝的,50上是有的
2>ambari支持,且sparkthrift服务也启动正常,但是在通过beeline连接的时候报错:
原因是:自启动的hive默认配置不完全,需要手动在spark的配置下找到hive-site的配置添加缺少项;

hive.server2.enable.doAs=true
hive.server2.thrift.port=10016与hive的区别开
hive.server2.transport.mode=binary
spark.yarn.queue=ada.spark
hive.metastore.warehouse.dir=/apps/hive/warehouse,否则找不到会使用执行命令所在目录作为仓库

针对第三种情况:hive on spark要求hive和spark要严格的版本匹配,目前无论是ambari或者cm都不能保证这两个组件版本是匹配的,单独升级某个组件有可能存在隐患,目前还不支持

 

hive on spark:
目前已经在cm上测试通过,具体配置方法如下:
1.将cm上所有节点的hive升级到hive2.2,便于使用cm自带的spark1.6.x;
2.修改所有节点/opt/cloudera/parcels/CDH/lib/hive/bin/hive脚本,在spark_home环境变量下添加如下代码:
CLASSPATH=${CLASSPATH}:${SPARK_HOME}/lib/spark-assembly.jar,重启hive所有的服务;

3.使用 beeline -u jdbc:hive2://10.8.4.46:10000 -n root或者hive命令直接登录,登陆进去之后,执行:

set hive.execution.engine=spark;
set spark.master=yarn-cluster;
set mapreduce.job.queuename=ada.spark;

4.验证是否设置成功:

在hive库中随便找一张有数据的表,执行select count(*) from xxxx(表名),能成功查询即可验证设置成功

设置过程中遇到的问题及解决办法:
1.org.apache.hive.com.esotericsoftware.kryo.KryoException:Encountered unregistered class ID:109
错误原因:
这个问题主要是由于hive不同版本的包导致的,hive 服务启动时会加载/opt/cloudera/parcels/CDH下jars目录下的包,这个目录中残留的有hive1.1版本的包,所以冲突了
解决方法:
删掉hive servers服务和yarn服务所在节点的冲突包,即:
删除yarn节点和hive所在节点下/opt/cloudera/parcels/CDH下jars中有hive1.1的包

2.任务启动后不能提交的问题:
Starting Spark Job = b6f7dd9e-3ffc-4c1c-99a3-7fe4f99c25ac
Job hasn't been submitted after 61s. Aborting it.
Possible reasons include network issues, errors in remote driver or the cluster has no available resources, etc.
Please check YARN or Spark driver's logs for further information.
Status: SENT
FAILED: Execution Error, return code 2 from org.apache.hadoop.hive.ql.exec.spark.SparkTask?
错误原因:这个问题主要是默认设置为spark-client,hive服务启动时不知道什么原因没有加载到yarn集群的信息;
解决方法:修改将spark.master=spark-client改为spark.master=yarn-cluster,问题得到解决;

3.snappy错误:
java.lang.UnsatisfiedLinkError?: org.xerial.snappy.SnappyNative?.maxCompressedLength(I)I

at org.xerial.snappy.SnappyNative?.maxCompressedLength(Native Method)

错误原因:spark-assembly已经包含了snappy类,版本与集群提供的不一致;
解决方法:

1.在46上找到/lib/spark/conf/classpath.txt ,打开文件删除snappy相关依赖包,保存;
2.在yarn节点和hive所在节点下执行:

mv /opt/cloudera/parcels/CDH-5.8.2-1.cdh5.8.2.p0.3/lib/spark/conf/classpath.txt /opt/cloudera/parcels/CDH-5.8.2-1.cdh5.8.2.p0.3/lib/spark/conf/classpath.txt_bak;scp 10.8.4.46:/opt/cloudera/parcels/CDH-5.8.2-1.cdh5.8.2.p0.3/lib/spark/conf/classpath.txt /opt/cloudera/parcels/CDH-5.8.2-1.cdh5.8.2.p0.3/lib/spark/conf

参考链接:
​https://cwiki.apache.org//confluence/display/Hive/Hive+on+Spark:+Getting+Started
​https://blog.csdn.net/pucao_cug/article/category/6941532
​http://mirror.bit.edu.cn/apache/spark/

hive使用spark引擎的几种情况的更多相关文章

  1. Hive on Spark安装配置详解(都是坑啊)

    个人主页:http://www.linbingdong.com 简书地址:http://www.jianshu.com/p/a7f75b868568 简介 本文主要记录如何安装配置Hive on Sp ...

  2. 伪分布式Spark + Hive on Spark搭建

    Spark大数据平台有使用一段时间了,但大部分都是用于实验而搭建起来用的,搭建过Spark完全分布式,也搭建过用于测试的伪分布式.现在是写一遍随笔,记录一下曾经搭建过的环境,免得以后自己忘记了.也给和 ...

  3. Hive数据分析——Spark是一种基于rdd(弹性数据集)的内存分布式并行处理框架,比于Hadoop将大量的中间结果写入HDFS,Spark避免了中间结果的持久化

    转自:http://blog.csdn.net/wh_springer/article/details/51842496 近十年来,随着Hadoop生态系统的不断完善,Hadoop早已成为大数据事实上 ...

  4. 数仓Hive和分布式计算引擎Spark多整合方式实战和调优方向

    @ 目录 概述 Spark on Hive Hive on Spark 概述 编译Spark源码 配置 调优思路 编程方向 分组聚合优化 join优化 数据倾斜 任务并行度 小文件合并 CBO 谓词下 ...

  5. 大数据技术生态圈形象比喻(Hadoop、Hive、Spark 关系)

    [摘要] 知乎上一篇很不错的科普文章,介绍大数据技术生态圈(Hadoop.Hive.Spark )的关系. 链接地址:https://www.zhihu.com/question/27974418 [ ...

  6. SparkSQL与Hive on Spark的比较

    简要介绍了SparkSQL与Hive on Spark的区别与联系 一.关于Spark 简介 在Hadoop的整个生态系统中,Spark和MapReduce在同一个层级,即主要解决分布式计算框架的问题 ...

  7. Spark SQL与Hive on Spark的比较

    简要介绍了SparkSQL与Hive on Spark的区别与联系 一.关于Spark 简介 在Hadoop的整个生态系统中,Spark和MapReduce在同一个层级,即主要解决分布式计算框架的问题 ...

  8. 一文看懂大数据的技术生态圈,Hadoop,hive,spark都有了

    一文看懂大数据的技术生态圈,Hadoop,hive,spark都有了 转载: 大数据本身是个很宽泛的概念,Hadoop生态圈(或者泛生态圈)基本上都是为了处理超过单机尺度的数据处理而诞生的.你可以把它 ...

  9. Hive、Spark SQL、Impala比较

    Hive.Spark SQL.Impala比较        Hive.Spark SQL和Impala三种分布式SQL查询引擎都是SQL-on-Hadoop解决方案,但又各有特点.前面已经讨论了Hi ...

随机推荐

  1. LeetCode18.四数之和 JavaScript

    给定一个包含 n 个整数的数组 nums 和一个目标值 target,判断 nums 中是否存在四个元素 a,b,c 和 d ,使得 a + b + c + d 的值与 target 相等?找出所有满 ...

  2. css百分比问题——`top`、`left`、'translate'的百分比参照谁?

    比如 top.left.transform属性的translate方法,他们的百分比都是相较谁而言的? top.left是基于父元素的: .parent { position: relative; b ...

  3. 深入浅出爬虫之道: Python、Golang与GraphQuery的对比

    深入浅出爬虫之道: Python.Golang与GraphQuery的对比 本文将分别使用 Python ,Golang 以及 GraphQuery 来解析某网站的 素材详情页面 ,这个页面的特色是具 ...

  4. SQL 一

    1.所有表都必须在模式中.2.SYS模式不是默认模式3.虽然有概念用户PUBLIC,但它根本没有模式.4.索引有自己的名称空间,存储过程.同义词.表和视图都在同一名称空间里.5.堆是可变长度行的表,这 ...

  5. iOS开发学习资源

    最近想写点关于iOS开发的总结和心得.虽然网上资源一大堆,质量参差不齐,还是推荐一点干货吧! https://www.objc.io/issues/  这个网站的文章质量很高,很多干货,可惜今年已经停 ...

  6. 将jquery.qqFace.js表情转换成微信的字符码

    jquery.qqFace.js使用方法 引用 <script src="~/Content/qqFace/js/jquery.qqFace.js?v=3"></ ...

  7. 《黑客攻防技术宝典Web实战篇@第2版》读书笔记1:了解Web应用程序

    读书笔记第一部分对应原书的第一章,主要介绍了Web应用程序的发展,功能,安全状况. Web应用程序的发展历程 早期的万维网仅由Web站点构成,只是包含静态文档的信息库,随后人们发明了Web浏览器用来检 ...

  8. itertools.groupby()分组字典列表

    ## itertools.groupby()分组字典列表数据 from operator import itemgetter from itertools import groupby student ...

  9. Oracle之单表查询及常用函数

    1.语法: select 字段列表 from 表名 [where 查询条件] [group by 分组] [having 分组条件] [order by 排序] select * 代表查询所有的字段 ...

  10. 钓鱼 洛谷p1717

    题目描述 话说发源于小朋友精心设计的游戏被电脑组的童鞋们藐杀之后非常不爽,为了表示安慰和鼓励,VIP999决定请他吃一次“年年大丰收”,为了表示诚意,他还决定亲自去钓鱼,但是,因为还要准备2013NO ...