分享

Hive on Spark编译安装配置及遇到问题总结

feilong 发表于 2017-4-7 09:17:37 [显示全部楼层] 只看大图 回帖奖励 阅读模式 关闭右栏 7 19106
本帖最后由 feilong 于 2017-4-7 09:32 编辑

问题导读

1.Hive on Spark 需要的环境配置有哪些?
2.怎样编译和安装Spark?
3.怎样配置Yarn?
4.怎样配置HIve?
5.如何验证安装是否成功?
6.安装过程中遇到哪些问题?
7.参考资料有哪些?




简介
本文主要记录如何安装配置Hive on Spark,在执行以下步骤之前,请先确保已经安装Hadoop集群,Hive,MySQL,JDK,Scala,具体安装步骤不再赘述。

背景
Hive默认使用MapReduce作为执行引擎,即Hive on mr。实际上,Hive还可以使用Tez和Spark作为其执行引擎,分别为Hive on Tez和Hive on Spark。由于MapReduce中间计算均需要写入磁盘,而Spark是放在内存中,所以总体来讲Spark比MapReduce快很多。因此,Hive on Spark也会比Hive on mr快。为了对比Hive on Spark和Hive on mr的速度,需要在已经安装了Hadoop集群的机器上安装Spark集群(Spark集群是建立在Hadoop集群之上的,也就是需要先装Hadoop集群,再装Spark集群,因为Spark用了Hadoop的HDFS、YARN等),然后把Hive的执行引擎设置为Spark。
Spark运行模式分为三种1、Spark on YARN 2、Standalone Mode 3、Spark on Mesos。

Hive on Spark默认支持Spark on YARN模式,因此我们选择Spark on YARN模式。Spark on YARN就是使用YARN作为Spark的资源管理器。分为Cluster和Client两种模式。

一、环境说明
本教程Hadoop相关软件全部基于CDH5.5.1,用yum安装,系统环境如下:
  • 操作系统:CentOS 7.2
  • Hadoop 2.6.0
  • Hive1.1.0
  • Spark1.5.0
  • MySQL 5.6
  • JDK 1.8
  • Maven 3.3.3
  • Scala 2.10
各节点规划如下:
[mw_shl_code=bash,false]192.168.117.51     Goblin01           nn1  jn1  rm1  worker  master  hive  metastore  mysql
192.168.117.52     Goblin02    zk2    nn2  jn2  rm2  worker          hive
192.168.117.53     Goblin03    zk3    dn1  jn3       worker          hive
192.168.117.54     Goblin04    zk4    dn2            worker          hive[/mw_shl_code]说明:Goblin01~04是每台机器的hostname,zk代表zookeeper,nn代表hadoop的namenode,dn代表datanode,jn代表journalnode,rm代表resourcemanager,worker代表Spark的slaves,master代表Spark的master

二、编译和安装Spark(Spark on YARN)
2.1 编译Spark源码
要使用Hive on Spark,所用的Spark版本必须不包含Hive的相关jar包,hive on spark 的官网上说“Note that you must have a version of Spark which does not include the Hive jars”。在spark官网下载的编译的Spark都是有集成Hive的,因此需要自己下载源码来编译,并且编译的时候不指定Hive。

我们这里用的Spark源码是spark-1.5.0-cdh5.5.1版本,下载地址如下:
http://archive.cloudera.com/cdh5/cdh/5/spark-1.5.0-cdh5.5.1-src.tar.gz
下载完后用 tar xzvf 命令解压,进入解压完的文件夹,准备编译。

注意:编译前请确保已经安装JDK、Maven和Scala,maven为3.3.3及以上版本,并在/etc/profile里配置环境变量。
命令行进入在源码根目录下,执行
[mw_shl_code=bash,false] ./make-distribution.sh --name "hadoop2-without-hive" --tgz "-Pyarn,hadoop-provided,hadoop-2.6,parquet-provided"[/mw_shl_code]若编译过程出现内存不足的情况,需要在运行编译命令之前先运行:
[mw_shl_code=bash,false]export MAVEN_OPTS="-Xmx2g -XX:MaxPermSize=512M -XX:ReservedCodeCacheSize=512m"[/mw_shl_code]来设置Maven的内存。

编译过程由于要下载很多Maven依赖的jar包,需要时间较长(大概一两个小时),要保证网络状况良好,不然很容易编译失败。若出现以下结果,则编译成功:

