well i got a little more information now.
under 2.0.0
* running beeline-cli; engine=tez works (beeline -u jdbc:hive2://)
* running beeline-hs2; engine=tez fails (beeline -u
jdbc:hive2://host:10000/)
examining HS2 log file i find this:
java.lang.OutOfMemoryError: PermGen space
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:800)
at
java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:449)
at java.net.URLClassLoader.access$100(URLClassLoader.java:71)
at java.net.URLClassLoader$1.run(URLClassLoader.java:361)
at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
at
org.apache.tez.mapreduce.protos.MRRuntimeProtos$MRInputUserPayloadProto.newBuilder(MRRuntimeProtos.java:1944)
at
org.apache.tez.mapreduce.hadoop.MRInputHelpers.createMRInputPayload(MRInputHelpers.java:699)
at
org.apache.tez.mapreduce.hadoop.MRInputHelpers.createMRInputPayloadWithGrouping(MRInputHelpers.java:681)
at
org.apache.tez.mapreduce.input.MRInput$MRInputHelpersInternal.createMRInputPayloadWithGrouping(MRInput.java:660)
at
org.apache.tez.mapreduce.input.MRInput$MRInputConfigBuilder.createCustomDataSource(MRInput.java:283)
at
org.apache.tez.mapreduce.input.MRInput$MRInputConfigBuilder.build(MRInput.java:232)
at
org.apache.hadoop.hive.ql.exec.tez.DagUtils.createVertex(DagUtils.java:605)
at
org.apache.hadoop.hive.ql.exec.tez.DagUtils.createVertex(DagUtils.java:1113)
at
org.apache.hadoop.hive.ql.exec.tez.TezTask.build(TezTask.java:389)
at
org.apache.hadoop.hive.ql.exec.tez.TezTask.execute(TezTask.java:175)
at org.apache.hadoop.hive.ql.exec.Task.executeTask(Task.java:158)
at
org.apache.hadoop.hive.ql.exec.TaskRunner.runSequential(TaskRunner.java:101)
at org.apache.hadoop.hive.ql.Driver.launchTask(Driver.java:1840)
at org.apache.hadoop.hive.ql.Driver.execute(Driver.java:1584)
at org.apache.hadoop.hive.ql.Driver.runInternal(Driver.java:1361)
at org.apache.hadoop.hive.ql.Driver.run(Driver.java:1184)
at org.apache.hadoop.hive.ql.Driver.run(Driver.java:1177)
at
org.apache.hive.service.cli.operation.SQLOperation.runQuery(SQLOperation.java:175)
at
org.apache.hive.service.cli.operation.SQLOperation.access$100(SQLOperation.java:73)
at
org.apache.hive.service.cli.operation.SQLOperation$1$1.run(SQLOperation.java:228)
FAILED: Execution Error, return code -101 from
org.apache.hadoop.hive.ql.exec.tez.TezTask. PermGen space
Exception in thread
"374e076e-90ee-42a7-9dce-71f90f95f218HiveServer2-Handler-Pool: Thread-50"
java.lang.OutOfMemoryError: PermGen space
i also find that the HS2 process is still up but the HS2 Web UI port
(10002) is dead.
here's the settings HS2 is running as:
dwr 32434 32432 9 09:07 pts/7 00:01:41
/usr/lib/jvm/java-7-oracle/jre/bin/java -Xmx8192m
-Djava.net.preferIPv4Stack=true -Dhadoop.log.dir=/usr/lib/hadoop/logs
-Dhadoop.log.file=hadoop.log -Dhadoop.home.dir=/usr/lib/hadoop
-Dhadoop.id.str= -Dhadoop.root.logger=INFO,console
-Djava.library.path=/usr/lib/hadoop/lib/native
-Dhadoop.policy.file=hadoop-policy.xml -Djava.net.preferIPv4Stack=true
-Xmx268435456 *-Xmx4G* -Dlog4j.configurationFile=hive-log4j2.properties
-Dhadoop.security.logger=INFO,NullAppender org.apache.hadoop.util.RunJar
/usr/lib/hive-standalone-2.0.0/lib/hive-service-2.0.0.jar
org.apache.hive.service.server.HiveServer2
so my first question is where is the "TezTask PermGen space" defined?
Thanks,
Stephen.
On Wed, Mar 9, 2016 at 7:48 AM, Stephen Sprague <[email protected]> wrote:
> ok, thanks. very strange then that i can run hive 1.2.1 and hive 2.0.0
> m/r jobs against the same hadoop cluster w/o issue (different HS2,
> different MetaStore, but same hdfs data) but yet once i switch to the
> HS2/2.0.0 tez chokes out - but works fine with the HS2/1.2.1.
>
> given i built tez when HIVE_HOME was set to 1.2.1 i'm wondering... that's
> why its not having any part of working under 2.0.0.
>
> anyway, i'm going to review the tez installation instructions now that i'm
> testing hive 2.0.0 (and tez) and probably just start from scratch.
>
> I'll keep you all posted.
>
> Cheers,
> stephen.
>
>
>
> On Wed, Mar 9, 2016 at 2:51 AM, Andre Kelpe <[email protected]>
> wrote:
>
>> tez has no dependency on hive, it is the other way around. I don't
>> think, that's the problem you are facing.
>>
>> - André
>>
>> On Wed, Mar 9, 2016 at 6:20 AM, Stephen Sprague <[email protected]>
>> wrote:
>> > hey guys,
>> >
>> > obvious question i suppose but i gotta ask. :) the tez jars i built
>> for
>> > hive 1.2.1 will not work with hive 2.0.0 i presume?
>> >
>> > the reason ask is: i can switch back forth between hive clients 1.2.1
>> and
>> > 2.0.0 and run m/r jobs no problem. however i can not do this with tez.
>> >
>> > I'm thinking this is because the tez jars on hdfs have been built
>> (bound to)
>> > hive 1.2.1?
>> >
>> > ie. these jar files in hdfs
>> >
>> > <property>
>> > <name>tez.lib.uris</name>
>> >
>> >
>> <value>${fs.defaultFS}/apps/tez-0.8.2,${fs.defaultFS}/apps/tez-0.8.2/lib</value>
>> > </property>
>> >
>> > really should be identified as "tez-0.8.2-hive.1.2.1" and that i should
>> > have another dir called "tez-0.8.2-hive.2.0.0" which another
>> tez-site.xml
>> > should refer to.
>> >
>> >
>> > Am i making any sense here? :)
>> >
>> > Cheers,
>> > Stephen.
>>
>>
>>
>> --
>> André Kelpe
>> [email protected]
>> http://concurrentinc.com
>>
>
>