美文网首页
HIVE总结(待更新)

HIVE总结(待更新)

作者: chia奇亚币 | 来源:发表于2019-10-24 17:34 被阅读0次

    [TOC]

    组件

    metastore
    gateway
    hiveserver2
    

    1 在HDFS中创建/tmp和/user/hive/warehouse并设置权限

    hadoop fs -mkdir /tmp
    hadoop fs -mkdir -p /user/hive/warehouse
    hadoop fs -chmod g+w /tmp
    hadoop fs -chmod g+w /user/hive/warehouse
    

    2 下载mysql-connector-java-5.1.27-bin.jar文件,并放到$HIVE_HOME/lib目录下

    下载mysql-connector-java-5.1.27-bin.jar文件,并放到$HIVE_HOME/lib目录下

    https://mvnrepository.com/artifact/mysql/mysql-connector-java/5.1.27

    3 需要创建在mysql 中 hive 的数据库 (注意docker 中的mysql容器启动)

    • MariaDB数据库管理系统是MySQL的一个分支,启动我本地的maria

    [图片上传失败...(image-c078bb-1571909665062)]

    4 初始化meta数据库

    schematool -initSchema -dbType mysql
    

    5 测试hive shell

    hive
    show databases;
    show tables;
    
    • 红框是没启动数据库的
    • 绿框是启动后的
    img

    6 将本地文件考入 hdfs 文件系统中

    hdfs dfs -put <local> <hdfs>
    

    7 hive创建新表

    hive> CREATE TABLE t_hive (a int, b int, c int) ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t';
    OK
    Time taken: 0.121 seconds
    

    8 导入数据t_hive.txt到t_hive表(/hdfs导入)

    hive> LOAD DATA LOCAL INPATH '/tmp/t_hive.txt' OVERWRITE INTO TABLE t_hive ;
    Loading data to table default.t_hive
    OK
    Time taken: 0.609 seconds
    

    9 查看表

    hive> show tables;
    OK
    t_hive
    Time taken: 0.099 seconds
    

    10 正则匹配表名

    hive>show tables '*t*';
    OK
    t_hive
    Time taken: 0.065 seconds
    

    11 查看表结构

    hive> desc t_hive;
    OK
    a       int
    b       int
    c       int
    Time taken: 0.1 seconds
    

    12在hive中查看目录结构

    
    hive> dfs -lsr /;
    

    创建test表

    create table test(
    id int, name string
    ,tel string)
    partitioned by
    (age int)
    ROW FORMAT DELIMITED
    FIELDS TERMINATED BY '\t'
    STORED AS TEXTFILE;
    

    下面语句就是将wyp表中的查询结果并插入到test表中:

    hive> insert into table test
    partition (age='25')
    select id, name, tel
    from wyp;
    

    查看表

    hive> select * from test;
    

    让hive 事务支持ACID

    ---修改hive-site.xml-使他支持ACID--
    <property> 
    <name>hive.support.concurrency</name> 
    <value>true</value> 
    </property> 
    <property> 
    <name>hive.exec.dynamic.partition.mode</name> 
    <value>nonstrict</value> 
    </property> 
    <property> 
    <name>hive.txn.manager</name> 
    <value>org.apache.hadoop.hive.ql.lockmgr.DbTxnManager</value> 
    </property> 
    <property> 
    <name>hive.compactor.initiator.on</name> 
    <value>true</value> 
    </property> 
    <property> 
    <name>hive.compactor.worker.threads</name> 
    <value>2</value> 
    </property> 
    

    hive 动态分区 && 静态分区

    跟静态分区对比的好处是 sql 语句没有那么多。

    • 静态分区& 查询

      - 创建
      create table ptest (userid int) partitioned by (date string) row format delimited fields terminated by '\t';
      - 导入
      load data local inpath '/' into table ptest partion (date="2019-07-11");
      

    hive 分区表和分桶表

    分桶是相对分区进行更细粒度的划分。分桶将整个数据内容安装某列属性值得hash值进行区分,如要安装name属性分为3个桶,就是对name属性值的hash值对3取摸

    Hive学习之抽样(tablesample)

    当数据量特别大时,对全体数据进行处理存在困难时,抽样就显得尤其重要了。抽样可以从被抽取的数据中估计和推断出整体的特性,是科学实验、质量检验、社会调查普遍采用的一种经济有效的工作和研究方法。

    Hive支持桶表抽样和块抽样,下面分别学习。所谓桶表指的是在创建表时使用CLUSTERED BY子句创建了桶的表。桶表抽样的语法如下:

    table_sample: TABLESAMPLE (BUCKET x OUT OF y [ON colname]) 
    

    hive 引擎

    hive.execution.engine=spark
    hive.execution.engine=mr
    

    37开 - 原创文章(已经在多平台发表),转载请标明出处

    原文地址-99get81.com

    相关文章

      网友评论

          本文标题:HIVE总结(待更新)

          本文链接:https://www.haomeiwen.com/subject/nsedvctx.html