hs1

hs1

编译成功后,会在源码根目录下多出一个文件(红色部分):
spark-1.5.0-cdh5.5.1-bin-hadoop2-without-hive.tgz

hs2

hs2


2.2 安装Spark
  • 将编译完生成的spark-1.5.0-cdh5.5.1-bin-hadoop2-without-hive.tgz拷贝到Spark的安装路径,并用 tar -xzvf 命令解压
  • 配置环境变量
[mw_shl_code=bash,false]$vim /etc/profile export SPARK_HOME=spark安装路径 $source /etc/profile[/mw_shl_code]
2.3 配置Spark
配置spark-env.sh、slaves和spark-defaults.conf三个文件
  • spark-env.sh
主要配置JAVA_HOME、SCALA_HOME、HADOOP_HOME、HADOOP_CONF_DIR、SPARK_MASTER_IP等
[mw_shl_code=bash,false]export JAVA_HOME=/usr/lib/jvm/java
export SCALA_HOME=/root/scala
export HADOOP_HOME=/usr/lib/hadoop
export HADOOP_CONF_DIR=$HADOOP_HOME/etc/hadoop
export YARN_CONF_DIR=$HADOOP_HOME/etc/hadoop
export SPARK_LAUNCH_WITH_SCALA=0
export SPARK_WORKER_MEMORY=1g
export SPARK_DRIVER_MEMORY=1g
export SPARK_MASTER_IP=192.168.117.51
export SPARK_LIBRARY_PATH=/root/spark-without-hive/lib
export SPARK_MASTER_WEBUI_PORT=18080
export SPARK_WORKER_DIR=/root/spark-without-hive/work
export SPARK_MASTER_PORT=7077
export SPARK_WORKER_PORT=7078
export SPARK_LOG_DIR=/root/spark-without-hive/log
export SPARK_PID_DIR='/root/spark-without-hive/run'[/mw_shl_code]
  • slaves(将所有节点都加入,master节点同时也是worker节点)
[mw_shl_code=bash,false]Goblin01
Goblin02
Goblin03
Goblin04[/mw_shl_code]
  • spark-defaults.conf
[mw_shl_code=bash,false]spark.master                     yarn-cluster spark.home                       /root/spark-without-hive
spark.eventLog.enabled           true
spark.eventLog.dir               hdfs://Goblin01:8020/spark-log
spark.serializer                 org.apache.spark.serializer.KryoSerializer
spark.executor.memory            1g
spark.driver.memory              1g
spark.executor.extraJavaOptions  -XX:+PrintGCDetails -Dkey=value -Dnumbers="one two three"[/mw_shl_code]spark.master指定Spark运行模式,可以是yarn-client、yarn-cluster...
spark.home指定SPARK_HOME路径
spark.eventLog.enabled需要设为true
spark.eventLog.dir指定路径,放在master节点的hdfs中,端口要跟hdfs设置的端口一致(默认为8020),否则会报错
spark.executor.memory和spark.driver.memory指定executor和dirver的内存,512m或1g,既不能太大也不能太小,因为太小运行不了,太大又会影响其他服务

三、配置YARN
配置yarn-site.xml,跟hdfs-site.xml在同一个路径下($HADOOP_HOME/etc/hadoop)
[mw_shl_code=bash,false]<property>
  <name>yarn.resourcemanager.scheduler.class</name>
  <value>org.apache.hadoop.yarn.server.resourcemanager.scheduler.fair.FairScheduler</value>
</property>[/mw_shl_code]
四、配置Hive
  • 添加spark依赖到hive(将spark-assembly-1.5.0-cdh5.5.1-hadoop2.6.0.jar拷贝到$HIVE_HOME/lib目录下)
进入SPARK_HOME
[mw_shl_code=bash,false]cp spark-assembly-1.5.0-cdh5.5.1-hadoop2.6.0.jar /usr/lib/hive/lib[/mw_shl_code]
  • 配置hive-site.xml
配置的内容与spark-defaults.conf相同,只是形式不一样,以下内容是追加到hive-site.xml文件中的,并且注意前两个配置,如果不设置hive的spark引擎用不了,在后面会有详细的错误说明。
[mw_shl_code=bash,false]<property>
  <name>hive.execution.engine</name>
  <value>spark</value>
</property>

<property>
  <name>hive.enable.spark.execution.engine</name>
  <value>true</value>
</property>

