• hive学习笔记


    1.OLAP离线计算,在线分析
    2.HiveSQL,是类Sql语言
    3.hive的表是存放在rdbms中的
    4.hive处理的数据就是hdfs,hive在查询的时候通常会转换成mr,但不是所有的查询都会转成mr,比如全字段扫描,全表扫面,不加任何条件,就是全字段的读取,聚合查询需要转成mr

    内部表,管理表,托管表

    表和数据都是由hive进行管理的,在drop表的时候,表被删除了,那么数据也就没有了
    

    外部表

    hive只是维护表结构的,当删除表的时候,当删除表的时候数据还在,安全性比较高
    

    分区表

    分区就是目录。在创建表的时候可以指定分区,在查询的时候可以把分区映射成字段,可以缩小查询范围
    

    桶表

    桶表对应的是文件,桶表在建表的时候需要指定按照哪个表进行分桶clustered by 
    

    union查询

    联合查询,是竖直的,把多个表的数据叠加在一起返回
    select id,name from customers union select id,orderno from orders ;
    

    join查询

    连接查询是水平的,把两个表或者多个表的记录合在一条记录上来返回
    

    hive使用jdbc协议实现远程访问

    $hive        //hive --service cli
    $hive --service hiveserver2    //启动hiveserver2,10000,要实现beeline远程访问的话,就需要启动这个服务器
    $hive --service beeline        //$hive>beeline
    

    在hive中,大部分的操作都是sql操作

    hive建表的语句

    create table xxx(id int ,name string,age int) partitioned by(year int,month int) row format delimited fields terminated by ","
    

    导出表数据

    $export table customers to '/user/centos/tmp.txt'
    
    //order by全排序
    $hive>select * from orders order by id asc;//注意:一旦order by就会变成mr了 
    
    //sort,map端排序,也就是本地有序
    $hive>select * from orders sort by id asc;
    
     set hive.exec.reducers.bytes.per.reducer=<number>        //设置每一个reduce作业处理的字节数
    
     set hive.exec.reducers.max=<number>                            //设置reduce作业的最大任务数
    
    set mapreduce.job.reduces=<number>                            //设置reduce的个数
    
    //distribute by 类似于mysql的group by,进行分区操作。
    $hive>select id,orderno,cid form orders distribute by cid sort by cid desc;
    

    函数

    mysql>select concat('tom',1000);
    

    hive事务处理

    1.使用事务性操作
    

    $hive>set hive.support.concurrency=true;
    $hive>set hive.enforce.bucketing=true;
    $hive>set.exec.dynamic.partition.mode=nonstrict;
    $hive>set hive.txn.manager=org.apache.hadoop.hive.ql.lockmgr.DbTxnManager;
    $hive>set hive.comparator.initiator.on=true;
    $hive>set hive.comparator.worker.threads = 1;

  • 相关阅读:
    [转]托管DirectX,从MDX到SlimDX的转换
    [连载]Tutorial series: learning how to write a 3D soft engine from scratch in C#, TypeScript or JavaScript[英]
    关于VS2010 C#使用DirectX的问题[英]
    C#调试含有源代码的动态链接库遇见there is no source code available for the current location提示时的解决方案
    C#常用控件缩写
    朴素贝叶斯
    scikit-learn 入门
    机器学习(6): 层次聚类 hierarchical clustering
    机器学习(5): K-means 算法
    机器学习(4): KNN 算法
  • 原文地址:https://www.cnblogs.com/stone-learning/p/9280056.html
Copyright © 2020-2023  润新知