摘要: Facebook为了解决海量日志数据的分析而开发了hive,后来开源给了Apache基金会组织。 hive是一种用SQL语句来协助读写、管理存储在HDFS上的大数据集的数据仓库软件。 Hive 特点 1 是基于 Hadoop 的一个数据仓库工具;2 Hive 最大的特点是将 Hive SQL语句转换 阅读全文
posted @ 2019-11-28 10:37 时光快照 阅读(490) 评论(0) 推荐(0) 编辑
摘要: 1 带分区列的表更改列类型 常见的一个场景是Hive里面一个带分区的表,原来是int类型的字段,后来发现数据超过了int的最大值,要改成bigint。或者是bigint要改string或decimal。无论如何,对于带分区的表,要改列类型,有一个坑: 如果使用alter table t change 阅读全文
posted @ 2019-11-27 19:42 时光快照 阅读(444) 评论(0) 推荐(0) 编辑
摘要: hadoop hive任务失败,原因是GC overhead limit exceeded (OOM) GC Overhead Limit Exceeded error是java.lang.OutOfMemoryError家族的一员,表示JVM内存被耗尽。 OutOfMemoryError是java 阅读全文
posted @ 2019-11-27 14:01 时光快照 阅读(1195) 评论(0) 推荐(0) 编辑
摘要: 事实表技术基础 1.事实表结构:度量+外键+退化维度键+日期/时间戳 2.事实表中的数字度量分类:完全可加、半可加、不可加事实 3.事实表中的空值:度量可以有空值,外键不能有空值 4.一致性事实:一致性事实需要具有相同的命名 5.事实表分类:事务事实表、周期快照事实表和累计快照事实表 6.其他事实表 阅读全文
posted @ 2019-11-25 20:24 时光快照 阅读(247) 评论(0) 推荐(0) 编辑
摘要: 凡事应该尽量简单,直到不能再简单为止。 维度建模简介 一、用于度量的事实表 1.应该尽量将来源于同一个业务过程的底层度量结果存储于一个维度模型中。 2.事实表中的每一行对应一个度量事件。每行中的数据是一个特定级别的细节数据,称为粒度。 物理世界的每一个度量事件与对应的事实表行具有一对一的关系,这一思 阅读全文
posted @ 2019-11-23 18:42 时光快照 阅读(221) 评论(0) 推荐(0) 编辑
摘要: 当HiveQL跑不出来时,基本上是数据倾斜了,比如出现count(distinct),groupby,join等情况,理解 MR 底层原理,同时结合实际的业务,数据的类型,分布,质量状况等来实际的考虑如何进行系统性的优化。 Hive on MR 调优主要从三个层面进行,分别是基于MapReduce优 阅读全文
posted @ 2019-11-22 17:46 时光快照 阅读(2088) 评论(0) 推荐(0) 编辑
摘要: 原文链接https://www.cnblogs.com/felixzh/p/8604188.html Map阶段包括: 第一读数据:从HDFS读取数据 1、问题:读取数据产生多少个Mapper? Mapper数据过大的话,会产生大量的小文件,由于Mapper是基于虚拟机的,过多的Mapper创建和初 阅读全文
posted @ 2019-11-22 17:00 时光快照 阅读(6125) 评论(0) 推荐(0) 编辑
摘要: package com.bigdata // /** Scala 方法和函数:Scala中既有函数也有方法,大多数情况下我们都可以不去理会他们之间的区别。 * * 方法:Scala 中的方法跟 Java 的方法一样,只是多了点语法糖。 * 方法是组成类的一部分。方法有名字、类型签名,有时方法上还有注解,以及方法的功能实现代码(字节码)。 * * 函数 :Scala 中的函数... 阅读全文
posted @ 2019-02-15 13:52 时光快照 阅读(242) 评论(0) 推荐(0) 编辑
摘要: package com.bigdata object TupleMapO { def main(args: Array[String]): Unit = { // 元组:Tuple,就是由()包起来,和数据库中一条记录概念类似 val t2 = (1,"xiaoming","男",23,"高新区") println(t2._1) // 获取tuple第一个元素 ... 阅读全文
posted @ 2019-02-14 14:40 时光快照 阅读(1310) 评论(0) 推荐(0) 编辑
摘要: package com.bigdata object ListO { def main(args: Array[String]): Unit = { println() } val list = List(1,2,3,4) for (i x%2 == 0) // 取出List中的偶数; val list5 = list.filter(_ %2 ==0) // f... 阅读全文
posted @ 2019-02-14 14:39 时光快照 阅读(260) 评论(0) 推荐(0) 编辑