• hive1.2.1安装步骤(在hadoop2.6.4集群上)


    hive1.2.1在hadoop2.6.4集群上的安装

    hive只需在一个节点上安装即可,这里再hadoop1上安装

    1、上传hive安装包到/usr/local/目录下

    2、解压  tar -zxvf /usr/local/hive-1.2.1.tar.gz

       重命名 mv hive-1.2.1 hive

    3、安装MySQL。具体步骤见《Linux下jdk、Tomcat、MySQL的安装

    4、配置hive

      (1)配置环境变量vi /etc/profile

             添加:export HIVE_HOME=/usr/local/hive

                export PATH=.:$HIVE_HOME/bin:$...

             配置完source /etc/profile

      (2)将$HIVE_HOME/conf/下的两个文件重命名:

               mv hive-default.xml.template hive-site.xml
               mv hive-env.sh.template hive-env.sh

      (3)vi hive-env.sh

          配置其中的HADOOP_HOME,将HADOOP_HOME前面的#号去掉,添加路径/usr/local/hadoop

      (4)配置元数据库信息 vi hive-site.xml  (由于里面配置太多,很难找,提供一个简便修改方式,在WinSCP中编辑,可以快速查找)

    <configuration>
    <property>
    <name>javax.jdo.option.ConnectionURL</name>
    <value>jdbc:mysql://hadoop1:3306/hive?createDatabaseIfNotExist=true</value>
    <description>JDBC connect string for a JDBC metastore</description>
    </property>

     

    <property>
    <name>javax.jdo.option.ConnectionDriverName</name>
    <value>com.mysql.jdbc.Driver</value>
    <description>Driver class name for a JDBC metastore</description>
    </property>

     

    <property>
    <name>javax.jdo.option.ConnectionUserName</name>
    <value>root</value>
    <description>username to use against metastore database</description>
    </property>

     

    <property>
    <name>javax.jdo.option.ConnectionPassword</name>
    <value>admin</value>
    <description>password to use against metastore database</description>
    </property>
    </configuration>

    5、安装完hive和MySQL完成后,将MySQL的连接jar包(不必与MySQL安装版本一致,且没有32位和64位区别!)拷贝到$HIVE_HOME/lib目录下

          如果出现没有权限的问题,在mysql授权(在安装mysql的机器上执行)
            mysql -uroot -padmin
          #(执行下面的语句 *.*:所有库下的所有表 %:任何IP地址或主机都可以连接)
          GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'admin' WITH GRANT OPTION;
          FLUSH PRIVILEGES;

    6、Exception in thread "main" Java.lang.RuntimeException: java.lang.IllegalArgumentException: java.net.URISyntaxException: Relative path in absolute URI: ${system:java.io.tmpdir%7D/$%7Bsystem:user.name%7D
    启动hive的时候,出现的错误:原因:system:java.io.tmpdir 和system:user.name提示需要使用绝对路径

    解决办法:将conf/hive-site.xml中所有的system:java.io.tmpdir 和system:user.name都换成绝对路径。

         hive-1.2.1版本中有四处需要修改: 

     1 <property>
     2     <name>hive.exec.local.scratchdir</name>
     3     <value>${system:java.io.tmpdir}/${system:user.name}</value>
     4     <description>Local scratch space for Hive jobs</description>
     5   </property>
     6   <property>
     7     <name>hive.downloaded.resources.dir</name>
     8     <value>${system:java.io.tmpdir}/${hive.session.id}_resources</value>
     9     <description>Temporary local directory for added resources in the remote file system.</description>
    10   </property>
    11    <property>
    12     <name>hive.querylog.location</name>
    13     <value>${system:java.io.tmpdir}/${system:user.name}</value>
    14     <description>Location of Hive run time structured log file</description>
    15   </property>
    16     <property>
    17     <name>hive.server2.logging.operation.log.location</name>
    18     <value>${system:java.io.tmpdir}/${system:user.name}/operation_logs</value>
    19     <description>Top level directory where operation logs are stored if logging functionality is enabled</description>
    20   </property>

    将上述配置修改为:

     1 <property>
     2     <name>hive.exec.local.scratchdir</name>
     3     <value>/usr/local/hive/iotmp/hive</value>
     4     <description>Local scratch space for Hive jobs</description>
     5 </property>
     6 <property>
     7     <name>hive.downloaded.resources.dir</name>
     8     <value>/usr/local/hive/iotmp/${hive.session.id}_resources</value>
     9     <description>Temporary local directory for added resources in the remote file system.</description>
    10 </property>
    11 <property>
    12     <name>hive.querylog.location</name>
    13     <value>/usr/local/hive/iotmp/hive</value>
    14     <description>Location of Hive run time structured log file</description>
    15 </property>
    16 <property>
    17     <name>hive.server2.logging.operation.log.location</name>
    18     <value>/usr/local/hive/iotmp/hive/operation_logs</value>
    19     <description>Top level directory where operation logs are stored if logging functionality is enabled</description>
    20 </property>

    修改的后的新路径在hive中是没有的,所以要手动在hive中新建相关目录:在/usr/local/hive/新建iotmp文件夹,然后在/usr/local/hive/iotmp/目录下新建hive文件夹。

    7、[ERROR] Terminal initialization failed; falling back to unsupported
    java.lang.IncompatibleClassChangeError: Found class jline.Terminal, but interface was expected
    Jline包版本不一致的问题,需要拷贝hive的lib目录中jline.2.12.jar的jar包替换掉hadoop中的
    cp  /usr/local/hive/libjline.2.12.jar   /usr/local/hadoop/share/hadoop/yarn/lib/jline-0.9.94.jar

    rm -rf   /usr/local/hadoop/share/hadoop/yarn/lib/jline-0.9.94.jar


    8、启动hive(之前要启动hadoop集群)
    bin/hive

      

  • 相关阅读:
    Mina之session
    GNU C 、ANSI C、标准C、标准c++区别和联系
    SOCKET CLOSE_WAIT 搜集
    [转]二维数组和二级指针的传递问题
    Linux下C语言线程池的实现(1)
    MINA2 之日志配置
    mina里的死锁检测
    MINA2中的拆包组包的处理及一些方法
    void及void指针含义的深刻解析
    JS轻松实现单击文本框弹出选择日期
  • 原文地址:https://www.cnblogs.com/ahu-lichang/p/6815933.html
Copyright © 2020-2023  润新知