大数据技术之Hive

      最近入职一家公司,本以为是java开发,没想到是大数据处理,于是开始了大数据的学习:大数据(big data),IT行业术语,是指无法在一定时间范围内用常规软件工具进行捕捉、管理和处理的数据集合,是需要新处理模式才能具有更强的决策力、洞察发现力和流程优化能力的海量、高增长率和多样化的信息资产。在维克托·迈尔-舍恩伯格及肯尼斯·库克耶编写的《大数据时代 [1]  中大数据指不用随机分析法(抽样调查)这样捷径,而采用所有数据进行分析处理。大数据的5V特点(IBM提出):Volume(大量)、Velocity(高速)、Variety(多样)、Value(低价值密度)、Veracity(真实性)。

      Hive:由Facebook开源用于解决海量结构化日志的数据统计。

      Hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张表,并提供SQL查询功能。 本质是:将HQL转化成MapReduce程序

 

     1Hive处理的数据存储在HDFS

 

     2Hive分析数据底层的实现是MapReduce

 

     3)执行程序运行在Yarn

 

 优点

 

     1) 操作接口采用类SQL语法,提供快速开发的能力(简单、容易上手)

 

     2) 避免了去写MapReduce,减少开发人员的学习成本

 

     3) Hive的执行延迟比较高,因此Hive常用于数据分析,对实时性要求不高的场合

 

     4) Hive优势在于处理大数据,对于处理小数据没有优势,因为Hive的执行延迟比较高

 

     5)Hive支持用户自定义函数,用户可以根据自己的需求来实现自己的函数

 缺点

    1.HiveHQL表达能力有限

    (1)迭代式算法无法表达

    (2)数据挖掘方面不擅长由于MapReduce数据处理流程的限制,效率更高的算法却无法实现。

    2.Hive的效率比较低

    (1Hive自动生成的MapReduce作业,通常情况下不够智能化

    (2Hive调优比较困难,粒度较粗

 

   Hive基本操作

 

    (1)启动hive

 

              [root@hadoop102 hive]$ bin/hive

 

   (2)查看数据库

 

             hive> show databases;

 

   (3)打开默认数据库

 

            hive> use default;

 

   (4)显示default数据库中的表

 

           hive> show tables;

 

   (5)创建一张表

 

           hive> create table student(id int, name string);

 

   (6)显示数据库中有几张表

 

          hive> show tables;

 

   (7)查看表的结构

 

         hive> desc student;

 

   (8)向表中插入数据

 

       hive> insert into student values(1000,"ss");

 

   (9)查询表中数据

 

        hive> select * from student;

 

   (10)退出hive

 

         hive> quit;

       (11)删除已创建的student

        hive> drop table student;

   (12)创建student, 并声明文件分隔符’\t’

        hive> create table student(id int, name string) ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t';

      13)加载/opt/module/datas/student.txt 文件到student数据库表中。

       hive> load data local inpath '/opt/module/datas/student.txt' into table student;

 

 

 

 

posted @ 2020-06-17 17:17  Adam*DI  阅读(147)  评论(0编辑  收藏  举报