1. 一、一些说明
  1. 1.支持的操作
  2. hive 默认不支持updata delete操作 insert也是执行缓慢,主要用于数据的计算
  3. hive 数据类型---字符串,大部分与java一致。
  4.  
  5. 2.内外表的区别
  6. 内部表:完全交给hive管理,数据会存储在hive所在路径,删除时删掉源文件。
  7. 外部表:增加hive管理的表,创表时记录数据所在路径,不移动数据,删除时不删除源文件,只删除路径链接。
  1. 二、简单的命令
  1. show databases; 显示数据库
  2. create database dbName;     创建数据库
  3. drop database [IF EXISTS] dbName [cascade]         有则强制删除
  4. use {databaseName};    使用某一数据库
  5.  
  6. desc tabName  查看表结构
  7. show tables; 查看当前库下的表
  8. show tables [like '*'] [in dbName]      查看某库某些表
  9. create table tabName{columnName columnType,...}         建(内部)表(需指定分隔符)
  10. create external table tabName {同上}    建(外部)表
  11. location 'hdfs.path'; 指定外部表源数据路径
  12. row format delimited fields terminated by '*';         直接写在创表语句末尾。
  13. lines terminated by '\n';                              航分隔符默认"\n",暂时也只支持这一个
    map keys terminated by
  14. alter table tabName RENAME TO newName        重命名表名
  15. alter table tabName ADD COLUMNS (N T);        向已有表中添加列
  16. insert into tabNamecolumnNamevaluesdata);            向表中添加数据
  17. drop table tbname; 删除表结构及数据
  18.  
  19. HIVE的数据导入的两种范式:
    linux上导入
  20. load data local inpath 'linux根目录下写' into table dbName.tabName;
    HDFS的某一目录导入
  21. load data inpath 'hdfs根目录下开始写' into table dbName.tabName;
  22. --------------------------------- --->此方式上传会删除源文件,相当于将数据剪切
  23.  
  24. hadoop job -kill {job_id} 结束失败job的命令

三、HIVE的JDBC

  

  1.      //1.加载驱动
  2. Class.forName("org.apache.hive.jdbc.HiveDriver");
  3. //2.打开连接
  4. Connection conn = DriverManager.getConnection("jdbc:hive2://sz01:10010/test");
  5. //mysql连接仅此处不同,三个参数
  6. //jdbc--->(url = jdbc:mysql://IP:3306/dbName, u,p)
  7. //3.获得操作会话对象
  8. Statement statement = conn.createStatement();
  9. //4.操作hive
  10. String sql = "select * from test1 ";
  11. //5.接受结果
  12. ResultSet rSet = statement.executeQuery(sql);
  13. while (rSet.next()) {
  14. System.out.println(rSet.getInt(1)+"\t"+rSet.getString(2));
  15. }
  16. //6.关闭连接
  17. rSet.close();
  18. statement.close();
  19. conn.close();

四、常用的建表语句 

  1. 直接建表法:  create table table_name(col_name data_type);
  2. 查询建表法:       create table table-name as (查询sql)------------------------->有数据,会执行MR过程
  3. like建表:       create table t2 like t1;------------------------------------------------>无数据,不执行MR过程

  创建时一般需指定表的结构等信息  

  1. row format delimited
  2. fields terminated by ','              列分隔符,行分隔符默认为"\n",一般不配置
  3. collection items terminated by '-'        
  4. map keys terminated by ':'
  5. location '/user/t2'                 数据文件的位置(linux系统上的)----外部表
  6. stored as textfile;                数据格式默认为文本类型
存储格式 存储方式 特点
TextFile 行存储 存储空间消耗比较大,并且压缩的text 无法分割和合并 查询的效率最低,可以直接存储,加载数据的速度最高
SequenceFile 行存储 存储空间消耗最大,压缩的文件可以分割和合并 查询效率高,需要通过text文件转化来加载                      
RCFile 数据按行分块 每块按照列存储
存储空间最小,
查询的效率最高 ,
需要通过text文件转化来加载,
加载的速度最低。
压缩快 快速列存取。
读记录尽量涉及到的block最少 
读取需要的列只需要读取每个row group 的头部定义。 
读取全量数据的操作 性能可能比sequencefile没有明显的优势
ORCFile 数据按行分块 每块按照列存储 压缩快,快速列存取 ,效率比rcfile高,是rcfile的改良版本
Parquet 列存储 相对于PRC,Parquet压缩比较低,查询效率较低,不支持update、insert和ACID.但是Parquet支持Impala查询引擎
  1. 五、保存hive表查询结果的方法
      1.保存到hdfs hdfs上运行
        hive -e "sql" >> /output/out.txt 一定要双引号
        hive -f hive.sql > /output/out.txt  
     
      2.保存到hdfs hive中执行
        insert overwrite dirctory /output/a.txt sql
        不支持 insert into 导出
  1.   3.保存到linux
        insert overwrite local directory /tmp/a.txt sql
  2.  
  3.   4.保存到hive表上    
        insert into table tName SQL                追加导入
        insert overwrite table tName SQL          覆盖导入
        
      5.创表保存数据
        create table tName as sql
      