<property>
  <name>spark.home</name>
  <value>/root/spark-without-hive</value>
</property>
<property>
  <name>spark.master</name>
  <value>yarn-client</value>
</property>
<property>
  <name>spark.enentLog.enabled</name>
  <value>true</value>
</property>
<property>
  <name>spark.enentLog.dir</name>
  <value>hdfs://Goblin01:8020/spark-log</value>
</property>
<property>
  <name>spark.serializer</name>
  <value>org.apache.spark.serializer.KryoSerializer</value>
</property>
<property>
  <name>spark.executor.memeory</name>
  <value>1g</value>
</property>
<property>
  <name>spark.driver.memeory</name>
  <value>1g</value>
</property>
<property>
  <name>spark.executor.extraJavaOptions</name>
  <value>-XX:+PrintGCDetails -Dkey=value -Dnumbers="one two three"</value>
</property>[/mw_shl_code]
五、验证是否安装配置成功
1.验证Spark集群
注意:在启动Spark集群之前,要确保Hadoop集群和YARN均已启动
  • 进入$SPARK_HOME目录,执行:
[mw_shl_code=bash,false]./sbin/start-all.sh[/mw_shl_code]用jps命令查看51节点上的master和worker,52、53、54节点上的worker是否都启动了
  • 同样在$SPARK_HOME目录下,提交计算Pi的任务,验证Spark集群是否能正常工作,运行如下命令
[mw_shl_code=bash,false]./bin/spark-submit --class org.apache.spark.examples.SparkPi --master yarn --deploy-mode client lib/spark-examples-1.5.0-cdh5.5.1-hadoop2.6.0.jar 10[/mw_shl_code]若无报错,并且算出Pi的值,说明Spark集群能正常工作

2.验证Hive on Spark是否可用
  • 命令行输入 hive,进入hive CLI
  • set hive.execution.engine=spark; (将执行引擎设为Spark,默认是mr,退出hive CLI后,回到默认设置。若想让引擎默认为Spark,需要在hive-site.xml里设置)
  • create table test(ts BIGINT,line STRING); (创建表)
  • select count(*) from test;
  • 若整个过程没有报错,并出现正确结果,则Hive on Spark配置成功。

六、遇到的问题

0
编译spark基于maven有两种方式
  • 用mvn 命令编译
[mw_shl_code=bash,false]./build/mvn -Pyarn -Phadoop-2.6 -Dhadoop.version=2.6.0 -DskipTests clean package[/mw_shl_code] 编译到倒数MQTT模块一直报错,而且编译出的文件比较大,不适合安装集群,因此不推荐。使用Intellij IDEA maven 插件报错如下:

hs3

hs3

  • 使用spark提供的预编译脚本,网络状况稳定,会编译出需要的安装版本,推荐。命令
[mw_shl_code=bash,false]./make-distribution.sh --name "hadoop2-without-hive" --tgz "-Pyarn,hadoop-provided,hadoop-2.6,parquet-provided"[/mw_shl_code]结果如上文所述。
1
运行:
[mw_shl_code=bash,false]./bin/spark-submit --class org.apache.spark.examples.SparkPi  --master yarn  lib/spark-examples-1.5.0-cdh5.5.1-hadoop2.6.0.jar 10[/mw_shl_code]报错:

hs4

hs4

