使用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. Gradle Goodness: Task Output Annotations Create Directory Automatically

    Gradle Goodness: Task Output Annotations Create Directory Automatically One of the great features of ...

  2. php新闻静态化方法

    $view=file_get_contents('./a.tpl'); //新闻详情页模板模式,需要数据位置定义标签如{title},{content} $php_content=str_replac ...

  3. Python 学习笔记(十一)Python语句(三)

    While 循环语句 用于循环执行程序,即在某条件下,循环执行某段程序,以处理需要重复处理的相同任务. 语法: while 判断条件: 执行语句…… 执行语句可以是单个语句或语句块.判断条件可以是任何 ...

  4. 【centOS7.3 彻底卸载MySQL】

    废话不多说,直接正面刚. 1.删除MySQL yum remove mysql mysql-server mysql-libs mysql-server; 执行后继续查找相关文件 find / -na ...

  5. mac appstore应用下载失败,不能更新等等问题,都可以解决

    打开终端,输入以下命令 open `getconf DARWIN_USER_CACHE_DIR`/com.apple.appstore 进入目录,删除 com.apple.appstore  重启系 ...

  6. 4 二维数组中的查找 JavaScript

    题目描述 在一个二维数组中(每个一维数组的长度相同),每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序.请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数 ...

  7. OAuth2.0 与 oauth2-server 库的使用

    作者:baiyi链接:https://www.jianshu.com/p/83b0f6d82d6c來源:简书 OAuth2.0 是关于授权的开放网络标准,它允许用户已第三方应用获取该用户在某一网站的私 ...

  8. python3 练习题100例 (二)

    题目二:企业发放的奖金根据利润提成.利润(I)低于或等于10万元时,奖金可提10%:利润高于10万元,低于20万元时,低于10万元的部分按10%提成,高于10万元的部分,可提成7.5%:20万到40万 ...

  9. MFC实现http连接、发送和接收数据

    #include <afxinet.h> // 设置超时 CInternetSession session; session.SetOption(INTERNET_OPTION_CONNE ...

  10. ubuntu安装cuda、cudnn

    环境: Ubuntu 16.04.4 LTS CUDA:8.0 CUDNN:5.1 CUDA下载:https://developer.nvidia.com/cuda-80-ga2-download-a ...