zoukankan      html  css  js  c++  java
  • Ubuntu16下Hive 安装

    0.安装环境和版本

    Ubuntu16,hadoop版本是2.7.2 ,选择Hive版本为  hive-2.1.17

    1. Hive安装包下载

    地址: https://mirrors.tuna.tsinghua.edu.cn/apache/hive/

     

    2.上传到服务器后解压

    sudo mv apache-hive-2.1.1-bin.tar.gz /usr/local
    
    sudo tar zxvf apache-hive-2.1.1-bin.tar.gz
    
    sudo mv apache-hive-2.1.1-bin  hive
    
    sudo chown –R hadoop:hadoop hive

    3.配置

    sudo vi /etc/profile.d/hadoop.sh

     

    添加以下内容

    #For Hive
    
    export HIVE_HOME=/usr/local/hive
    
    export HIVE_CONF_DIR=$HIVE_HOME/conf
    
    export CLASSPATH=$CLASSPATH:$HIVE_HOME/lib
    
    export PATH=$PATH:$HIVE_HOME/bin

    保存后使用命令:source /etc/profile使环境变量立即生效

    4.下载并设置好jdbc connector 

    从此处下载:https://dev.mysql.com/downloads/connector/j/

    记住,将解压出来的jar放入hive lib

    sudo cp mysql-connector-java-5.1.42-bin.jar $HIVE_HOME/lib/

    ln -s /usr/share/java/mysql-connector-java-5.1.42-bin.jar $HIVE_HOME/lib/mysql-connector-java-5.1.42-bin.jar

    5. 配置MySQL作为Hive的元数据存储库

    如果没有安装好MySQL,先在服务器装好MySQL。

    1) 创建hive数据库和用户

    GRANT all privileges on *.* TO 'hive' identified by 'Hive@12345';
    
    create database hive;
    
    flush privileges;  

     

     6. 配置hive-site.xml文件

    1) 配置hive-site.xml文件

    cd $HIVE_HOME/conf
    
    cp hive-default.xml.template hive-site.xml

    修改

    <name>hive.metastore.schema.verification</name>
    
    <value>true</value>

    改为

    <name>hive.metastore.schema.verification</name>
    
        <value>false</value>

    设置HIVE元数据库连接信息

    <property>  
    
       <name>javax.jdo.option.ConnectionURL</name>  
    
       <value>jdbc:mysql://master: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>hive</value>  
    
      <description>username to use against metastore database</description>  
    
    </property>  
    
    <property>  
    
      <name>javax.jdo.option.ConnectionPassword</name>  
    
      <value>hive</value>  
    
      <description>password to use against metastore database</description>  
    
    </property>  

    6.初始化数据库

    在使用hive或者hive --service cli来运行之前需要初始化数据库,如果在初始化之前已经运行了上述命令并且失败,则需要删除产生的metastore_db文件

     

    使用命令schematool -initSchema -dbType mysql初始化mysql数据库

     

    出现以下几行说明初始化成功:

     

    7.启动Hive服务

    启动hive常用的两个服务

    # 使用这个服务,可以让metastore作为一个单独的(远程)进程运行

    nohup hive --service metastore 2>&1 >> /var/log.log &

    # 让Hive以提供Trift服务的服务器形式运行,允许用不同语言编写的客户端进行访问

    nohup hive  -–service hiveserver2  2>&1 >> /var/log.log &

     8. 复制hive到其他从节点

    将hive文件夹scp到其他从节点中,这样在其他服务器上也能访问hive

    9.报错解决

    1) 异常信息:

    异常信息:

    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

            at org.apache.Hadoop.hive.ql.session.SessionState.start(SessionState.java:444)

    解决:

    查看hive-site.xml配置,会看到配置值含有"system:java.io.tmpdir"的配置项

    2.新建文件夹在hive目录下新建一个tmp目录

    3. ${system:java.io.tmpdir}/${system:user.name} 这两个一起替换为 /usr/local/hive/tmp 路径,有两个地方要替换

  • 相关阅读:
    json不支持中文写入的问题解决
    include(thinkphp常用内置标签)
    php如何设置编码格式
    模板替换
    获取网页内容之后图片不显示
    远程调用数据文件内容
    文件上传
    getError自动验证
    php文档编码设置
    获取网页内容时的乱码问题
  • 原文地址:https://www.cnblogs.com/zjc10203/p/9064778.html
Copyright © 2011-2022 走看看