原因:
hdfs的默认端口为8020 ,而我们在spark-default.conf中配置成了8021端口,导致连接不上HDFS报错
[mw_shl_code=bash,false]spark.eventLog.enabled           true
spark.eventLog.dir              hdfs://Goblin01:8021/spark-log[/mw_shl_code]解决:
配置spark-default.conf中的spark.eventLog.dir 为本地路径,也就是不持久化日志到hdfs上,也就没有和hdfs的通行
or
spark-default.conf 注释掉 spark.eventLog.enabled   true
or
在spark-default.conf里配置的eventLog端口跟hdfs的默认端口(8020)一致
or
由于配置的hdfs是高可用的,51,52都可以作为namenode,我们的spark集群的主节点在51上,当51上的namenode变成standby,导致无法访问hdfs的8020端口(hdfs默认端口),也就是说在51上读不出hdfs上spark-log的内容,在spark-default.conf中配置为spark.eventLog.dir hdfs://Goblin01:8021/spark-log,如果发生这种情况,直接kill掉52,让namenode只在51上运行。(这个后面要搭建spark的高可用模式解决)
2
运行:
在hive里设置引擎为spark,执行select count(*) from a;
报错:
[mw_shl_code=bash,false]Failed to execute spark task, with exception 'org.apache.hadoop.hive.ql.metadata.HiveException(Unsupported execution engine: Spark. Please set hive.execution.engine=mr)'[/mw_shl_code]解决:
这是因为CDH版的Hive默认运行支持Hive on Spark(By default, Hive on Spark is not enabled).
需要用cloudera manager(cloudera官网给的的方法,但是要装cloudera manager,比较麻烦,不建议)
[mw_shl_code=bash,false]Go to the Hive service.
Click the Configuration tab.
Enter Enable Hive on Sparkin the Search field.
Check the box for Enable Hive on Spark (Unsupported).
Locate the Spark On YARN Service and click SPARK_ON_YARN.
Click Save Changes to commit the changes.[/mw_shl_code]或者
在hive-site.xml添加配置(简单、推荐)
[mw_shl_code=bash,false]<property>
<name>hive.enable.spark.execution.engine</name>
<value>true</value>
</property>[/mw_shl_code]
3
终端输入hive无法启动hive CLI
原因:namenode挂了
解决:重启namenode
4
运行:
[mw_shl_code=bash,false]./bin/spark-submit --class org.apache.spark.examples.SparkPi --master yarn --deploy-mode client lib/spark-examples-1.5.0-cdh5.5.1-hadoop2.6.0.jar 10[/mw_shl_code]问题:
没有报错,但是出现以下情况,停不下来

hs5

hs5

原因:
  • ResourceManager或者NodeManager挂掉,一直没有NodeManager响应,任务无法执行,所有停不下来。
  • 还有一种情况是spark有别的application在运行,导致本次spark任务的等待或者失败
解决:
  • 对于原因1,重启ResourceManager和NodeManager。
[mw_shl_code=bash,false]service hadoop-yarn-resourcemanager start;
service hadoop-yarn-nodemanager start;[/mw_shl_code]
  • 对于原因2,解决办法是在hadoop配置文件中设置yarn的并行度,在/etc/hadoop/conf/capacity-scheduler.xml文件中配置yarn.scheduler.capacity.maximum-am-resource-percent from 0.1 to 0.5
[mw_shl_code=bash,false] <property>
    <name>yarn.scheduler.capacity.maximum-am-resource-percent</name>
    <value>0.5</value>
    <description>
      Maximum percent of resources in the cluster which can be used to run
      application masters i.e. controls number of concurrent running
      applications.
    </description>
  </property>[/mw_shl_code]
七、参考资料






已有(7)人评论

跳转到指定楼层
xuanxufeng 发表于 2017-4-7 16:04:41

补充一个类似的,写的也很不错:

装了一个多星期的hive on spark 遇到了许多坑。还是写一篇随笔,免得以后自己忘记了。同事也给我一样苦逼的人参考。
先说明一下,这里说的Hive on Spark是Hive跑在Spark上,用的是Spark执行引擎,而不是MapReduce,和Hive on Tez的道理一样。
先看官网的资源Hive on Spark: Getting Started
要想在Hive中使用Spark执行引擎,第一步当前就是环境设置,我们需要在Hive启动的时候加载spark-assembly-1.5.0-hadoop2.6.0.jar,最简单的方法是把spark-assembly-1.5.0-hadoop2.6.0.jar包直接拷贝 到$HIVE_HOME/lib目录下。我采用的方法是在hive-site里面添加spark.home。具体给出官方的建议,这个不算坑,基本都能做好。
下载.png

好了到这里开始讲我遇到的坑
第一个坑:直接使用spark pre-build版本,下来后按照上面配置弄结果报错
java.lang.NoSuchFieldError: SPARK_RPC_CLIENT_CONNECT_TIMEOUT
    at org.apache.hive.spark.client.rpc.RpcConfiguration.<clinit>(RpcConfiguration.java:46)
