开发者学堂课程【高校精品课-上海交通大学-企业级应用体系架构:HBase&Hive 2】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/75/detail/15847
HBase&Hive 2(二)
内容介绍:
一、Hive 是什么
二、读模式与写模式
三、artitions and buckets 分区和桶
四、常用的语法
五、云计算
四、常用的语法
1.Sorting and Aggregating 分类和聚合
例如从 records 2 这张表里面去找两个属性的值,
我们说是要按 year 来进行排序升序的排序,把它们按照 year 升序温度降序的方式去排序。但是要做分布的存储时,把它全部拿来之后按照 year 去找所有的记录。如果按照前面地方去了 buckets 处理,我就按 year 的方式去群组之后做排序,得到结果。
2.MapReduce Scripts 分类和聚合
MapReduce 提供了比较简单的 MapReduce 接口,可以在里面去写要做 map 或要做 reduce 。
在上述表里面要去对 year , temperature , quality进行 map 即在拿到年份、温度以及质量之后,去对它们这三列进行 map ,而 map 的代码写在哪里?就写在这里,
接着针对它产生的输出,去对year , temperature 做 reduce 。可以在外部写两个文件,例如 Python 的文件去处理去执行 map 或 reduce 的动作。在 Hive 里加载下图两类代码,
表里执行执行 MapReduce 。这是有关 Hive 的真正要运行,因为其在 HDFS 之上运行,因此仍然是要运行。这是之前讲过的 hadoop 和上节课讲 HDFS 时,已经学过的。启动的命令运行都起来之后,将 hadoop home 要放到路径里面去,去运行下图的代码,
这些这是一次性运行,目的是建一些 Hive 相应的一些目录,进到下图里面。
值得注意的是它现在只能到 Java 1.8 更高的版本还不可以,进去之后就可以去执行刚才的逻辑了。
3.常见的报错信息
下图是一些常见的报错信息,包括启动 Hive 时它报的一些错信息。因为它的 jdk 比较低,数据仓库就没有再写 Java 代码,而且读者在用时一般用得比较少。实际上要说明一下,在分布式的系统里面,有一些基本的概念就像刚才提到的,为什么要把它构建在 HDFS 之上?为什么它要有 buckets ?为什么数据它导入之后没有马上去处理?这些基本的概念在分布式的系统里面总会碰到。因此我们还是简单地讲一讲,那系统本身我装成功过一遍,按照前面的运行的顺序是可以把它运行下去的。这是上节课剩的一点有关 Hive 的知识。