首页 > 代码库 > Zeppelin使用hive解释器

Zeppelin使用hive解释器

此zeppelin为官方0.5.6版,可能还在孵化阶段,可能出现一些bug吧。

配置

cp zeppelin-env.sh.template zeppelin-env.sh
vi zeppelin-env.sh

添加:

export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.65-3.b17.axs7.ppc64le
export HADOOP_CONF_DIR=/etc/hadoop/conf

启动zepplein

../bin/zeppelin-daemon.sh start

访问http://localhost:8080

修改hive Interpreter

技术分享

记得修改完点右上restart,重启解释器。

查询

这就体现一下这个bug。

一、

技术分享

对应解释器日志:

cat zeppelin-interpreter-hive--ldd-1.log
INFO [2016-11-01 10:06:53,238] ({pool-2-thread-8} HiveInterpreter.java[interpret]:326) - PropertyKey: default, SQL command: select * from hehe.haha
 INFO [2016-11-01 10:06:53,328] ({pool-2-thread-8} SchedulerFactory.java[jobFinished]:135) - Job remoteInterpretJob_1478009213237 finished by scheduler org.apache.zeppelin.hive.HiveInterpreter197014835

二、

技术分享

日志:

INFO [2016-11-01 10:08:39,412] ({pool-2-thread-15} HiveInterpreter.java[interpret]:326) - PropertyKey: *, SQL command: ect count(*) from hehe.haha
ERROR [2016-11-01 10:08:39,412] ({pool-2-thread-15} Job.java[run]:182) - Job failed
org.apache.zeppelin.interpreter.InterpreterException: java.lang.NullPointerException
    at org.apache.zeppelin.interpreter.ClassloaderInterpreter.interpret(ClassloaderInterpreter.java:61)
    at org.apache.zeppelin.interpreter.LazyOpenInterpreter.interpret(LazyOpenInterpreter.java:93)
    at org.apache.zeppelin.interpreter.remote.RemoteInterpreterServer$InterpretJob.jobRun(RemoteInterpreterServer.java:300)
    at org.apache.zeppelin.scheduler.Job.run(Job.java:169)

三、

技术分享

日志:

INFO [2016-11-01 10:11:17,500] ({pool-2-thread-5} HiveInterpreter.java[interpret]:326) - PropertyKey: default, SQL command: select count(*) from hehe.haha
 INFO [2016-11-01 10:11:17,568] ({pool-2-thread-5} SchedulerFactory.java[jobFinished]:135) - Job remoteInterpretJob_1478009477499 finished by scheduler org.apache.zeppelin.hive.HiveInterpreter197014835

结论:官方说%hive(${prefix}),若不加默认prefix为default,但从上面可以看出,第一次不加default时,select * 可以查询,但select count(*)就会报错,从日志中可以看出,它把count(*)括号中的*识别成了PropertyKey,select语句解析也发生了变化,导致报java空指针异常,但从第三个可以看出,加上default,hive解释器解析又变正常。感觉是个bug。

总的来说,可以用hive解释器了。由于当时使用zeppelin的时候还是0.5.6,经过四个月左右吧已经出了3个版本,最新版本0.6.2,功能更强悍了。后续再进一步探索它的奥妙吧。

 

Zeppelin使用hive解释器