Hive学习笔记

Hive笔记

1、 Hive的shell环境

hive>show tables;
hive>hive –e ‘select * from dummy’
生成简单单行表:
echo ‘X’ > /tmp/dummy.txt
hive –e “create table dummy(value string); load data local inpath ‘/tmp/dummy.txt’ overwrite into table dummy”

2、 示例

  • 建表:
    Create table records (year string, temperature int, quality int) row format delimited fields terminated by ‘\t’
    解析:声明了一个records表,包含三列year,temperature,quality。并且都指明了每一列的数据类型。row format声明的是数据文件的每一行是由制表符分隔的文本,Hive按照这一格式读取数据,每行三个字段,分别对应表中的三列,字段之间以制表符分隔,每行以分隔符分隔。

  • 加载数据:
    load data local inpath ‘input/ncdc/sample.txt’ overwrite into table records;
    这个命令告诉Hive在指定的本地文件放入其仓库目录中,这个操作并不解析文件或者把它存储为内部数据格式,因为Hive并不强制使用任何特定文件格式,文件以原样存储,Hive表存储在本地文件系统中,其中可以在fs.default.name中配置,在Hive仓库目录中,表存储为目录,仓库目录由选项hive.metastore.warehouse.dir控制,默认值是/usr/hive/warehouse。
    ls /usr/hive/warehouse/record/
    他会输出sample.txt

  • 查询:
    hive> select year, MAX(temperature) from records where temperature != 9999 and in (0,1,4,5,9) group by year;
  • JDBC驱动:
    Jdbc:hive2//host:port/db

3、 Metastore

Metastore是Hive元数据的集中存放地,metastore包括两部分,服务和后台数据的存储。
默认metastore服务和Hive服务运行在同一个JVM中,它包含一个内嵌的以本地磁盘作为存储的Derby数据库实例,称为内嵌metastore配置,但每一次只能为每个metastore打开一个Hive会话。
如果需要支持多用户,需要使用一个独立的数据库,被称为本地metastore配置。

4、 Metastore重要配置属性

属性名称类型默认值描述
hive.metastore.warehouse.dirURI/user/hive/warehouse相对于fs.default.name的目录,托管表就存储在这里
hive.metastore.uris逗号分隔的URI未设定如果未设置(默认值),则使用当前的metastore,否则连接到由URI列表指定要连接的远程metastore服务器。如果有多个远程服务器,则客户端便以轮询方式连接
Javax.jdo.option.ConnectionURLURIJdbc:derby:;databaseName=metastored b;create=trueMetastore数据库的JDBC URL
Javax.jdo.option.ConnectionDriverName字符串Org.apache.derby.jdbc.EmbeddedDriverJDBC驱动器的类名
Java.jdo.option.ConnectionUserName字符串APPJDBC用户名
Javax.jdo.option.ConnectionPassword字符串MineJDBC密码

5、 读时模式和写时模式

在传统数据库里,表的模式是在数据加载时强制确定的。如果在加载时发现书不符合模式,那么则拒绝加载数据,因为在写入数据库时对照模式进行检查,如果不符合模式就拒绝加载,成为写时模式。
Hive对数据的验证是在读取数据的时候,并不在加载数据时进行,成为读时模式。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值