使用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. 键盘录入6个int类型的数据存入数组arr中,将arr数组中的内容反转...

    一.有一道很有意思的数组操作相关编程题,闲来无事用JS解决了一下,问题描述如下: (1) 键盘录入6个int类型的数据存入数组arr中: (2) 将arr数组中的内容反转: (3) 将反转后的数组角标 ...

  2. Elasticsearch 5.x安装

    node1 elasticsearch node2 elasticsearch node3 elasticsearch 前期准备 JDK1.8 修改/etc/security/limits.conf ...

  3. jQuery中的easyui

    一,easyui---datagrid绑定数据的简单测试: 1.数据库中的UserInfo表及数据测试: 2.DAL层: //分页,模糊查询(pageNum-1)*pageSize+1----从第几条 ...

  4. Kaggle比赛总结

    做完 Kaggle 比赛已经快五个月了,今天来总结一下,为秋招做个准备. 题目要求:根据主办方提供的超过 4 天约 2 亿次的点击数据,建立预测模型预测用户是否会在点击移动应用广告后下载应用程序. 数 ...

  5. Jquery中数值求和及根据余数改变对应的数值样式

    Jquery内容 <script type="text/javascript"> $(function () { var num = 0; $(".box o ...

  6. javascript 时间倒计时效果

    <div id="divdown1"></div> <script language="javascript" type=&quo ...

  7. CentOS 7.x下升级Python版本到3.x系列(新老版本共存)

    由于python官方已宣布2.x系列即将停止支持,为了向前看,我们升级系统的python版本为3.x系列服务器系统为当前最新的CentOS 7.4 1.安装前查看当前系统下的python版本号 # p ...

  8. python+selenium实现自动抢票

    使用说明 程序运行开始,需要输入出发地,目的地,出发时间,乘客信息,车次:乘客信息和车次可以输入多个 刚刚开始学习爬虫,selenium仅仅是解放了双手,运行效率不是很高: 程序运行时会打开chrom ...

  9. vim 智能提示插件 YouCompleteMe安装

    按照网上的教程安装该软件,没有一篇是成功的(也有可能是没找对).自己从网上东拼西凑的,终于让自己的vim智能识别了. 1. 升级 vim: (ubuntu) sudo add-apt-reposito ...

  10. 20145209 2016-2017-2 《Java程序设计》第4周学习总结

    20145209 2016-2017-2 <Java程序设计>第4周学习总结 教材学习内容总结 继承是面向对象最显著的一个特性.继承是从已有的类中派生出新的类,新的类能吸收已有类的数据属性 ...