• Hive(二)CentOS7.5安装Hive2.3.3


    一 Hive的下载

    软件下载地址:https://mirrors.tuna.tsinghua.edu.cn/apache/hive/   这里下载的版本是:apache-hive-2.3.3-bin.tar.gz

    官方安装配置文档:https://cwiki.apache.org/confluence/display/Hive/GettingStarted

    二 Hive单用户安装

    远程Metastore数据库

    1  解压配置环境变量

    #解压指定位置安装
    [admin@node21 software]$ tar zxvf apache-hive-2.3.3-bin.tar.gz -C /opt/module/
    [admin@node21 module]$ mv apache-hive-2.3.3-bin hive-2.3.3
    #配置环境变量
    [admin@node21 hive-2.3.3]$ sudo vi /etc/profile
    末尾追加
    export  HIVE_HOME=/opt/module/hive-2.3.3
    export  PATH=$PATH:$HIVE_HOME/bin
    重新编译环境变量生效
    [admin@node21 hive-2.3.3]$ source /etc/profile

    2 配置Hive文件

    2.1 修改hive-env.sh

    [admin@node21 conf]$ cd /opt/module/hive-2.3.3/conf
    [admin@node21 conf]$ cp hive-env.sh.template hive-env.sh 
    [admin@node21 conf]$ vi hive-env.sh 
    # HADOOP_HOME=${bin}/../../hadoop
    打开注释修改 HADOOP_HOME=/opt/module/hadoop-2.7.6
    # export HIVE_CONF_DIR=
    打开注释修改 HIVE_CONF_DIR=/opt/module/hive-2.3.3/conf

    2.2 修改hive-log4j.properties

    修改hive的log存放日志到/opt/module/hive-2.3.3/logs

    [admin@node21 conf]$ mv hive-log4j2.properties.template hive-log4j2.properties
    [admin@node21 conf]$ vi hive-log4j2.properties
    找到 property.hive.log.dir = ${sys:java.io.tmpdir}/${sys:user.name}
    修改 property.hive.log.dir = /opt/module/hive-2.3.3/logs

    3 配置MySQL作为Metastore

    默认情况下, Hive的元数据保存在了内嵌的 derby 数据库里, 但一般情况下生产环境使用 MySQL 来存放 Hive 元数据。

    3.1 安装mysql

    参考地址:CentOS7.5安装Mysql5.7.22

    安装mysql,拷贝 mysql-connector-java-5.1.9-bin.jar 放入 $HIVE_HOME/lib 下。

    [admin@node21 software]$ cp mysql-connector-java-5.1.9.jar  /opt/module/hive-2.3.3/lib/

    3.2 修改配置文件

    参数配置文档:https://cwiki.apache.org/confluence/display/Hive/AdminManual+MetastoreAdmin

    复制hive-default.xml.template为hive-site.xml 文件,删除掉configuration里的配置信息,重新配置 MySQL 数据库连接信息。

    [admin@node21 conf]$ vi hive-site.xml

    删除命令:光标在configuration的下一行,输入:.,$-1d  (光标所在行到 倒数第二行)回车,进行如下编辑

    <?xml version="1.0" encoding="UTF-8" standalone="no"?>
    <?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
    <configuration> 
    <!--Hive作业的HDFS根目录位置 --> 
    <property>
        <name>hive.exec.scratchdir</name>
        <value>/user/hive/tmp</value>
    </property>
    <!--Hive作业的HDFS根目录创建写权限 --> 
    <property>
        <name>hive.scratch.dir.permission</name>
        <value>733</value>
    </property>
    <!--hdfs上hive元数据存放位置 --> 
    <property>  
      <name>hive.metastore.warehouse.dir</name>  
      <value>/user/hive/warehouse</value>   
    </property>
    <!--连接数据库地址,名称 -->  
    <property>
      <name>javax.jdo.option.ConnectionURL</name>
      <value>jdbc:mysql://node21:3306/hive?createDatabaseIfNotExist=true</value>  
    </property>  
    <!--连接数据库驱动 --> 
    <property>
      <name>javax.jdo.option.ConnectionDriverName</name>  
      <value>com.mysql.jdbc.Driver</value>  
    </property> 
    <!--连接数据库用户名称 -->  
    <property>  
      <name>javax.jdo.option.ConnectionUserName</name>  
      <value>hive</value>
    </property> 
    <!--连接数据库用户密码 -->  
    <property>  
      <name>javax.jdo.option.ConnectionPassword</name>  
      <value>hive</value>
    </property>
    <!--客户端显示当前查询表的头信息 --> 
     <property>
      <name>hive.cli.print.header</name>
      <value>true</value>
    </property>
    <!--客户端显示当前数据库名称信息 --> 
    <property>
      <name>hive.cli.print.current.db</name>
      <value>true</value>
    </property> 
    </configuration> 

    3.3 mysql创建hive用户密码

    mysql> CREATE DATABASE hive; 
    mysql> USE hive; 
    mysql> CREATE USER 'hive'@'localhost' IDENTIFIED BY 'hive';
    mysql> GRANT ALL ON hive.* TO 'hive'@'localhost' IDENTIFIED BY 'hive'; 
    mysql> GRANT ALL ON hive.* TO 'hive'@'%' IDENTIFIED BY 'hive'; 
    mysql> FLUSH PRIVILEGES; 
    mysql> quit;

    4  运行Hive

    4.1 初始化数据库

    从Hive 2.1开始,我们需要运行下面的schematool命令作为初始化步骤。例如,这里使用“mysql”作为db类型。 

    [admin@node21 conf]$ schematool -dbType mysql -initSchema

    终端输出如下信息

    SLF4J: Class path contains multiple SLF4J bindings.
    SLF4J: Found binding in [jar:file:/opt/module/hive-2.3.3/lib/log4j-slf4j-impl-2.6.2.jar!/org/slf4j/impl/StaticLoggerBinder.class]
    SLF4J: Found binding in [jar:file:/opt/module/hadoop-2.7.6/share/hadoop/common/lib/slf4j-log4j12-1.7.10.jar!/org/slf4j/impl/StaticLoggerBinder.class]
    SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
    SLF4J: Actual binding is of type [org.apache.logging.slf4j.Log4jLoggerFactory]
    Metastore connection URL:     jdbc:mysql://node21/hive?createDatabaseIfNotExist=true
    Metastore Connection Driver :     com.mysql.jdbc.Driver
    Metastore connection User:     hive
    Starting metastore schema initialization to 2.3.0
    Initialization script hive-schema-2.3.0.mysql.sql
    Initialization script completed
    schemaTool completed

    执行成功后,可以使用Navicat Premium 查看元数据库 hive 是否已经创建成功。

    4.2 启动 Hive 客户端

    启动Hadoop服务,使用 Hive CLI(Hive command line interface), hive --service cli和hive效果一样,可以在终端输入以下命令:

    [admin@node21 conf]$ hive

    启动信息如下:

    which: no hbase in (/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/opt/module/jdk1.8/bin:/opt/module/jdk1.8/sbin:/opt/module/zookeeper-3.4.12/bin:/opt/module/
    hadoop-2.7.6/bin:/opt/module/hadoop-2.7.6/sbin:/opt/module/hive-2.3.3/bin:/home/admin/.local/bin:/home/admin/bin)SLF4J: Class path contains multiple SLF4J bindings.
    SLF4J: Found binding in [jar:file:/opt/module/hive-2.3.3/lib/log4j-slf4j-impl-2.6.2.jar!/org/slf4j/impl/StaticLoggerBinder.class]
    SLF4J: Found binding in [jar:file:/opt/module/hadoop-2.7.6/share/hadoop/common/lib/slf4j-log4j12-1.7.10.jar!/org/slf4j/impl/StaticLoggerBinder.class]
    SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
    SLF4J: Actual binding is of type [org.apache.logging.slf4j.Log4jLoggerFactory]
    
    Logging initialized using configuration in file:/opt/module/hive-2.3.3/conf/hive-log4j2.properties Async: true
    Hive-on-MR is deprecated in Hive 2 and may not be available in the future versions. Consider using a different execution engine (i.e. spark, tez) or using Hive 1.X rel
    eases.hive (default)>  

    三 多用户安装

    用于非Java客户端访问元数据库,在服务器端启动MetaStoreServer,客户端利用Thrift协议通过MetaStoreServer访问元数据库。

    1 本地Metastore服务器

    在本地/嵌入式Metastore设置中,Metastore服务器组件像Hive Client中的库一样使用。 每个Hive客户端都将打开一个到数据库的连接并对其进行SQL查询。确保可以从执行Hive查询的机器访问数据库,因为这是本地存储。还要确保JDBC客户端库位于Hive Client的类路径中。此配置通常与HiveServer2一起使用。

    这里node21作为MySQL Server,node22同时作为Metastore服务器和客户端。

    1.1 解压安装hive

    [admin@node22 software]$ tar zxvf apache-hive-2.3.3-bin.tar.gz -C /opt/module/
    [admin@node22 module]$ mv apache-hive-2.3.3-bin hive-2.3.3

    1.2 配置环境变量

    [admin@node22 module]$ sudo vi /etc/profile
    末尾追加
    export  HIVE_HOME=/opt/module/hive-2.3.3
    export  PATH=$PATH:$HIVE_HOME/bin
    重新编译环境变量生效
    [admin@node22 hive-2.3.3]$ source /etc/profile

    1.3 修改conf文件

    1.3.1 修改hive-env.sh

    [admin@node22 conf]$ cd /opt/module/hive-2.3.3/conf
    [admin@node22 conf]$ cp hive-env.sh.template hive-env.sh 
    [admin@node22 conf]$ vi hive-env.sh 
    # HADOOP_HOME=${bin}/../../hadoop
    打开注释修改 HADOOP_HOME=/opt/module/hadoop-2.7.6
    # export HIVE_CONF_DIR=
    打开注释修改 HIVE_CONF_DIR=/opt/module/hive-2.3.3/conf

    1.3.2 修改hive-log4j.properties

    [admin@node22 conf]$ mv hive-log4j2.properties.template hive-log4j2.properties
    [admin@node21 conf]$ vi hive-log4j2.properties
    找到 property.hive.log.dir = ${sys:java.io.tmpdir}/${sys:user.name}
    修改 property.hive.log.dir = /opt/module/hive-2.3.3/logs

    1.3.3 修改hive-site.xml 

    <?xml version="1.0" encoding="UTF-8" standalone="no"?>
    <?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
    <configuration>
    <!--Hive作业的HDFS根目录位置 --> 
    <property>
        <name>hive.exec.scratchdir</name>
        <value>/user/hive/tmp</value>
    </property>
    <!--Hive作业的HDFS根目录创建写权限 --> 
    <property>
        <name>hive.scratch.dir.permission</name>
        <value>733</value>
    </property>
    <!--hdfs上hive元数据存放位置 --> 
    <property>  
      <name>hive.metastore.warehouse.dir</name>  
      <value>/user/hive/warehouse</value>   
    </property>
    <!--连接数据库地址,名称 -->  
    <property>
      <name>javax.jdo.option.ConnectionURL</name>
      <value>jdbc:mysql://node21:3306/hive?createDatabaseIfNotExist=true</value>  
    </property>  
    <!--连接数据库驱动 --> 
    <property>
      <name>javax.jdo.option.ConnectionDriverName</name>  
      <value>com.mysql.jdbc.Driver</value>  
    </property> 
    <!--连接数据库用户名称 -->  
    <property>  
      <name>javax.jdo.option.ConnectionUserName</name>  
      <value>hive</value>
    </property> 
    <!--连接数据库用户密码 -->  
    <property>  
      <name>javax.jdo.option.ConnectionPassword</name>  
      <value>hive</value>
    </property>
    <!--客户端显示当前查询表的头信息 --> 
     <property>
      <name>hive.cli.print.header</name>
      <value>true</value>
    </property>
    <!--客户端显示当前数据库名称信息 --> 
    <property>
      <name>hive.cli.print.current.db</name>
      <value>true</value>
    </property> 
    </configuration> 

    1.4 运行Hive

    初始化数据库

    [admin@node22 conf]$ schematool -dbType mysql -initSchema  hive hive

    1.4.1第一种方式

    服务端启动:

    [admin@node22 ~]$ hive --service metastore 

    客户端启动:

    [admin@node22 ~]$ hive

    退出:quit

    1.4.2第二种方式

    服务端启动:

    [admin@node22 ~]$  hiveserver2

    客户端启动:

    [admin@node22 ~]$  beeline -u  jdbc:hive2://node22:10000 -n hive hive 
    或者
    [admin@node22 ~]$  beeline 
    !connect jdbc:hive2://node22:10000 hive hive

    退出:

    !quit

    2 远程Metastore服务器

    这里node21作为MySQL Server,node22作为Metastore服务器,node23作为客户端。

    2.1 解压安装hive

    [admin@node22 software]$ tar zxvf apache-hive-2.3.3-bin.tar.gz -C /opt/module/
    [admin@node22 module]$ mv apache-hive-2.3.3-bin hive-2.3.3
    [admin@node23 software]$ tar zxvf apache-hive-2.3.3-bin.tar.gz -C /opt/module/
    [admin@node23 module]$ mv apache-hive-2.3.3-bin hive-2.3.3

    2.2 配置环境变量

    [admin@node22 module]$ sudo vi /etc/profile
    [admin@node23 module]$ sudo vi /etc/profile
    末尾追加
    export  HIVE_HOME=/opt/module/hive-2.3.3
    export  PATH=$PATH:$HIVE_HOME/bin
    重新编译环境变量生效
    [admin@node22 hive-2.3.3]$ source /etc/profile
    [admin@node22 hive-2.3.3]$ source /etc/profile

    2.3 修改conf文件

    2.3.1 修改hive-env.sh

    修改node22,node23节点的hive-env.sh 
    cd /opt/module/hive-2.3.3/conf
    cp hive-env.sh.template hive-env.sh 
    vi hive-env.sh 
    # HADOOP_HOME=${bin}/../../hadoop
    打开注释修改 HADOOP_HOME=/opt/module/hadoop-2.7.6
    # export HIVE_CONF_DIR=
    打开注释修改 HIVE_CONF_DIR=/opt/module/hive-2.3.3/conf

    2.3.2 修改hive-log4j.properties

    修改node22,node23节点上的hive-log4j2.properties
    mv hive-log4j2.properties.template hive-log4j2.properties
    vi hive-log4j2.properties
    找到 property.hive.log.dir = ${sys:java.io.tmpdir}/${sys:user.name}
    修改 property.hive.log.dir = /opt/module/hive-2.3.3/logs

    2.3.3 修改hive-site.xml 

    服务端配置

    <?xml version="1.0" encoding="UTF-8" standalone="no"?>
    <?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
    <configuration>
    <!--Hive作业的HDFS根目录位置 --> 
    <property>
        <name>hive.exec.scratchdir</name>
        <value>/user/hive/tmp</value>
    </property>
    <!--Hive作业的HDFS根目录创建写权限 --> 
    <property>
        <name>hive.scratch.dir.permission</name>
        <value>733</value>
    </property>
    <!--hdfs上hive元数据存放位置 --> 
    <property>  
      <name>hive.metastore.warehouse.dir</name>  
      <value>/user/hive/warehouse</value>   
    </property>
    <!--连接数据库地址,名称 -->  
    <property>
      <name>javax.jdo.option.ConnectionURL</name>
      <value>jdbc:mysql://node21:3306/hive?createDatabaseIfNotExist=true</value>  
    </property>  
    <!--连接数据库驱动 --> 
    <property>
      <name>javax.jdo.option.ConnectionDriverName</name>  
      <value>com.mysql.jdbc.Driver</value>  
    </property> 
    <!--连接数据库用户名称 -->  
    <property>  
      <name>javax.jdo.option.ConnectionUserName</name>  
      <value>hive</value>
    </property> 
    <!--连接数据库用户密码 -->  
    <property>  
      <name>javax.jdo.option.ConnectionPassword</name>  
      <value>hive</value>
    </property>
    <!--客户端显示当前查询表的头信息 --> 
     <property>
      <name>hive.cli.print.header</name>
      <value>true</value>
    </property>
    <!--客户端显示当前数据库名称信息 --> 
    <property>
      <name>hive.cli.print.current.db</name>
      <value>true</value>
    </property> 
    </configuration> 

    客户端配置

    <?xml version="1.0" encoding="UTF-8" standalone="no"?>
    <?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
    <configuration>
    <!--Hive作业的HDFS根目录位置 --> 
    <property>
        <name>hive.exec.scratchdir</name>
        <value>/user/hive/tmp</value>
    </property>
    <!--Hive作业的HDFS根目录创建写权限 --> 
    <property>
        <name>hive.scratch.dir.permission</name>
        <value>733</value>
    </property>
    <!--hdfs上hive元数据存放位置,默认 -->
    <property>
      <name>hive.metastore.warehouse.dir</name>
      <value>/user/hive/warehouse</value>
    </property>
    <!--元数据存放路径 -->
    <property>
      <name>hive.metastore.uris</name>
      <value>thrift://node22:9083</value>
    </property>
    <!--客户端显示当前查询表的头信息 -->
     <property>
      <name>hive.cli.print.header</name>
      <value>true</value>
    </property>
    <!--客户端显示当前数据库名称信息 -->
    <property>
      <name>hive.cli.print.current.db</name>
      <value>true</value>
    </property> 
    </configuration>

    2.4 运行Hive

    拷贝 mysql-connector-java-5.1.9-bin.jar到服务端hive/lib下。

    初始化服务器端

    [admin@node22 conf]$ schematool -dbType mysql -initSchema  hive hive

    启动方式:

    服务端node22启动命令:

    [root@node22 ~]# hive  --service metastore
    2018-06-10 20:23:47: Starting Hive Metastore Server

    查看node22的9083端口:

    [root@node22 ~]# netstat -nptl | grep 9083

    客户端node23启动命令:

    [root@node23 ~]# hive
    SLF4J: Class path contains multiple SLF4J bindings.
    SLF4J: Found binding in [jar:file:/opt/module/hive-2.3.3/lib/log4j-slf4j-impl-2.6.2.jar!/org/slf4j/impl/StaticLoggerBinder.class]
    SLF4J: Found binding in [jar:file:/opt/module/hadoop-2.7.6/share/hadoop/common/lib/slf4j-log4j12-1.7.10.jar!/org/slf4j/impl/StaticLoggerBinder.class]
    SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
    SLF4J: Actual binding is of type [org.apache.logging.slf4j.Log4jLoggerFactory]
    
    Logging initialized using configuration in file:/opt/module/hive-2.3.3/conf/hive-log4j2.properties Async: true
    Hive-on-MR is deprecated in Hive 2 and may not be available in the future versions. Consider using a different execution engine (i.e. spark, tez) or using Hive 1.X rel
    eases.hive (default)> 

    四 Hive基本使用

    现有一个文件student.txt,将其存入hive中,student.txt数据格式如下:

    95002,刘晨,女,19,IS
    95017,王风娟,女,18,IS
    95018,王一,女,19,IS
    95013,冯伟,男,21,CS
    95014,王小丽,女,19,CS
    95019,邢小丽,女,19,IS
    95020,赵钱,男,21,IS
    95003,王敏,女,22,MA
    95004,张立,男,19,IS
    95012,孙花,女,20,CS
    95010,孔小涛,男,19,CS
    95005,刘刚,男,18,MA
    95006,孙庆,男,23,CS
    95007,易思玲,女,19,MA
    95008,李娜,女,18,CS
    95021,周二,男,17,MA
    95022,郑明,男,20,MA
    95001,李勇,男,20,CS
    95011,包小柏,男,18,MA
    95009,梦圆圆,女,18,MA
    95015,王君,男,18,MA

    1、创建一个新数据库

    hive (default)> create database myhive;
    OK
    Time taken: 12.948 seconds
    hive (default)>

    2、使用新的数据库

    hive (default)> use myhive;
    OK
    Time taken: 0.931 seconds
    hive (myhive)>

    3、查看当前正在使用的数据库

    hive (myhive)> select current_database();
    OK
    _c0
    myhive
    Time taken: 16.21 seconds, Fetched: 1 row(s)
    hive (myhive)>

    4、在数据库myhive创建一张student表

    hive (myhive)> create table student(id int, name string, sex string, age int, department string) row format delimited fields terminated by ",";
    OK
    Time taken: 2.12 seconds
    hive (myhive)> 

    5、往表中加载数据

    hive (myhive)> load data local inpath "/opt/data/student.txt" into table student;
    Loading data to table myhive.student
    [Warning] could not update stats.
    OK
    Time taken: 26.859 seconds
    hive (myhive)> 

    6、查询数据

    hive (myhive)> select * from student;
    OK
    student.id    student.name    student.sex    student.age    student.department
    95002    刘晨    女    19    IS
    95017    王风娟    女    18    IS
    95018    王一    女    19    IS
    95013    冯伟    男    21    CS
    95014    王小丽    女    19    CS
    95019    邢小丽    女    19    IS
    95020    赵钱    男    21    IS
    95003    王敏    女    22    MA
    95004    张立    男    19    IS
    95012    孙花    女    20    CS
    95010    孔小涛    男    19    CS
    95005    刘刚    男    18    MA
    95006    孙庆    男    23    CS
    95007    易思玲    女    19    MA
    95008    李娜    女    18    CS
    95021    周二    男    17    MA
    95022    郑明    男    20    MA
    95001    李勇    男    20    CS
    95011    包小柏    男    18    MA
    95009    梦圆圆    女    18    MA
    95015    王君    男    18    MA
    Time taken: 5.867 seconds, Fetched: 21 row(s)
    hive (myhive)> 

    7、查看表结构

    hive (myhive)> desc student;
    OK
    col_name    data_type    comment
    id                      int                                         
    name                    string                                      
    sex                     string                                      
    age                     int                                         
    department              string                                      
    Time taken: 4.179 seconds, Fetched: 5 row(s)
    hive (myhive)> 

    五 故障解析

    1.没有初始化数据库

    [admin@node21 conf]$ hive
    which: no hbase in (/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/opt/module/jdk1.8/bin:/opt/module/jdk1.8/sbin:/opt/module/zookeeper-3.4.12/bin:/opt/module
    /hadoop-2.7.6/bin:/opt/module/hadoop-2.7.6/sbin:/home/admin/.local/bin:/home/admin/bin:/opt/module/jdk1.8/bin:/opt/module/jdk1.8/sbin:/opt/module/zookeeper-3.4.12/bin:/opt/module/hadoop-2.7.6/bin:/opt/module/hadoop-2.7.6/sbin:/opt/module/jdk1.8/bin:/opt/module/jdk1.8/sbin:/opt/module/zookeeper-3.4.12/bin:/opt/module/hadoop-2.7.6/bin:/opt/module/hadoop-2.7.6/sbin:/opt/module/jdk1.8/bin:/opt/module/jdk1.8/sbin:/opt/module/zookeeper-3.4.12/bin:/opt/module/hadoop-2.7.6/bin:/opt/module/hadoop-2.7.6/sbin:/opt/module/hive-2.3.3/bin)SLF4J: Class path contains multiple SLF4J bindings.
    SLF4J: Found binding in [jar:file:/opt/module/hive-2.3.3/lib/log4j-slf4j-impl-2.6.2.jar!/org/slf4j/impl/StaticLoggerBinder.class]
    SLF4J: Found binding in [jar:file:/opt/module/hadoop-2.7.6/share/hadoop/common/lib/slf4j-log4j12-1.7.10.jar!/org/slf4j/impl/StaticLoggerBinder.class]
    SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
    SLF4J: Actual binding is of type [org.apache.logging.slf4j.Log4jLoggerFactory]
    
    Logging initialized using configuration in jar:file:/opt/module/hive-2.3.3/lib/hive-common-2.3.3.jar!/hive-log4j2.properties Async: true
    Exception in thread "main" java.lang.IllegalArgumentException: java.net.URISyntaxException: Relative path in absolute URI: ${system:java.io.tmpdir%7D/$%7Bsystem:user.
    name%7D    at org.apache.hadoop.fs.Path.initialize(Path.java:205)
        at org.apache.hadoop.fs.Path.<init>(Path.java:171)
        at org.apache.hadoop.hive.ql.session.SessionState.createSessionDirs(SessionState.java:659)
        at org.apache.hadoop.hive.ql.session.SessionState.start(SessionState.java:582)
        at org.apache.hadoop.hive.ql.session.SessionState.beginStart(SessionState.java:549)
        at org.apache.hadoop.hive.cli.CliDriver.run(CliDriver.java:750)
        at org.apache.hadoop.hive.cli.CliDriver.main(CliDriver.java:686)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.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)
    Caused by: java.net.URISyntaxException: Relative path in absolute URI: ${system:java.io.tmpdir%7D/$%7Bsystem:user.name%7D
        at java.net.URI.checkPath(URI.java:1823)
        at java.net.URI.<init>(URI.java:745)
        at org.apache.hadoop.fs.Path.initialize(Path.java:202)
        ... 12 more 

    2.找不到hadoop home

    Cannot find hadoop installation: $HADOOP_HOME or $HADOOP_PREFIX must be set or hadoop must be in the path

    错误可是发现执行 : echo $HADOOP_HOME时可以看到内容

    最后发现问题修改 conf/hive-env.sh 中Hadoop的路径设置不正确。

  • 相关阅读:
    jQuery基础
    深入理解JVM内存模型(jmm)和GC
    oracle,哪些操作会导致索引失效?
    systemd
    一个我小时候玩过的我是猪不然关机的软件,我高仿了一个,超简单。
    自己写的求最大值实现,用到了模板函数。
    poj 1695
    poj 1192
    poj 1239
    poj 1170
  • 原文地址:https://www.cnblogs.com/frankdeng/p/9403942.html
Copyright © 2020-2023  润新知