Hive UI 界面的访问方法

环境:hdp 2.4

hdp 2.4 对应的hive版本是1.2.1如果是hdp 2.4 以及以下的版本,可以参考HDP2.4 及以下各组件版本查看版本信息

安装Hive hwi 的方法:

  1. 下载源代码,根据自己的hive版本下载http://archive.apache.org/dist/hive/apache-hive-1.2.1-src.tar.gz

  2. 解压后将 ./hwi/web/ 目录打包成 hive-hwi-**.war 放入放到hive/lib目录下,打包方式是 执行下面的语句
    jar cvfM0 hive-hwi-1.2.1.war -C web/

  3. 更改配置文件,在hive-site.xml 添加参数,参数可以参考在https://cwiki.apache.org/confluence/display/Hive/HiveWebInterface,或在 hive-default.xml.template 中的拷贝相应的参数(监听主机0.0.0.0表示localhost,监听端口,war文件的目录),参数配置如下:

<property> 
<name>hive.hwi.listen.host</name> 
<value>0.0.0.0</value> 
<description>This is the host address the Hive Web Interface will listen on</description>
</property>
<property> 
<name>hive.hwi.listen.port</name>
 <value>9999</value>
 <description>This is the port the Hive Web Interface will listen on</description>
</property>
<property> 
<name>hive.hwi.war.file</name>
 <value>lib/hive-hwi-1.2.1.war</value> 
<description>This is the WAR file with the jsp content for Hive Web Interface</description>
</property>

配置信息有两种情况:

  • 如果是参考的官网,hive.hwi.war.file 的 value 值<value>${HIVE_HOME}/lib/hive-hwi-<version>.war</value>
    装的hdp中没有配置HIVE_HOME的变量,为了方便直接改为lib/hive-hwi-1.2.1.war
  • 如果拷贝的hive-default.xml.template中的参数,hive.hwi.war.file 的 value 值是
    <value>${env:HWI_WAR_FILE}</value>
    也要把这个value改为lib/hive-hwi-1.2.1.war

如果在你启动的时候,出现下面的错误,那就是你这个参数没有配好
错误截图
  1. 将jdk/lib/tools.jar 拷贝到hive/lib 目录下
  2. 下载 jasper-compiler-5.5.23.jar 和 jasper-runtime-5.5.23.jar 也拷贝到 hive/lib 目录下
  3. 下载commons-el-5.5.23.jar 拷贝到 hive/lib 目录
  4. 通过ip:9999/hwi 可以访问到hive 的 hwi
成功啦
在访问UI的过程中,有可能遇到的问题
  1. jasper-compiler-5.5.23.jar 和 jasper-runtime-5.5.23.jar 两个jar包 出现的问题
#  hive --service hwi
WARNING: Use "yarn jar" to launch YARN applications.
16/12/13 11:03:24 INFO hwi.HWIServer: HWI is starting up
16/12/13 11:03:25 INFO mortbay.log: Logging to org.slf4j.impl.Log4jLog(org.mortbay.log) via org.mortbay.log.Slf4jLog
16/12/13 11:03:25 INFO mortbay.log: jetty-6.1.26.hwx
16/12/13 11:03:25 INFO mortbay.log: Extract /usr/hdp/2.4.2.0-258/hive/wi-1.2.1.war to /tmp/Jetty_0_0_0_0_9999_hive.hwi.1.2.1.war__hwi__vrqy3
16/12/13 11:03:25 INFO mortbay.log: NO JSP Support for /hwi, did not fache.jasper.servlet.JspServlet
16/12/13 11:03:25 INFO mortbay.log: Started SocketConnector@0.0.0.0:99
  1. 端口被占用
