zoukankan      html  css  js  c++  java
  • Hive 的安装与配置

    hive只是一个客户端,只要安装机器上有jdk和Hadoop就可以,解压即用

    因为hive默认是derby数据库,而derby数据库的弊端如下

      ①默认只会从当前目录下读取metastore_db的库文件

      ②不支持多实例同时使用一个库

    所以重点是如何配置数据库在MySQL上

    1、检查有没有旧的MySQL,有就进行卸载

    rpm -qa | grep mysql
    rpm -qa | grep MySQL
    sudo rpm -e --nodeps mysql-libs-5.1.73-7.el6.x86_6

    2、安装MySQL的服务端和客户端

    sudo rpm -ivh MySQL-server-5.6.24-1.el6.x86_64.rpm
    sudo rpm -ivh MySQL-client-5.6.24-1.el6.x86_64.rpm

    3、设置密码

      

    //查看随机生成的密码:
    sudo cat /root/.mysql_secret
    //启动服务:
    sudo service mysql start
    //登录后修改密码:
    mysql -uroot -p刚查询的随机密码
    //修改密码:
    SET PASSWORD=password('密码')

    4、使root用户可从任意机器登录

    //删除除了localhost的所有用户
    delete from mysql.user where host <> 'localhost';
    //修改root用户可以从任意机器登录:
    update mysql.user set host='%' where user='root';
    //刷新
    flush privileges;

    //查看当前连接的线程:
    sudo mysqladmin processlist -uroot -p123456

    5、到hive 的conf目录下配置hive-site.xml

    <?xml version="1.0"?>
    <?xml-stylesheet type="text/xsl" href="configuration.xsl"?>
    <configuration>
        <property>
          <name>javax.jdo.option.ConnectionURL</name>
          <value>jdbc:mysql://hadoop102:3306/metastore?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>000000</value>
          <description>password to use against metastore database</description>
        </property>
    </configuration>

    6、mysql-connector-java-5.1.27.tar.gz驱动包复制到hive的lib目录下

    7、注意,metastore数据的编码必须为latin1!因为系统会按照MySQL的配置创建库,所以建议自己手动创建该库,确保编码正确!

         另外如果是MySQL5.5版本,需要另外配置my.cnf文件(在/usr/share/mysql/ 中找到my.cnf的配置文件,拷贝其中的my-huge.cnf 到 /etc/  并命名为my.cnf 。)

      

    [mysqld]
    //新增以下字段
    binlog_format=ROW

     接下来就是hive的一些常用配置

    在hive-site中配置以下参数

    <!--更改default仓库的路径-->
    <property>
    <name>hive.metastore.warehouse.dir</name>
    <value>/user/hive/warehouse</value>
    <description>location of default database for the warehouse</description>
    </property>
    
    
    <!-- 将当前使用的数据库和查询的表头显示-->
    <property>
        <name>hive.cli.print.header</name>
        <value>true</value>
    </property>
    
    <property>
        <name>hive.cli.print.current.db</name>
        <value>true</value>
    </property>
    
    <!-- 下面是hive 2.0X需要的配置-->
    <!-- 强制metastore的schema一致性,开启的话会校验在metastore中存储的信息的版本和hive的jar包中的版本一致性,
        并且关闭自动schema迁移,用户必须手动的升级hive并且迁移schema,关闭的话只会在版本不一致时给出警告-->
        <property>
            <name>hive.metastore.schema.verification</name>
            <value>false</value>
        </property>
        <!-—如果数据库中没有元数据信息表,则自动创建,用户也可用bin/schematool自己创建-->
        <property>
            <name>datanucleus.schema.autoCreateAll</name>
            <value>true</value> 
        </property>
        <!-—允许其他支持thrift协议的框架读取元数据来进行计算-->
        <property>
            <name>hive.metastore.uris</name>
            <value>thrift://hadoop102:9083</value>
        </property>

    2、hive 的运行日志默认存放在Linux 根目录下/tmp/${user}/hive.log/文件夹下,

    如果要修改,需要将hive/conf下hive-log4j.properties.template文件名称为

    hive-log4j.properties并修改参数

    hive.log.dir=要存放的路径;

    Hive 2.0X版本使用注意点

    hive2.0x需要开启metastore元数据服务,才能访问hive的元数据

    nohup bin/hive --service metastore &

     使用其他工具远程连接Hive

    编辑hdfs-site.xml,添加如下属性:

    <property>  
    <name>dfs.webhdfs.enabled</name>  
    <value>true</value>  
    </property> 

    编辑core-site.xml添加如下属性:

    <property>
    <name>hadoop.proxyuser.atguigu.hosts</name>
    <value>*</value>
    </property>
    <property>
    <name>hadoop.proxyuser.atguigu.groups</name>
    <value>*</value>
    </property>

    分发重启集群

    开启hiveserver2服务

    nohup bin/hive --service hiveserver2 &
  • 相关阅读:
    模板实现一个通用栈
    服务器开发
    objectc获取文件各项属性方法
    Visual C++ MFC 中常用宏的含义
    symbian获取中文的拼音
    sip协议的功能及其应用
    【转】MySQL分区的简单实例,用于解决大数据表的问题
    Symbian c++ 在3版中实现并动态配置开机自启动
    (转)如果你也喜欢用goto
    C++实现查找汉字拼音首字母
  • 原文地址:https://www.cnblogs.com/yangxusun9/p/12408915.html
Copyright © 2011-2022 走看看