HIVE

Hadoop:map 与 reduce 阶段麻烦,效率低

通过把复杂的MR编程,简化为HQL的使用,可以最大限度地减少程序员地学习成本。

Hive是一个构建在Hadoopsha能够的数据仓库平台。【易学难精

Hive和传统关系型数据库地功能性差异:HIVE是以数据存储优先,而关系型数据库是以数据查询效率优先。

【Hadoop整个生态圈都是Apache地产品】

【1】Hive的创建数据库的本质:创建对应的文件夹;将数据文件加载到服务器上。

【2】分区、分桶的概念

【3】使用HIVE:一般把HIVE作为增量表,进行数据归档。保存到HIVE数据,通常需要加一个时间戳,用于标明数据的批次。

【4】用HIVE一定要用到队列。


数据操作:

【1】sqoop:数据迁移工具

【2】消息队列:kafka,rabitmq



安装Hive

【1】首先需要有MYSQL之类地关系型数据库

【2】要有Hadoop集群

【3】务必仔细检查配置【后续配置步骤】

[4]授权!创建路径

【5】Hiveservice2这个服务:是提供给JDBC访问地。

---修改完配置一定要重新启动。

Hive地数据类型

【1】int

【2】String

【3】date

【4】double

建库和建表

【1】实际上在HDFS当中,创建了对应的目录

【2】数据需要上传;上传数据文件到对应库和表地目录下

【3】HIVE地查询,本质哈市MR执行

【4】全表扫描和需要进行分组过滤地,都需要。

    --全表扫描,ex:count(*)

    --排序,ex order by sal

    --分组,ex:group by deptno

   特例:limit 0,2 不需要 MR

总结:只需要MAP阶段就可以处理完的,不需要MR

【5】HIVE当中,关联查询:

   --Hive是没有主外键的

   --内联:inner join

   --外联:left join / right join

总结:任何情况下,只要执行了表关联,就一定会有MR操作。

【6】分区、分桶。


【7】HIVE是不可以修改数据的,但是可以插入数据,插入的数据,不是在原来文件的基础上追加,而是用新的文件来进行保存。

【8】使用HIVE:一般把HIVE作为增量表,进行数据归档,保存到HIVE里的数据,通常需要加一个时间戳【用于标明:数据批次】。

【9】用HIVE一定要用到队列。

【10】数据仓库一般都是通过异步来处理的。


原理部分还需要深入




经典:

去除左右空格——

public String trim() {
         int len = value.length;
         int st = 0;
         char[] val = value;    /* avoid getfield opcode */

        while ((st < len) && (val[st] <= ' ')) {
             st++;
         }
         while ((st < len) && (val[len - 1] <= ' ')) {
             len--;
         }
         return ((st > 0) || (len < value.length)) ? substring(st, len) : this;
     }



授权 777

posted @ 2020-04-14 18:26  小海_macro  阅读(360)  评论(0编辑  收藏  举报