16/12/13 10:47:00 WARN mortbay.log: failed Jetty23Shims$Server@7e5afaa6: java.ne                               t.BindException: Address already in use
Exception in thread "main" java.net.BindException: Address already in use
        at java.net.PlainSocketImpl.socketBind(Native Method)
        at java.net.AbstractPlainSocketImpl.bind(AbstractPlainSocketImpl.java:38                               7)
        at java.net.ServerSocket.bind(ServerSocket.java:375)
        at java.net.ServerSocket.<init>(ServerSocket.java:237)
        at org.mortbay.jetty.bio.SocketConnector.newServerSocket(SocketConnector                               .java:80)
        at org.mortbay.jetty.bio.SocketConnector.open(SocketConnector.java:73)
        at org.mortbay.jetty.AbstractConnector.doStart(AbstractConnector.java:28                               3)
        at org.mortbay.jetty.bio.SocketConnector.doStart(SocketConnector.java:14                               7)
        at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:                               50)
        at org.mortbay.jetty.Server.doStart(Server.java:235)
        at org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:                               50)
        at org.apache.hadoop.hive.hwi.HWIServer.start(HWIServer.java:102)
        at org.apache.hadoop.hive.hwi.HWIServer.main(HWIServer.java:132)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.                               java:62)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces                               sorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:498)
        at org.apache.hadoop.util.RunJar.run(RunJar.java:221)
        at org.apache.hadoop.util.RunJar.main(RunJar.java:136)
  1. commons-el-5.5.23.jar 没有导入 或 版本不对
# hive --service hwi
WARNING: Use "yarn jar" to launch YARN applications.
16/12/13 14:41:59 INFO hwi.HWIServer: HWI is starting up
16/12/13 14:42:00 INFO mortbay.log: Logging to org.slf4j.impl.Log4jLoggerAdapter                                                                             (org.mortbay.log) via org.mortbay.log.Slf4jLog
16/12/13 14:42:00 INFO mortbay.log: jetty-6.1.26.hwx
16/12/13 14:42:00 INFO mortbay.log: Extract /usr/hdp/2.4.2.0-258/hive/lib/hive-h                                                                             wi-1.2.1.war to /tmp/Jetty_0_0_0_0_9999_hive.hwi.1.2.1.war__hwi__vrqy3t/webapp
16/12/13 14:42:00 INFO mortbay.log: Started SocketConnector@0.0.0.0:9999
16/12/13 14:42:12 ERROR mortbay.log: /hwi/
java.lang.NoClassDefFoundError: org/apache/commons/el/ExpressionEvaluatorImpl
        at org.apache.jasper.compiler.JspUtil.<clinit>(JspUtil.java:62)
        at org.apache.jasper.JspCompilationContext.getServletClassName(JspCompil                                                                             ationContext.java:335)
        at org.apache.jasper.JspCompilationContext.getClassFileName(JspCompilati                                                                             onContext.java:485)
        at org.apache.jasper.compiler.Compiler.isOutDated(Compiler.java:380)
        at org.apache.jasper.compiler.Compiler.isOutDated(Compiler.java:333)
        at org.apache.jasper.JspCompilationContext.compile(JspCompilationContext                                                                             .java:561)
        at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper                                                                             .java:299)
        at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:3                                                                             15)
        at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
        at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:511                                                                             )
        at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:4                                                                             01)
        at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.jav                                                                             a:216)
        at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:1                                                                             82)
        at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:7                                                                             67)
        at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:450)
        at org.mortbay.jetty.servlet.Dispatcher.forward(Dispatcher.java:327)
        at org.mortbay.jetty.servlet.Dispatcher.forward(Dispatcher.java:126)
        at org.mortbay.jetty.servlet.DefaultServlet.doGet(DefaultServlet.java:50                                                                             3)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:707)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
        at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:511                                                                             )
        at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:4                                                                             01)
        at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.jav                                                                             a:216)
        at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:1                                                                             82)
        at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:7                                                                             67)
        at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:450)
        at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:1                                                                             52)
        at org.mortbay.jetty.handler.RequestLogHandler.handle(RequestLogHandler.                                                                             java:49)
        at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:1                                                                             52)
        at org.mortbay.jetty.Server.handle(Server.java:326)
        at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:54                                                                             2)
        at org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpCo                                                                             nnection.java:928)
        at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:549)
        at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:212)
        at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:404)
        at org.mortbay.jetty.bio.SocketConnector$Connection.run(SocketConnector.                                                                             java:228)
        at org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.j                                                                             ava:582)
Caused by: java.lang.ClassNotFoundException: org.apache.commons.el.ExpressionEva                                                                             luatorImpl
        at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
        ... 38 more
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,491评论 5 459
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,856评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,745评论 0 319
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,196评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,073评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,112评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,531评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,215评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,485评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,578评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,356评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,215评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,583评论 3 299
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,898评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,174评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,497评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,697评论 2 335

推荐阅读更多精彩内容