什么是Hive?

一.什么是hive

hive由Facebook实现并开源,hive是依赖于hadoop的一个数据库(数据仓库),可以让开发者在不清楚MapReduce编程的情况下完成MapReduce的任务执行,把MapReduce程序封装成了HQL语句,使用户像操作sql一样去操作MapReduce程序。

二.hive的组成部分

什么是Hive?

三.hive的特点

    优点:

  1、可扩展性,横向扩展,Hive 可以自由的扩展集群的规模,一般情况下不需要重启服务 横向扩展:通过分担压力的方式扩展集群的规模 纵向扩展:一台服务器cpu i7-6700k 4核心8线程,8核心16线程,内存64G => 128G

  2、延展性,Hive 支持自定义函数,用户可以根据自己的需求来实现自己的函数

  3、良好的容错性,可以保障即使有节点出现问题,SQL 语句仍可完成执行

缺点:

  1、Hive 不支持记录级别的增删改操作,但是用户可以通过查询生成新表或者将查询结 果导入到文件中(当前选择的 hive-2.3.2 的版本支持记录级别的插入操作)

  2、Hive 的查询延时很严重,因为 MapReduce Job 的启动过程消耗很长时间,所以不能 用在交互查询系统中。

  3、Hive 不支持事务(因为没有增删改,所以主要用来做 OLAP(联机分析处理),而 不是 OLTP(联机事务处理),这就是数据处理的两大级别)。

四.hive的安装步骤

  1. 下载hive的linux安装包
  2. 解压安装包到对应的目录
  3. 配置hive的环境变量
  4. 配置hive的元数存储数据库据库

           在hive的目录下新建一个hive-site.xml文件 加入如下内容

        

什么是Hive?

什么是Hive?

5.配置好元数据数据库后需要初始化数据 导入对应的表

       schematool -dbType mysql -initSchema

五.使用sql语句创建表

     create database 数据库名

     create table 表名

     row format delimited 代表一个回车为一行数据

   fields terminated by ","; 代表字段按照对应的分隔符进行分割

  1. 创建文件 touch wangsen.texe
  2. 给文件添加数据 根据设计的表结构添加 根据上文得出 “,”分隔符

例如:id name age

        1,www,22

         2,eeee, 33 

  1. 把文件上传到数据库中 Hadoop fs -put wangsen.text (文件名)/hive/dbs/hadoop001.db/wangsen(表名)
  2. 删除原文件 rm wangsen.text
  3. 执行sql语句