1.hive的交互方式

  1.1 bin/hive 进入hive交互命令行环境

  1.2 bin/hive -e 'select * from hive.student;' (可以通过 > 将结果写入到指定的文件中)

    

  1.3 bin/hive -f /opt/data/hive-select.sql (可以通过 > 将结果写入到指定的文件中)

    

    

2.hive命令行模式下如何访问hdfs文件系统和本地文件系统

  2.1 访问hdfs文件系统  dfs 命令

    

  2.2 访问本地文件系统 !命令

    

3.表的创建

  3.1 创建普通表存储格式为textfile

    create table if not exists hive.employee (id int,name string,job string,manager_id int comment '上级领导id',apply_date string comment '入职时间',salary double,
      reward double,dept_id int comment '所在部门id') comment '员工表'
      row format delimited
      fields terminated by '\t'
      stored as textfile;

    其中:fields terminated by '\t' 表示字段间以tab分割

       stored as textfile 表示存储格式为textfile(默认)

    

    3.1.2 创建复杂结构表

      create table if not exists cdh_hive.teachers(
        id int,
        name string,
        flag boolean,
        score array<int>,
        tech map<string,string>,
        other struct<phone:string,email:string>
      ) row format delimited
      fields terminated by '\;'
      collection items terminated by ','
      map keys terminated by ':';

      其中:fields terminated by '\;' 表示字段间以分号分割

           collection items terminated by ','  表示集合字段中各个元素间以,分割

             map keys terminated by ':';  表示map字段中键值直接以:分割

      以下是测试数据:

      1;test1;false;100,85,52;age:29,sex:m;\N,\N
      2;test2;true;25,35;\N;021-111111,192165@qq.com
      3;test3;true;\N;age:20,sex:F,height:168;\N,3@qq.com
      4;test4;true;\N;\N;021-44444444,\N
      5;;true;1,2,3;;021-44444444,

      

  3.2 创建外部表(删除表是不删除数据文件)

    create external table if not exists hive.dept(id int,name string,address string) comment '部门表'
      row format delimited
      fields terminated by '\t'
      stored as textfile
      location '/user/yanglin/data/hive/dept';

     其中 external 表示创建的是外部表,默认不写为管理表

      location 表示数据所在hdfs上的目录

    

  3.3 创建分区表

    create external table if not exists hive.dept_partition(id int,name string,address string)
      partitioned by (day string)
      row format delimited
      fields terminated by '\t';

    其中 partitioned by 指定了分区字段,可以指定多个(mouth stirng,day string)

    

    分区表中数据的加载问题:

    3.3.1  load data local inpath '/opt/data/dept.txt' into table dept_partition partition (day='20160901');

      

    3.3.2 直接创建目录,把数据放入到指定的目录中,不能查询到数据

      

      

      需要进行修复:

        修复方式一:msck repair table dept_partition;

          

        修复方式二:alter table dept_partition add partition(day=20160903);

          

  3.4 通过like 语句创建表 create table hive.dept_like like hive.dept;

    

  3.5 通过as select 创建表  create table hive.dept_select as select * from dept;

    

4.加载数据到表中

  4.1 通过load语句进行加载数据

    load data [local] inpath 'filepath' [overwrite] into table tablename [partition (partcol1=val1,partcol2=val2 ...)]

    其中:1、如果数据文件在本地需要local,如果在hdfs上不加local

       2、如果要覆盖表中原有的数据需要 overwrite ,如果在原有数据的基础上添加数据不加 overwrite

       3、如果是分区表需要制定partition 分区字段

  4.2 通过insert into 语句进行加载数据

    insert into table hive.dept_into select * from hive.dept;

  4.3 创建表时通过location 指定数据所在的目录,例3.2

  4.4 通过import语句进行导入

    import table hive.employee_like from '/user/yanglin/data/export/employee';

    

5.数据的导出

  5.1 通过insert 方法将结果导入到指定的文件中

    insert overwrite local directory '/opt/data/hive_dept_exp' select * from dept;

    

    

    我们可以对输出的内容进行格式化:

      insert overwrite local directory '/opt/data/hive_dept_exp_format'

        row format delimited fields terminated by '\t' collection items terminated by '\n'
        select * from dept;

      其中,不加local时表示将内容放入到hdfs文件系统中。

      

  5.2 使用 > 将查询结果放入指定的文件中

      bin/hive -e 'select * from hive.dept;' > /opt/data/hive_dept_exp_e

        

      bin/hive -f /opt/data/hive-select.sql > /opt/data/hive_user_exp_f

        

  5.3 使用sqoop进行数据导入和导出

     在接下来的文章中进行讲解。

  5.4 使用export进行导出

    export table hive.employee to '/user/yanglin/data/export/employee';

    注意:这里的路径为hdfs文件系统上的路径

    

    