hive的简单使用的更多相关文章

  1. Hive 的简单使用及调优参考文档

    Hive 的简单使用及调优参考文档   HIVE的使用 命令行界面 使用一下命令查看hive的命令行页面, hive --help --service cli 简化命令为hive –h 会输出下面的这 ...

  2. [转]Hive:简单查询不启用Mapreduce job而启用Fetch task

    转自:http://www.iteblog.com/archives/831 如果你想查询某个表的某一列,Hive默认是会启用MapReduce Job来完成这个任务,如下: hive> SEL ...

  3. hive中简单介绍分区表

    所介绍内容基本上是翻译官方文档,比较肤浅,如有错误,请指正! hive中创建分区表没有什么复杂的分区类型(范围分区.列表分区.hash分区.混合分区等).分区列也不是表中的一个实际的字段,而是一个或者 ...

  4. [Hive_add_3] Hive 进行简单数据处理

    0. 说明 通过 Hive 对 duowan 数据进行简单处理 1. 操作流程 1.1 建表 create table duowan(id int, name string, pass string, ...

  5. hive 中简单的udf函数编写

    .注册函数,使用using jar方式在hdfs上引用udf库. $hive.注销函数,只需要删除mysql的hive数据记录即可. delete from func_ru ; delete from ...

  6. hive中简单介绍分区表(partition table)——动态分区(dynamic partition)、静态分区(static partition)

    一.基本概念 hive中分区表分为:范围分区.列表分区.hash分区.混合分区等. 分区列:分区列不是表中的一个实际的字段,而是一个或者多个伪列.翻译一下是:“在表的数据文件中实际上并不保存分区列的信 ...

  7. Hive之简单查询不启用MapReduce

    假设你想查询某个表的某一列.Hive默认是会启用MapReduce Job来完毕这个任务,例如以下: 01 hive> SELECT id, money FROM m limit 10; 02 ...

  8. hadoop生态系统学习之路(六)hive的简单使用

    一.hive的基本概念与原理 Hive是基于Hadoop之上的数据仓库,能够存储.查询和分析存储在 Hadoop 中的大规模数据. Hive 定义了简单的类 SQL 查询语言,称为 HQL.它同意熟悉 ...

  9. hive的简单理解--笔记

    Hive的理解 数据仓库的工具  Hive仅仅是在hadoop上面包装了SQL: Hive的数据存储在hadoop上 Hive的计算由MR进行 Hive批量处理数据  Hive的特点 1 可扩展性(h ...

随机推荐

  1. Linux mysql 5.5.10 二进制安装过程记录和 修改 密码 登录

    1.useradd clouder2.解压缩mysql.tar.bz2到/home/clouder2.mv /etc/my.cnf /etc/my.cnf.bak3./home/clouder/mys ...

  2. 在 S5PV210 的 开发板上 点亮 一个 LED 灯

    参考学习教程:周立功嵌入式Linux开发教程-(上册) 材料:首先 准备一个 安装好 Linux 的 开发板 使用  xshell 工具 连接 开发板  ,winscp 工具 连接 开发板  ,  准 ...

  3. JAVA类加载和初始化

    JAVA类的加载和初始化 一.类的加载和初始化过程 JVM将类的加载分为3个步骤: 1.加载(Load):class文件创建Class对象. 2.链接(Link) 3.初始化(Initialize) ...

  4. CentOS7 搭建RabbitMQ集群 后台管理 历史消费记录查看

    简介 通过 Erlang 的分布式特性(通过 magic cookie 认证节点)进行 RabbitMQ 集群,各 RabbitMQ 服务为对等节点,即每个节点都提供服务给客户端连接,进行消息发送与接 ...

  5. 正方形(类型:枚举、一级、C++)

    题目描述 有一个正方形,四个角的坐标分别是(1,-1),(1,1),(-1,-1),(-1,1).写一个程序,判断一个给定的点(x,y)是否在这个正方形内(包括正方形边界),如果在正方形内输出“Yes ...

  6. CentOS6安装各种大数据软件 第五章:Kafka集群的配置

    相关文章链接 CentOS6安装各种大数据软件 第一章:各个软件版本介绍 CentOS6安装各种大数据软件 第二章:Linux各个软件启动命令 CentOS6安装各种大数据软件 第三章:Linux基础 ...

  7. python里的默认参数

    def extendList(val, test=[]): test.append(val) return test list1 = extendList(10) list2 = extendList ...

  8. Java调用WeChat's API总结

    微信公众号结合着内置浏览器,有着普通浏览器无法完成的服务,前者可以获取浏览页面的微信用户的信息,从而根据信息为用户提供基于微信的更多服务:而后者仅仅能够浏览页面,通过用户的输入信息与用户互动. 本人根 ...

  9. 构建WebGL目标时的内存考量

    Memory Considerations when targeting WebGL 构建WebGL目标时的内存考量 Memory in Unity WebGL can be a constraini ...

  10. DELPHI DOUBLE不解之迷

    procedure TForm1.cmd2Click(Sender: TObject);var str1, str2: string; LValue1: Double; LValue2: Extend ...