zoukankan      html  css  js  c++  java
  • Hive(2)-Hive安装及简单使用

      本文的安装版本为Hive 3.1.2,且安装为单节点。

    1. 安装参考及注意事项

    (1) 官网:http://hive.apache.org/

    (2) 上篇博客:Hadoop 3.1.3伪分布式环境安装Hive 3.1.2的异常总结

    2. 常见属性配置

    (1) Hive数据仓库位置

    1) default数据仓库原始位置在hdfs上,默认路径为/user/hive/warehouse

    2) 在仓库目录下,没有对默认的数据库default创建文件夹。如果某张表属于default数据库,直接在数据仓库目录下创建一个文件夹

    3) 修改default数据仓库原始位置(将hive-default.xml.template如下配置信息拷贝到hive-site.xml文件中)

    <property>
        <name>hive.metastore.warehouse.dir</name>
        <value>/user/hive/warehouse</value>
        <description>location of default database for the  
    warehouse</description>
    </property>
    View Code

     (2) 查询后常用信息显示配置

    1) 在hive-site.xml文件中添加如下配置信息,就可以实现显示当前数据库,以及查询表的头信息配置

    <!-- 显示表的列名 -->
    <property>
        <name>hive.cli.print.header</name>
        <value>true</value>
    </property>
    
    <!-- 显示数据库名称 -->
    <property>
        <name>hive.cli.print.current.db</name>
        <value>true</value>
    </property>
    View Code

       (3) 参数配置方式

    1) 查看当前配置: set;

    2) 参数配置三种方式

    a. 默认配置文件: hive-default.xml,用户自定义文件:hive-site.xml

    注意:用户自定义配置会覆盖默认配置。另外,Hive也会读入Hadoop的配置,因为Hive是作为Hadoop的客户端启动的,Hive的配置会覆盖Hadoop的配置。配置文件的设定对本机启动的所有Hive进程都有效

    b. 命令行参数方式

    启动hive时,可以通过--hiveconf <property=value>方式进行配置,注意仅对本次hive启动有效。例如:

    hive -hiveconf mapred.reduce.tasks=10;

    查看参数设置:set mapred.reduce.tasks;

    c. 参数声明方式

    可以在HQL中使用SET关键字设定参数:hive> set mapred.reduce.tasks=100;

    上述三种设定方式的优先级依次递增。即配置文件<命令行参数<参数声明。注意某些系统级的参数,例如log4j相关的设定,必须用前两种方式设定,因为那些参数的读取在会话建立以前已经完成了

    3. 简单使用

    (1) 启动hive: 配置环境变量后,直接运行hive即可

    (2) 查看当前数据库: show databases;

    (3) 打开默认数据库: user default;

    (4) 创建一张表: create table test(id int, name string);

    (5) 显示数据库中有几张表: show tables;

    (6) 查看简要表结构: desc student;

    (7) 查看详细表结构: desc formatted student;

    (8) 向表中插入数据: insert into student values(1,'ws');

    (9) 查询表中数据: select * from student;

    (10) 退出: quit;或exit;

    4. 本地文件导入Hive

    (1) 本地数据文件student.txt,内容如下:

    1001    ss1
    1002    ss2
    1003    ss3
    1004    ss4
    1005    ss5
    1006    ss6
    1007    ss7
    1008    ss8
    View Code

       (2) 创建数据表,且文件分隔符为' ':

    create table if not exists student(id int, name string) row format delimited fields terminated by ' ';

    (3) 加载本地

    load data local inpath '/home/ws/module/hive/data/student.txt' into table student;

    (4) 查询结果:

    select * from student;

  • 相关阅读:
    MySQL:数据库优化,看这篇就够了
    不使用synchronized和lock,如何实现一个线程安全的单例
    理解Spring:IOC的原理及手动实现
    终于放弃了单调的swagger-ui了,选择了这款神器—knife4j
    TP5.0.24 验证器内置规则中max 如果输入中文 验证长度错误的问题
    laravel 5.5 api接口开发:JWT安装+实现API token 认证
    homestead 代码与本地代码不同步的解决方法
    laravel 5.5 api接口开发: 安装dingo/api
    php base_decode 函数将base64编码转换图片遇到的问题
    thinkphp 5.0 部署新网空间隐藏index.php入口
  • 原文地址:https://www.cnblogs.com/mengrennwpu/p/12107026.html
Copyright © 2011-2022 走看看