报了rpc错误,这个坑要好查点,发现是因为需要自己编译spark因为预编译的带了hive的支持也就是-Phive,这个参数是spark-sql对hive的支持用的,结果用在hive on spark就不行。没事,我们开始编译吧。接下来苦逼日子来了。
第二个坑:版本不对,刚开始以为hive 能使用 spark的任何版本,结果发现错了,hive对spark版本有着严格要求,具体对应版本你可以下载hive源码里面,搜索他pom.xml文件里面的spark版本,如果版本不对,启动hive后会报错。具体错误如下:
Failed to execute spark task, with exception 'org.apache.hadoop.hive.ql.metadata.HiveException(Failed to create spark client.)' FAILED: Execution Error, return code 1 from org.apache.hadoop.hive.ql.exec.spark.SparkTask
第三个坑:spark的编译,在这里我使用的是hive稳定版本2.01,查看他的pom.xml需要的spark版本是1.5.0.接着讲诉我遇到坑爹的事情,直接让我快一个星期时间白费。在编译的时候使用了hive 官网提供的命令,悲催的事情发生了,使用的命令是:
./make-distribution.sh --name "hadoop2-without-hive" --tgz "-Pyarn,hadoop-provided,hadoop-2.6"
然后将 lib/spark-assembly-1.5.0-hadoop2.6.0.jar 这个包拷到你现在的spark/lib 下另外一个相同的注意备份
但是当启动spark集群的时候报错了,错误如下
Exception in thread "main" java.lang.NoClassDefFoundError: org/slf4j/impl/StaticLoggerBinder
这个时候坑爹了,网上找来找去都没找到这个问题解决方案,上面错误原因就是说slf4j这个包找不到,你妹,完全按照官网来的,官网是怎么测试的呀,悲催了。接下来就是苦恼我一周的安装过程。
在网上找呀找,稍微看到一个靠谱的说法是编译的时候没有讲hadoop的jar包导进来,但是给出解决办法是在spark-env.sh里面添加
export SPARK_DIST_CLASSPATH=$(hadoop classpath)
好了添加了这个,spark master可以起来了,但是slaves仍然是上面错误,又开始找资料了。每天都在痛苦的阅读英文文档,差点抑郁了。而且国内google这不给力,用vpn时断时续,差点砸电脑。最后快绝望的时候回到spark官网,仔细阅读他提供的编译命令,死马当活马医吧。按照官网提供的编译命令再次编译spark.官网地址:http://spark.apache.org/docs/1.5.0/building-spark.html。他默认1.5.0使用是scala2.10进行编译,但是我安装的scala是2.11所以使用了以下命令。
[mw_shl_code=bash,true]./dev/change-scala-version.sh 2.11
mvn -Pyarn -Phadoop-2.4 -Dscala-2.11 -DskipTests clean package[/mw_shl_code]

这次编译的spark-assembly-1.5.0-hadoop2.6.0.jar 包有140mb左右比上次的多了40mb,感觉有点靠谱了,将这个包移过去,ok了!太开心了,一切都跑起来了。泪奔了,hive官网害人呀。

第四个坑,这个坑也算一个不大不小的坑,因为我偶然想装一下hue,在装hue遇到的错误,现在记录一下。
首先坑是hadoop的坑,如果在hadoop core-site.xml下面没有配置
[mw_shl_code=xml,true]<property>
    <name>hadoop.proxyuser.hdfs.hosts</name>
    <value>*</value>
    <description>Defines the Unix user, hdfs, that will run the HttpFS server as
      a proxyuser.</description>
  </property>
  <property>
    <name>hadoop.proxyuser.hdfs.groups</name>
    <value>*</value>
    <description>Replaces hdfs with the Unix user that will start the HttpFS server.
      </description>
  </property>
httpfs-site.xml
  <property>
    <name>hadoop.proxyuser.hue.hosts</name>
    <value>*</value>
</property>
<property>
    <name>hadoop.proxyuser.hue.groups</name>
    <value>*</value>
</property>
hdfs-site.xml
<property>
  <name>dfs.webhdfs.enabled</name>
  <value>true</value>
</property>[/mw_shl_code]这三个配置没配好的你讲没有权限访问hadoop,但是这个都是小事情,网上教程多,不怎么算坑。
接下来hive配置才是一个不大不小的坑,因为网上基本没有什么资料,对应版本是hive是2.0.1
网上基本的版本都教了怎么连接,但是用网上连接方法hive.log老是显示 old version ? 我一直以为我hive版本过高了,但是换成1.2.1这个版本一样错误。
于是又开始看google,看的又快奔溃了。开始网上有人叫把hive.server2.authentication这个属性改为NOSASL,但是改来改去没啥卵用,好了我就不卖关子了,
hue要连接hive其实还需要修改两个属性
第一个属性是hive.server2.authentication 这个要是NOSASl
第二个属性是hive.server2.enable.doAs 一定要是flase 不然就会报 old version?
看到可视化界面的时候还是有点成就感的。