hive的使用02的更多相关文章

  1. 单节点伪分布集群(weekend110)的Hive子项目启动顺序

    因为,我的mysql是用root用户,在/home/hadoop/app/目录下,创建的. 第一步:开启mysql服务 第二步:启动hive [hadoop@weekend110 app]$ su r ...

  2. 说说单节点集群里安装hive、3\5节点集群里安装hive的诡异区别

    这几天,无意之间,被这件事情给迷惑,不解!先暂时贴于此,以后再解决! 详细问题如下: 在hive的安装目录下(我这里是 /home/hadoop/app/hive-1.2.1),hive的安装目录的l ...

  3. [Spark][Hive]外部文件导入到Hive的例子

    外部文件导入到Hive的例子: [training@localhost ~]$ cd ~[training@localhost ~]$ pwd/home/training[training@local ...

  4. Hive的单节点集群详细启动步骤

    说在前面的话, 在这里,推荐大家,一定要先去看这篇博客,如下 再谈hive-1.0.0与hive-1.2.1到JDBC编程忽略细节问题 Hadoop Hive概念学习系列之hive三种方式区别和搭建. ...

  5. Caused by: java.net.ConnectException: Connection refused: master/192.168.3.129:7077

    1:启动Spark Shell,spark-shell是Spark自带的交互式Shell程序,方便用户进行交互式编程,用户可以在该命令行下用scala编写spark程序. 启动Spark Shell, ...

  6. hive

    Hive Documentation https://cwiki.apache.org/confluence/display/Hive/Home 2016-12-22  14:52:41 ANTLR  ...

  7. hive学习笔记

    html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,bi ...

  8. Hive 笔记

    DESCRIBE EXTENDED mydb.employees  DESCRIBE EXTENDED mydb.employees DESCRIBE EXTENDED mydb.employees ...

  9. Hadoop学习笔记—17.Hive框架学习

    一.Hive:一个牛逼的数据仓库 1.1 神马是Hive? Hive 是建立在 Hadoop 基础上的数据仓库基础构架.它提供了一系列的工具,可以用来进行数据提取转化加载(ETL),这是一种可以存储. ...

随机推荐

  1. 用jsonp格式的数据进行ajax post请求变成get

    因为 dataType 是 jsonp 而不是 json jsonp不支持POST跨域,所以会自动转成GET而关于jsonp为什么不支持post请求,百度到的答案是jsonp为动态的script,没有 ...

  2. .NET中Redis安装部署及使用方法简介附->开源Redis操作辅助类

    Redis是一个用的比较广泛的Key/Value的内存数据库,新浪微博.Github.StackOverflow 等大型应用中都用其作为缓存,Redis的官网为http://redis.io/. Re ...

  3. Centos7下配置node.js环境

    1.软件环境: Centos7.VMware 10.0.NodeJS v0.10.24 2.安装过程 1>安装过程中需要管理员权限,及root权限,可以敲入如下命令. [sharing@loca ...

  4. 点餐系统3个sprint的团队贡献分

    第一次冲刺贡献分   团员名字 贡献分 麦锦俊 18分 冯婉莹 21分 李康梅 19分 张鑫相 20分 曹嘉琪 22分     第二次冲刺贡献分   团员名字 贡献分 麦锦俊 19分 冯婉莹 20分 ...

  5. Url通配符映射

    原文:http://www.cnblogs.com/liukemng/p/3726897.ht 1.URL路径映射 1.1.对一个action配置多个URL映射: 我们把上一篇中的HelloWorld ...

  6. GetLastError()函数返回值及含义

    GetLastError返回的值通过在api函数中调用SetLastError或SetLastErrorEx设置.函数并无必要设置上一次错误信息,所以即使一次GetLastError调用返回的是零值, ...

  7. Android应用开发中半透明效果实现方案

    下面是自定义Activity半透明的效果例子:res/values/styles.xml<resources>  <stylename="Transparent " ...

  8. UIPickerView滚轮选择器视图

    //必须实现两个协议 //数据源协议必须实现的两个方法 //选取器的输出借口singlePicker,并在故事版中选择该选取器将dataSource和delegate拖入视图控制器与之关联 //@pr ...

  9. iOS解析XML数据

    iOS中解析XML数据的类是  NSXMLParser,详细使用方法如下: 假设现在在内存中有XML的二进制数据对象(NSData):data(该数据可能来自网络,也可能是本地的文件数据),设置NSX ...

  10. html与css面试结合工作的总结难点

    面试的时候一般会常常问起的,同时也是工作的时候会常常问道的几个问题,一下之列表内容,详细的后会附有文章,希望能帮到大家,同时有不足希望大家多多补充交流. 1.主要是的是浮动的问题(常见的问题有,三列布 ...