• Hive安装(一)之环境配置


      Hive Web Interface(HWI)简介:Hive自带了一个Web-GUI,功能不多,可用于效果展示,如果没有安装Hue的话,是个不错的选择。

    由于hive-bin包中没有包含HWI的页面,只有Java代码编译好的jar包:hive-hwi-1.0.1.jar

    因此需要下载源码从中提取jsp文件并打包成war文件到hive-lib目录中:

    cd apache-hive-1.0.1-src/hwi
    
    jar cfM hive-hwi-1.0.1.war -C web .

    最后将hive-hwi-1.2.0.war放到hive-lib目录下即可启动hwi服务:

     1 export hivelog='/usr/local/hive/logs'
     2 
     3 #mkdir -p $hivelog
     4 
     5 export HIVE_HOME='/usr/local/hive/apache-hive-1.0.1-bin' 
     6 
     7 $HIVE_HOME/hive --service hiveserver2 > $hivelog/hiveserver2.log 2>&1 &
     8 
     9 $HIVE_HOME/hive --service metastore > $hivelog/metastore.log 2>&1 &
    10 
    11 $HIVE_HOME/hive --service hwi > $hivelog/hwi.log 2>&1 &

    但是发现hwi启动失败,报错:

    ERROR hwi.HWIServer: HWI WAR file not found at /usr/local/hive/usr/local/hive/lib/hive-hwi-1.0.1.war

    原因是hwi启动脚本($HIVE_HOME/bin/ext/hwi.sh)的bug:

    export HWI_WAR_FILE=$(ls ${HIVE_LIB}/hive-hwi-*.war)

    直接修改脚本为:

    export HWI_WAR_FILE=$(ls $HIVE_LIB/hive-hwi-*.war | awk -F/ '{print "lib/"$NF}')

    当然,也可以在配置文件hive-site.xml中指定:

     1 <property>
     2 
     3     <name>hive.hwi.war.file</name>
     4 
     5     <value>lib/hive-hwi-1.0.1.war</value>
     6 
     7     <description>This sets the path to the HWI war file, relative to ${HIVE_HOME}. </description>
     8 
     9 </property>
    10 
    11 <property>
    12 
    13     <name>hive.hwi.listen.host</name>
    14 
    15     <value>0.0.0.0</value>
    16 
    17     <description>This is the host address the Hive Web Interface will listen on</description>
    18 
    19 </property>
    20 
    21 <property>
    22 
    23 <name>hive.hwi.listen.port</name>
    24 
    25    <value>9999</value>
    26 
    27     <description>This is the port the Hive Web Interface will listen on</description>
    28 
    29 </property>
    View Code

    接着访问URL:http://ubuntu:9999/hwi/

    然而继续报错:

     1 ERROR compiler.Compiler: Javac exception 2 Unable to find a javac compiler; com.sun.tools.javac.Main is not on the classpath. 3 Perhaps JAVA_HOME does not point to the JDK. It is currently set to "/usr/local/java/jre" 

    原因:jetty编译jsp类时,ant没有识别到正确的jdk路径。

    解决:

    ln -s $JAVA_HOME/lib/tools.jar $HIVE_HOME/lib/
    
    或者cp  $JAVA_HOME/lib/tools.jar /usr/lib/hive/lib/

    接着访问URL:http://ubuntu:9999/hwi/

    然而继续报错:jsp解析错误,原来是缺少jsp的包,把jasper-compiler-5.5.23.jar、jasper-runtime-5.5.23.jar和jsp-2.1-6.1.14.jar拷贝到hive的lib下。

    接着访问URL:http://ubuntu:9999/hwi/

    并执行创建表

     CREATE TABLE table1(foo STRING , bar MAP<STRING, STRING>)
    
         ROW FORMAT DELIMITED
    
         FIELDS TERMINATED BY 't'
    
         COLLECTION ITEMS TERMINATED BY ','
    
         MAP KEYS TERMINATED BY ':'
    
         STORED AS TEXTFILE;

    创建成功,心里一阵高兴,然后又创建一个表table2。

    执行

    load data local inpath "/usr/local/hive/apache-hive-1.0.1-bin/examples/files/map_table.txt"  overwrite into table table1;

    没有问题,看来没啥问题了。

    然后执行

    insert into table table2 select foo,bar from table1;

    又报错了

    原来hive-site.xml的配置文件jars.path有问题,注释掉配置。

  • 相关阅读:
    在Ubuntu上安装Hadoop(集群模式)
    Node.js v0.10.8 发布
    设置 Sublime Text 的 Python 开发环境
    jQuery 1.10.0 和 2.0.1 发布
    openSUSE 13.1 Milestone 2 发布
    mochad 0.1.6 发布,TCP 网关守护进程
    JPPF 3.3.2 发布,Java 并行处理框架
    PyCharm 又一强大Python IDE
    AntiXSS 支持Html同时防止XSS攻击
    (原创)攻击方式学习系列(总)
  • 原文地址:https://www.cnblogs.com/bigdatafly/p/5005555.html
Copyright © 2020-2023  润新知