第五个坑,装好了那么多东西,肯定想跑跑试试,于是觉得对nginx 日志进行分析,这时候对网上hive 分析 nginx进行了搜索,搜了一大堆,但是按他们的正则建表都不可以用,又开始泪奔了。
不停百度,资料结果全是千篇一律,好像大家抄的都是一篇。结果还是找呀找,终于找到原因了
原来正则必须不是一根斜杠,原来java必须是两根\\把我建表sql展示一下,不然还是太空了。其中不需要out那一行,直接用input就行
create table logs(ipaddress STRING,identity STRING,`user` STRING,time STRING,request STRING,status STRING,size STRING,host STRING,referer STRING,rbody STRING,agent STRING,forwarded STRING,uaddr STRING,ustatus STRING,urtime STRING,rtime STRING)ROW FORMAT SERDE 'org.apache.hadoop.hive.contrib.serde2.RegexSerDe' WITH SERDEPROPERTIES ('input.regex' =
'([0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}) (-) (-) (\\[.*\\]) (\\"[^\\"]*\\") (\\d{3}) (\\d{1,}) (\\"[^\\"]*\\") (\\"[^\\"]*\") (-|[^\\s]*) (\\"[^\\"]*\\") (\\"[^\\"]*\\") ([0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}:[0-9]{1,5}) (\\d{3}) ([\\d]{1,}\\.[\\d]{1,}) ([\\d]{1,}\\.[\\d]{1,})')
接下来可以跑了,扔了一个sql,你妹又报错了
return code 3 from org.apache.hadoop.hive.ql.exec.spark.SparkTask

这个坑不算大,因为通过查找hive,spark日志发现原来spark找不到org.apache.hadoop.hive.contrib.serde2.RegexSerDe
这个网上解决方法就多了,就是加上hive.aux.jars.path 这个属性里面你这个jar包地址如果是本地的记住前面要加file://哦不然找不到


好了这是安装hive on spark 遇到的一些坑,希望我的资料能对需要的人有些帮助吧。个人总结:遇到不会的别看网上的文章了,全是千篇一律,还是看官网的资料跟官网论坛,比看那些安装篇强上太多。
来自:cnblogs 暗痛
回复

使用道具 举报

sufy 发表于 2017-5-2 23:46:42
不错&#128076;&#128077;
回复

使用道具 举报

77925978 发表于 2017-9-13 11:57:16
挺好,说的很细,可惜,我这边不管怎么编译都会报错

回复

使用道具 举报

zixia 发表于 2017-10-19 17:26:43
楼主,您好,我问下,配置hive on spark,必须安装spark吗?我安装以上步骤做了下,因为原来就有spark,就没有安装,只是自己编译了一个spark包,扔到hive/lib下,执行的时候,设置spark.master=local不报错,设置spark.master=yarn就会报错FAILED: Execution Error, return code 3 from org.apache.hadoop.hive.ql.exec.spark.SparkTask
求解答。。。
回复

使用道具 举报

zixia 发表于 2017-10-19 17:30:39
1、我目前使用的版本如下(以下都是原来用Ambari安装好的了):
    hadoop版本:Hadoop 2.7.3.2.5.0.0-1245(HDP)
    Hive版本:Hive 1.2.1000.2.5.0.0-1245
    Spark版本:version 1.6.2
  2、Hive on spark配置步骤如下:
    1)spark1.3源码打包,mvn -Pyarn,hadoop-provided,hadoop-2.7,parquet-provided -DskipTests clean package,打包编译过程没有报错,打出来的包93M左右;
    2)spark包放入hive/lib下;
    3)设置spark引擎,执行hiveSql,结果:
设置spark.master=local不报错;
设置spark.master=yarn或者不设置spark.master就会报错:FAILED: Execution Error, return code 3 from org.apache.hadoop.hive.ql.exec.spark.SparkTask。
注:因为原来安装了spark,所以我这次只是编译了Spark1.3的Jar,仍待hive/lib,没有重新安装spark。
回复

使用道具 举报

kinglee_zs 发表于 2018-4-28 19:50:25
已阅,资料貌似百度都比较多类似,和我的问题不一样,还是我想错了呢?急需积分发帖。。。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

推荐上一条 /2 下一条