(一)Hive初识

数据库和数据仓库的区别 

数据库

  • 为线上系统提供实时数据处理服务
  • 完整的增删改查
  • 要求严格的事务控制
  • 尽量的避免冗余数据

数据仓库

  • 为线下的统计分析挖掘提供数据治理服务
  • 只能一次写入多次查询,不支持行级别的增删改
  • 很少有事务的需求
  • 人为制造冗余来提升查询效率

Hive介绍

hive将存储在hdfs上的文件映射成一张数据库表,本质上就是在hadoop的基础上加一层sql的壳。受底层hdfs限制,只能追加数据。通常通过制造冗余来提高数据的查询能力。所以hive是基于hdfs的数据仓库。

 

hive通过类sql(hql)操作hdfs上的文件数据。复杂的hsql语句会被转为 MR,通过MR来实现查询。

hive安装及启动

  • hive的版本和hadoop的版本要一致
  • 配置了JAVA_HOME,HADOOP_HOME环境变量,则hive就知道了jdk和hadoop的安装路径
  • hive的启动依赖hadoop,所以先要启动hadoop
  • 进入hive的bin目录启动hive: ./hive

hive,hdfs,mapreduce之间的关联

  • hive默认的default库:hdfs上的文件夹 /user/hive/warehouse
  • 查看db:show databases;
  • 创建db:create database test;

可以看到 /user/hive/warehouse下有一个test.db的文件夹

  • 进入db:use test;
  • 创建表:create table student(id int, name string) row format delimited fields terminated by '\t';

可以看到 test.db文件夹下创建了一个student文件夹

  • 导入文件数据到表里:load data local inpath '/home/student.txt' into table student;

可以看到student文件夹下有一个 student.txt 的文件。所以该操作其实就是把 student.txt 文件上传到了 student文件夹下。

创建表的时候指明了每一行各个字段之间的分割符,文件里的字段也要用该分隔符,才能被识别。

表数据其实就是该表对应的文件夹下的所有文件的数据。

  • 查询表中数据记录数:select count (*) from student ;

该hql语句会被转为 MR 操作,即map和reduce任务,来得到表的记录数。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值