00:00
那现在的时间是晚上的9点半,那么咱们就开始今天晚上的学习,嗯,今天晚上呢,咱们着重来给大家介绍一下大数据的数据分析引擎haveve,因为我们在大数据的体系当中提供了很多的什么数据分析引擎,帮助咱们的分析和处理数据,因此呢,我希望通过今天晚上的学习,能够让大家对我们的大数据的体系,尤其是对咱们的数据分析引擎能够有一个了解,这样子呢,有助于咱们后面的进一步的学习。当然今天晚上呢,咱们着重来给大家介绍一下哈杜普当中的数据分析引擎have,之前哈,如果说大家都听过赵老师的课程,那应该都知道啊,赵老师呢,在上课的过程当中会给大家记录一个课堂的笔记,通过记录课堂笔记的这种方式。
01:00
我们会把今天晚上主要内容呢给大家记录下来,让大家在学习的过程当中把握住课程的重点,那么今天晚上呢,咱们着重给大家介绍以下两个方面的问题,首先咱们需要对大数据的生态圈系统要有一个基本了解,因为呢在各个大数据的生态圈系统当中,它都提供了什么呢?各种各样的什么数据分析引擎,那么通过使用这些数据分析引擎,我们呢,就能够通过使用标准的什么C口语句来去分析和处理数据,因此呢,大家后续如果你想在大数据的体系当中分析咱们的结构化的数据,尽管你可以去开发我们的Java程序或者是SSKY拉程序,但是呢,更简单的一种方式是直接协调C口语均,那么在整个大数据生态。
02:00
在圈系统当中,比如说哈游离的什么哈杜普生态圈,还有我们的嘛,这个18g生态圈,当然了还有我们的嘛,这个fli克生态圈,那么在这些生态圈体系当中,那么它都提供什么样的一些组件,它又提供哪些数据分析引擎来去支持我们的CQL语G,这个呢是我们将会在第一个小节里面来给大家介绍的内容,那么第二小节重点讨论一下大数据分析引擎haveve,首先大家需要知道haveve呢,它属于我们的哈杜普生态串体系,它是哈杜普里面提供的一个离线数据分析引擎,这个呢,咱们放到稍后来给大家进行相关的介绍。当然我们在这个部分呢,首先的第一个问题,那么咱们就需要知道到底什么是我们的have,那么它跟哈杜呢?
03:00
到底是一个什么样的关系呢?那么了解到基本知识以后呢,当我们学习have的时候,重点就需要去学习和掌握have的什么呢?数据模型,那么什么叫have的数据模型呢?就是说你在have里面能够通过使用C口语句创建哪些表的结构,那么我先把have里面它所知识的表的结构或者说什么类型给大家列在咱们的课堂笔记上,稍后呢,咱们来给大家进行相关的节相关的讲解。那首先我们在have文里面,它支持的最简单的一种表或者是数据模型,那叫做我们的什么内部表,那么你把内部表就理解成是orle表,理解成MYCYQL表,它们表创建出来以后呢,你能够通过使用标准的in儿dream,那么往里面插入数据,也能够去查询数据。
04:00
那么既然有我们的什么这个内部表,当然了还有我们的什么外部表,它跟内部表是什么区别呢?当然我们在have里面呢,还可以去使用咱们的分区表,那通过创建分区能够避免全标扫描,从而呢提高咱们查询的效率,并且分区表当中有一种特殊分区,那么叫做我们什么哈希分区对不对?那么我们的have文里呢,把它叫做我们的铜表,那么铜表的本质就是我们的嘛哈心分区,那么它通过哈希的算法能够呢把数据打散存放,这个问题呢,咱们放到so后也来给大家进行讲解,那么当我们创建表的时候后。表呢,还有一种表,那是我们的什么临时表,那临时表中的数据只存在当前的绘画当中,跟这个呢,跟我们在MYSQL里面是完全一样的,那当然有的表以后,我们在have里面呢,还能够去创建我们的嘛,试图,那视图在haveve里面跟你在关系型数据库当中,那么也是完全一样的,那通过创建视图,它能够简化复杂的查询语句,它能够基于单表创建,也能够基于多表创建,因此呢,总体上来说,你把整个的have呢,就当成是一个关系型数据库去使用,那么大家只要有这个C口的基础以后,对你来上,你来上手我们的have,那么将会非常简单和容易,那因此讲到这个地方的时候,赵老师呢,就带着大家梳理了一下,好,我们在今天晚上将。
05:47
们会学习到哪些知识好,咱们现在呢,咱们就按照这样一个顺序来给大家进行讲解,首先咱们看一下我们在大数据的各个生态圈划系统当中,它提供了哪些组件,这些组件哪些又支持我们的C口语G提供数据分析的功能,那么首先看一下我们的哈都生态圈,通过使用哈都铺生态圈体系当中的组件,它主要可以去用于构建我们的离线数据仓库,那这里呢,我先把这里面比较主要的一些组件先给大家列举出来,稍后呢,咱们一个一个来给大家进行讲解,对,首先第一个呢是我们的HMDFSM,那么第二个呢是我们的ya,对,第三个呢是我们的h base, 第四个呢是我们的hive的,还有我们呢,就猪keep,包括了我们在这个哈里面。
06:47
啊,还提供了我们的etr工具,也是我们的什么,还有我们的,那通过使用咱们TR工具呢,能够去采集我们数据的数据,来构建我们的离线输仓,包括实时输仓,那么总体上来说,哈多普林呢,主要提供了这些组件,但这个地方呢,可能还会有一些其他的组件,好这个地方呢,咱们就不一一的给大家去列举了,好我们分别来给大家解释一下这些组件的功能和作用分别是什么,让大家呢对整个的哈多体系能够有一个比较清楚的了解啊好,首先我们看一下我们的第一个组件,那就是哈多破当中的什么这个HDFS,那大家后续你在学习哈度的时候呢,可能呢,第一步就需要去学习。
07:44
到底什么是我们的HDFS,它是属于哈都普当中的分布式文件系统,你把这个分布式文件系统呢理解成是一个网盘就可以,它能够以这个文件的形式解决海量离线数据的存储问题,因此呢,它适合构建我们的离线数据仓库。那么还有一个呢,就是我们的erm么?什么是erm呢?Ya门,它是属于哈都普的2.0版本以后要注意版本啊,1.0没有啊,它是属于2.0版本以后提供的一个资源和任务调度的平台。那么你的这个map producedu呢,默认就是运行在我们的yam之上,那这种on yam的方式是目前我们在大数据的体系当中执行计算任务的主要方式,也就是你的什么马producedu on yam, 你的是。
08:45
Spark on yam, 你的flink on ya, 我们把各种计算任务呢都运行在yam之上,这种方式再重复一遍,是目前我们在大数据的体系当中运行各种计算任务的主要方式,并且呢,我们在这个哈杜普的安装包里面,对当你把哈杜安装好以后呢,你的这个HDF和M呢就已经被集成好了,通过使用HDFS我们能够存储离线的文件,通过使用样M呢,我们能够去执行我们的map丢程序,尽管在目前的大数据的体系当中,很少会在直接开发我们的map produce程讯,但是呢,Map produce的思想,它采用这种先拆分在合并的思想,能够解决大数据的计算问题呢,那么这种思想也被借鉴。
09:45
到了我们后续的10SPA克,还有这个弗link当中,因此呢,强调一下,如果说大家后续你要系统的去学习大数据的知识,那么第一步呢,还是好好需要去学习一下到底什么是我们的麻,就是那既然你的这些步,这个HTFS和样,它都集成在了哈安装包里面,对除了这两个部分以外,其他哈都的组成部分,那么需要单独的进行安装,那么怎么线呢?就去启动一下我们的哈多普集群,当你把哈都分启动起来以后呢,这两个部分就自动启动起来了的,好,咱们这个地方切换到我们的命令行的窗口当中去,好咱们就执行一条命令,叫做什么s start on, 通过这一条命令呢,它能够把我们how do当中的HDFSN,还有how do当中的样都给启动起来,那这个地方。
10:45
方它所启动的三前三个进程属于我们的HDFSM,后两个进程属于我们的样,那通过打印输出的信息,那么咱们前三个哈,那就是我们呢,这个load,我们的data load, 我们的second load的这三个Java进程,它是属于HDFS的,而后面的两个resource manager, 包括我们的manager,这两个是属于咱们的等,那这些东西都是属于Java的后台的进程,因此呢,咱们可以通过使用Java的个叫要go psm查看后台的什么相关的信息,那当你看到这五个进程它被打印输出出来以后呢,都表示你的how都的HDFS,包括M呢都启动成功了,那么咱们可以通过一种非常直观的方式,因为呢,它提供了网页的什么图形化的工具。
11:45
管你的HDFS包括了访问里的样,那么大家现在看到的什么这样的一个图形画的界面是我们HDFS的什么呢?图形化界面,通过使用这样一个图形化的工具,你能够去监控HDFS,也能够操作它,当然要么呢,它也提供了类似的一个图形化的工具,端口号是多少呢?
12:10
端口号是我们的么?8088的,那如果说你有这个my produce程序,你有这个10SPARK程序,你有这个flink程序,运行在我们的yam之上,那通过大家现在看到的什么yam的图形画的工具,你就能够去监控整个任务的执行的过程或者状态,对好这个来改演示一个什么DEMO,好再来看一下哈多当中其他的组件,其他组件都需要单独的安装,它没有被集成在哈多当中,没有被集成在哈多的安装包里面,那那下面呢,是我们的什么这个h base, 那首先大家需要知道这个h base呢,它是个什么?它是一个我们的low c code数据库,那我们可以把low c口呢划归到我们的大数据的体系当中,因此呢,大家后续如果一样啊,你要系统的去学习大数据的技术。
13:10
需要去学习我们no CQ, 并且呢,HP它是个什么?列式存储数据库,它会把所有数据存储在一张表当中,那么列式存储数据库呢,非常适合执行我们的查询与dream构建我们的数据仓库,对,而传统的关系型数据库它是行式存储的,它主要适合执行我们的插入、更新和删除。这些问题我们在昨天晚上给大讲,给大家讲PG的时候,那那都给大家进行了详细的介绍,哈塞网下面呢是我们什么?我们的这个have haveve呢,它属于哈杜普生态圈,它是属于哈多普体系当中提供的什么呢?数据分析引擎,用于支持标准化CQL语句,这个问题呢,咱们发到稍后面来给大家进行讲解,那实际上呢,大家还需要去了解一下,我们在哈多里呢,除了提供我们的哈以外,它提供了什么?另外的一个什么数据分析引擎?
14:10
那么叫做我们的pig,那只不过呢,Pig目前呢用的比较少,但是呢,它也是属于哈杜普里面的什么数据微信机,但是呢P它支持的并不是CQL语句,它支持的是我们的P拉语句,它既能够处理咱们的结构化的数据,也能够处理咱们的非结构化数据,那这个让大家简单了解一下就可以了呢,好再往下面一更就比较重要了,那就是我们的嘛,这个猪keepper,那猪keepper呢,它是什么?它是属于这个哈都普生态圈体系当中提供的什么呢?分布式协调服务,你把它当成是一个数据库去使用就可以的,那么利用租keepper的这个选举和监听的机制,我们能够去解决大数据体系主从架构的单点故障问题,来保证它的高可用,因此呢,我们在生产环境当。
15:10
同学们猪keepper就非常的什么重要,好最后的两个是我们在这个哈杜普里面提供的什么呢?ETL工具,一个呢是我们的s group, 一个呢是我们的通过他们能够采集数据的数据,那么这个s group呢,它的全称是cql to哈do普,它主要针对关系型数据库,比如说我们想把Oracle的数据,我们想把MYCQ数据采集到HTFS之上,那么你可以使用什么,对呢,主要针对文本类型的日志的数据,他们都是属于ETL的什么数据采集工具,那因此呢,咱们介绍到这个地方的时候呢,赵老师呢,就把整个我们在哈杜普当中一些比较主要的啊,不是全部哈的主见,那那都给大家做了一个非常详细的介绍,当这些知识都是我们在系统学。
16:10
题的时候,那么需要重点掌握的内容,好再来看一下我们的10SPA克生态圈,那么这个10SPARK呢,它是属于什么呢?它是属于这个大数据的离线计算引擎,那我们在18课当中的计算都是属于离线计算,那计算引擎呢,在18课里面呢,实际上呢,主要包含有三个部分,一个呢是它的什么,这个18K com, 一个呢是它的什么18K ccom, 还有一个呢是什么?是这个10巴克,是追命,那我们在大数据体系当中只讨论10巴克的什么,这三个部分简单做一个解释,首先第一个呢,是这个什么10SPARK com, 那么这个10SPARK com呢,是整个10SPARK里面最核心也是最重要的一个部分,它是18g提供的离线计算引擎,那么我们在10巴克里面。
17:10
的所有计算最终都是18个克的离线计算,因此呢,整个18g都是离线计算,它没有真正的实时计算,那那么下面的这个是我们的嘛,这个18RKACCLE么?这个Spaaccle呢?它的作用和功能内似我们哈多普的haveve,那么它也是属于18g体系当中提供的一个什么呢?数据分析引擎,它也支持标准的C口语句,它能够把一条C口语句转换成是一个十巴课的任务呢,运行在10巴课集训之上,这个问题我们之前在给大家讲那个斯巴克的时候,都给大家做了相关的说明,好再来看一下最后的一个斯巴克当中,那就是我们的吧,这个斯8个追命,那么这个18个追命呢?它是个什么流计算引擎,它不能够叫做实时计算,因为呢,从本质上去讲这个。
18:10
18追命依然是底层,这个18靠的一个什么离线计算,并且还有一点大家需要去了解一下,就是呢,你在这个18课当中,你能够把这个什么呢?18C com跟你的这个18DREAMING这两者结合起来去使用,通过把这两者结合起来去使用,那么我们就能够通过使用C口语G来处理实时的流市数据,那么这呢,大家需要去了解一下,好再来看一下最后的一个什么生态圈,我们的弗林克生态,那这个里面呢,首先它提供了两套API,一个是我们的嘛,Datatime set data set API, 一个呢是我们嘛,Daytime stream API, 那么我们在splink当中的所有计算都是属于真正的实时计算,因此呢,斯八克偏向离线,弗Li克呢偏向实时,那么这个。
19:10
Data塔set的API主要用于处理离线数据,而这个data塔swimming命API呢,主要处理实时流失数据,并且你在弗link里面的计算都是属于真正的实时计算,当然我们在弗林克里面呢,它也提供了我们嘛这个弗林克斯com,那么这个弗Li克com,它从这个功能上去说,跟咱们前面提到的这个sparkiccom,还有have呢都是一样的,它也支持使用标准的C口L语dream拿去处理我们的离线数,Dream也能够处理实时流速数据,它依然会把一条CQL语转换成是一个弗林克的任务呢,运行在弗林克集群之上。那除了这个地方给大家列举出来的哈杜普的体系是巴克体系,那弗林克体系呢,还有一些其他的组件来给大家做个介绍,比如说我们的嘛,卡夫卡,那卡夫卡呢,它是属于这个大数据的消息系统。
20:10
那么通过他们能够去构建我们的实时输畅,当然还有我们呢,数据啊,数据嘛,数据弧等等等等,比如说你可以使用的弧顶来构建我们的数据弧,那通过使用数据弧呢,能够进一步的去实现我们的弧仓一体的架构,来解决HDFS,解决have呢在数据更新的时候的问题,因此赵老师呢,就把整个大数据体系当中涉及到的核心的组件都给大家做了一个非常详细的介绍,那后续你说你要系统全面去学习大数据的知识,需要去学习哪些内容呢?就是把张老师这地方给大家列举出来的这些组件目都掌握,那么整个大数据体系呢,你就有一个比较完整的了解,好因此问一下各位直播间同学们,关于赵老师今天晚上。
21:09
给大家讲的第一个部分有关大数据生态圈的体现,这个部分大家都了解到了吗?或者说都听明白了没有,如果大家都了解到了,都听明白以后呢,就请给赵老师回复一个1,或者呢给赵老师呢点一个赞,那赵老师呢,能够知道大家都还能够跟得上赵老师的节奏啊好,接下来呢,咱们就进入到第二个部分的学习,重点学习一下我们的haveve,那通过咱们刚刚的介绍,那么大家了解到haveve呢,首先它属于我们的哈杜体系,那到底什么是我们的have呢?我们给它下一个简单的一个定义啊对,那它是属于哈杜普体系当中提供的数据分析引擎,或者说是哈杜普里面提供的一个离线数据仓库啊。
22:09
啊,写下它是什么?哈多不哈多不呢,提供的什么啊,提供提供什么离线数据,离线数据仓库,或者说它叫做什么离线数据分析引擎,因此呢,通过使用haveve呢,能够非常适合构建我们的离线数仓,对,那并且呢,Have呢,还有一点它是什么?它基于HDFS之上,那既然have呢基于HDFS之上,那么你在have里面你去创建一张表,表中的数据最终都将以这个目录和文件的形式保存HDFS当中,因此呢,我们能够在HDFS的分布式的文件系统当中看到这张表的目录,而目录下的文件就是表中的数据。那Have呢,底层执行引擎默认是什么,On my.
23:09
Produce, 对,在默认情况之下,Have是什么have me on, 我们的my produce me, 那他会把the c口语境默认转换成是一个my produce任务呢,运行在哈集群之上,但是呢,由于my producedu呢,本身存在一些性能方面的问题,目前呢,我们在大数据体系里面呢,也很少直接的去开发和使用map producedu, 因此呢,我们在实际使用当中使用的更多的一种方式就是什么呢?是我们的什么have on Spark, 那什么叫have on 10spa克呢,就是把have执行的引擎由我们的my producedu换成我们的10SPA克,那么18课呢,它是基于内存的方式呢进行计算,因此呢,它在执行这条C口语句的时候,执行效率呢,就比。
24:09
My produ要快很多,这个呢是实际使用的一种方式,并且呢,通过刚刚的介绍,那提到了have呢,还支持我们的C口语dream,但是呢,严格上去说哈,严格上去讲have呢,它所支持的还不是C口语,它严格上去讲知识是HQL句,那么什么是HQL呢?把它全称写下,它就叫做什么have,什么qua language, 那么也就是have的什么查询语句,如何去理解什么是HQL,你就把它理解成什么,它是CQ的什么一个子集,那么什么叫子集呢?也就是说你把HQL呢当成CQ就可以,但当成CQ就可以,但是呢,它并不百分之百的支持C口的标准,比如说在这个have早期版本的。
25:09
时候,比如说我们的hive的1.0版本里面,它就不支持我们的in inter语dream,但是呢,随着hive的版本的不断的提高,它所支持的CQ的标准也就越来越多,因此呢,你就说have是支持CQ的,也没有任何的问题,因此讲到这个地方的时候呢,我们应该对have呢有了一个比较清楚的了解,并且还有一点大家需要知道,你在部署have的时候,除了需要有哈都put的HDFS和yam支持以外,还需要使用一个关系型数据库来存储什么haveve的数据,当官方推荐什么使用MYS来存储have的什么原数据,那么首先需要解释一下什么叫做have的元数据,比如说你创建的表的什么表,明表的名字,还有什么列的名字,还有什么列的类。
26:09
类型等等等等,那么这些结构的信息,那都需要存储在咱们什么MYCQL的什么数据库当中,因此呢,稍后呢,咱们创建好一张表以后,这些相关的信息都叫原数据,都能够到MYSQL里面呢,看到相关的内容还有层讲到这么多以后,讲的还是太过于抽象了,那么咱们能不能够。给大家演示个例子呢,在have里面,我们去创这张表,执行一些C口dream,看一下这一条C口语会不会被转换成mapdu是或者转换成是Spark呢?运行在我们的集群之上,好,当然是可以的,好我们切换到我们的命令行的工具,当T去首先保证底层的哈do普集群是启动成功的,刚刚咱们启动了,对好在你安装好heavy以后,它提供了一个命令航工具,那就叫have,对,那这个命令航工具使用的方式基本上内是我们的MYSQ的什么数据库,因此呢,大家如果有这个MYQL的基础以后呢,你来上手学习have呢,操作have,那将会非常简单,整个的操作基本上跟MYCYQL是完全一样的,好,咱们呢,稍微等待一会儿,好先问一下各位直播间。
27:37
同学,嗯,还能不能够跟得上赵老师的节奏,如果说大家都还能够跟得上赵老师的节奏,那就请在公屏之上,请给赵老师呢回复一个1啊,或者给赵老师呢点一个赞,好,咱们接着往下来给大家进行相关的介绍,好现在呢,咱们进到了什么have的命令横上,首先你们执行什么修table room, 那这句话不是跟你在MYCYQ里面一样吗?我们看一下我们事先创建好了哪些表,对好这下面呢,我么事先创建好了一个什么TEST0的表,好你这这呢,你还是能够通过使用标准的C口语句,比如说你能够通过使用c table创建了新的表,表的原信息将会被存储在MYSQL当中,好们的创成一张表哈,但cur我们这个什么。
28:37
啊,Table表明正,比如就叫什么TABLE01吧,当表结构非常简单,比如这个0呢,包含有三个列,一个是ID号,它是个整数,再来一个什么名字,它是个什么字符串,再来个A进表示人的年龄,它也是个整数,那当表创建出来以后,那么表的原信息将会被存储在MYSQL当中,比如说我们这个地方的表名,列名,或者说列的类型,那么现在呢,我们能不能够到我们的MYSQL里面看一下这些原信息呢?当然是可以的啊,可以的对,我们打开一个新的一个命令行窗口,连接到咱们的虚拟机之上去,连接上来,然后呢,进到我们的MYCQL当中啊,使用什么MYCQ的么?如果他用whom连接上来的,连接上来以后呢?啊,查看一下修他。
29:37
Access呢,它当你在安装部署have的时候,你需要初始化创建一个MYSQL的数据库来存储源信息,而咱们这个地方初始化的MYSQL数据库,那就是这个什么就是这个have的MYSQL数据库,因此呢,现在呢,怎么切换到MYSQL里面的呢?这个Have的什么数据库当中,看一下到底创建的哪些语源信息好,我们切换到什么我们的have的MYSQL数据库项目好,执行一个什么像tables好,接下面呢,会有很多很多表,通过使用这些表,那么咱们来存储我们have的原数据,比如说你能够通过查询这张表叫做什么呢?TBLS查询到你在have里面创建了哪些表,表的名字是什么好,通过去查询上面什么这张表。
30:38
叫做我们嘛,Columnism_VR了,你能够查到这些表里面包含哪些列,列的名称和类型分别是什么,这些呢都是属于它的原信星,好,咱们现在再查询一下,现在呢,我们的have文里面创建了哪些表呢?执行一条MYSQL怎么查询语句,查询TBS,那为了此的结果更加好看一些,后面的写三个什么斜线大写进换行显示,好咱们这个地方呢,也看到我们在MYSQL里面呢,创建了两张表,一张表就刚刚大家看到的什么我们的test铃音,就这张表,这张表还有第二张表呢,就是咱们刚刚创新的什么我们的table铃音,那这些表是不是都是我们在刚刚的have的行上看到的表,那表的名字会被保存在icyql里面去,当然分区的信息吗?
31:38
嗯,你的列的信息也会被保存到MYSQL里面去,对好们执行一个什么查询,这查询一下你的这些表里面到底包含有哪些列呢?那这张MYSQL表叫Co了,什么下划线VR通过输出的什么信息呢?你能看到呢?看到所有什么表中的什么列的名字,包括什么列的类型,因此呢,当你在have里面,不管创建什么表的时候,表的原信息都将会被存储在我们的MYSQL当中。好了,这个基本感知以后限量回到haveve的民行上,我们我们往刚刚的这张表当中能不能够去插入一条数据呢?你就能够通过使用标准的C口语dream往里面插入数据,而这条C口语dream它将会被转换成是一个map。
32:38
程序嘛,Produce是什么运行在我们的哈什么亚集上,对好们写一个插入in什么into我们么table里音,但是VALUE6人,那么数据呢,非常简单啊,们抄一条数据,比如说一号,比如说民政叫我们嘛,因是in into我们的嘛,我们的啊table table零音value的一号名字叫做我们Tom,年龄该是21岁的,我们执行就个什么插入语经命,那么这地方你会发现了停在这这的,它并不是停在这里啊,它正在执行我们的map producedu程序命,既然它执行的是一个map producedu程序命,通过刷新刚刚大家看到的什么这样么的图形化的网页工具呢,你就应该能够看到这个C口语,或者看到什么这个map produ它的什么执行的过程,因此呢,现在呢,咱们去刷新。
33:38
一下子就把yam的图形或者网页看一下呢,能不能看到你刚刚执行的这条C口语或得执行的我们的my produce程序,对,通过刷新这个网页,你现在应该能够看到呢,有一个什么程序,有一个我们的map producedu是呢,正在什么执行,正在执行我们的running状态,而你现在呢,你所执行的这个map produce程序,很明显就是刚刚我们执行什么这个插入语的CQ,因此通过这么样的一个非常简单的事例,那么就演示了一下整个have呢,它就是支持C口语dream,对不对,它能够把一条什么C口语dream转换成是一个mapdu什或者呢,转换成是一个18g,运行在我们的哈杜特呢亚M集逊之上,因此呢,有了这种方式以后。
34:35
大家呢,如果你以后呢,你想在我们的大数据的体系当中,当你处理结构化数据的时候,尽管呢,你还是可以去开发你的Java程序,或者呢开发你的skyva程序,但是呢,更简单的一种方式是直接输协调CQL语句就可以了,因为我们在大数据的各个生态圈的体系里面呢,提供了各种各样的什么数据分析引擎,那数据分析引擎都是支持我们的CQ的,对,我们再来刷新一下,就图形化的网页,这个时候呢,你会发现呢,我们的这条C口L已经或者说我们的mapdu程序呢,运行完成了,运行完成以后呢,数据当然最终会被保存到HDFS的上,将会生成一个什么数据文件,对,那当然了,除了支持我们的插入查询也是可以的,好。
35:35
必然你的氦M它是基于HDFS之上,那现在呢,我们能不能够到HDFS之上看一下这张表,它所对应的目录和它的数据文件呢?当然是可以的,利用像HDFS的图形化工具,这样子呢,可能会比较直观一些嘛,对,它这个地方呢,有个什么,有一个UT下面有个什么包s FA system, 对,我们是用图形化工具查看一下HDFS的文件,那当你安装配置have的时候,如果说你没有做任何的更改,那在默认情况之下,还有呢,它将会把这张表创建在我们HDFS什么user的啊这个目录项,因此呢,我们一层层的往下面去找一下,对,我们点击这个地方hdfs user目录,对,那点击这个地方的什么have。
36:35
嗯,点击wherehouse的好,你会发现呢,放大一点点的,下面的有两个什么子目,Room, 一个是我们的吗?Table铃音,一个是test零音,很明显这两个目录名字是不就是刚刚怎么创建表的名字,对,因此呢,你的你的的表就是HDFS的目录,而表的数据将会被保存在这目录下的文件,当然咱可以说命令,命令行呢,来查看一下文件当中的内容,好,这是咱们刚刚所对应路径,对,好,就让我们切换到命令行上去,对不对,实行HDFS目的命令HDFS,我们的DFS,查看一下刚刚的那个什么那个刚刚的那个。
37:24
哎,咱们这拷贝过咱们刚刚的那个路径是什么,什么use have where how, 我就写吧,You use下have下面的we are how什么的,下面的吧,TABLE01的这个呢,是你创建的那张表,它所定的HDFS的目录,对,而这个目录下呢,会存在一个文件,而文件里面呢,就啊,咱们这样是不是写错了wherehouse wherehouse文件,而这文件呢,里面呢,它就包含了我们这张表中的数据,因此呢,你所看到的什么这个文件,它将会是一个什么文本的文件,对,它里面呢,就包含了咱们刚刚插入的那条数据,对,因此呢,通过这样的一个非常简单的事例,就演示了一下如何进行have的基本操作,对,他跟我们的how do phone, 他跟我们的mycycom到底是一个什么样的关系,对,好,问一下各位直播间同。
38:24
学们,刚刚赵老师讲的这些部分的知识,大家是不是都听明白了哈,如果说这些部分的内容大家都听明白了,包括赵老师刚刚演示的事例大家也都看明白了呢,就请在咱们的公屏之上,请给赵老师呢回复一个。回复一个666吧,或者呢,给赵老师呢,点一个赞,大家都看明白了吗?啊,看明白以后呢,请给老师啊嗯。
39:03
请给老师呢回复一个666,或者呢给赵老师呢点个赞,那这些知识那很明显呢,都是属于have里面比较重要的内容,对你那学习have的时候呢,都需要重点掌握的什么知识呢?好了这些知识以后好们接着呢往下来给大家讲一下什么have的什么数据模型,那什么叫have的数据模型呢?你就把它当成是它的表表的类型,因为呢,你可以把have当成是一个关系型数据库来去使用,那既然它是一个关系型的数据库,对不?我们里面呢,就能够去创建各种类型的表对来存储我们的数据,好这个地方呢,Have里面主要支持以下六种数据模型,分别是我们的内部表,外部表。
40:03
分区表,同表,临时表和视图的,那我们一个一个呢,来给大家进行相关的介绍,好,首先第一种是我们的什么内部表,内部表达是我们在have里面最简单的一种表,刚刚咱们所创建的那个什么table零音,它就是一张内部表的,它有什么特点呢?特点是当删除内部表的时候,数据和原数据都将会被同时删除啊,写下主要特点是当删除的什么时候啊,会什么它将会,它将会同时什么删除我们的数据和原数据,对,那么它将会从什么HDFS之上把数据文件从HDFS里面删除掉,同时把表存储,这样MYCQL当中的原数据也会。
41:03
嗯,删除掉这个呢,是整个内部表,那么它的主要的特点,还有呢,这个基本的知识以后怎么再来去什么再来给大家演示一个示例啊,那咱们去干嘛呢?我们去创建一张什么内部表来,什么存储员工的数据,好这个地方员工数据是我们嘛,一个CSV文件,那CSV文件什么逗号分割的,当把表创建出来以后呢,我们能够通过使用种方式把你的什么外部文件直接导到这张内部表中去,而不使用我们刚刚执行的什么因类均,首先看一下员工表的数据,就这个C思V文件里面包含有哪些相关的内容啊,切换到我们的命令行的什么窗口,当文件好了,当前操作系统什么data w项有个什。
42:03
啊,e.csv这个呢,是一个什么逗号分割的文件,对这个里面呢,一共包含有14条员工数据,它是一个结构化数据,每一行呢包含有8个列,简单解释下。这八个列的含义,首先第一个列是什么?是我们的EP number是我们员工的员工home,第二个类员工的名字,第三个呢,员工的职位,第4个列呢,员工老板的员工号,第5个列员工的入职日期,第6个月员工的月薪,第7个月员工的奖金。最后的个列是员工所在部门的部门好的那表的字段了解到以后,现在呢,咱们去把这到内部表去给它什么创建出来,在have文里面,对好就使用标准的嘛,C口语跟好开我们那个么,我们那一个表table表呢就叫E,就是我们的employ,它里面呢包含有八个列,对每个地呢,刚刚解释过什么含义,好写向第一列in p number代表什么?员工号,它是一个整数,再来第二个列,员工的名字音。
43:22
Name, 它是一个什么支符串的一个什么stream,再来第三个name,我们的什么job代表员工的职位,它也是一个什么stream,再来第4个列是我们的m GM many, 老板的员工harm,它也是一个什么整数,再来第5个列hard data入职日期,那么入职日期它应该是一个什么date类型的数据日期类型嘛,这个地方呢,能们简单一点,依然把它定成是一个最类型支付串略金,再往下面的是s al月薪salary,再往下面一个列commission奖金,再往下面列department number, 员工所在部门的部门号。那当你创建那表的时候的存储数据需要注意一下你后续你导入的数据是不是一个什么CSV文件,而CSV文件它是什么?它是以这个什么逗号分割的,对。
44:22
既然是引逗号分割的文件,那么你的创建表的时候呢,就需要指定分割符是什么,否则呢,导入数据的时候它会出现问题啊。如何指定表的列的分割符是我们逗号呢?需要在后面写上咱们的几个关键的选项,怎么写呢?Room啊,什么我们什么我们的room form matter指定我们什么行的格式,什么是分割符呢?我们的de dein什么deiminated,的什么terminiminated terminated什么啊,Deinated的什么我们的film这terminated的什么BYBY我们的逗号啊,那通过使用这样的一种方式,我在创建这一张表的时候,就指定了未来我要导入的数据格式,它是一个什么呢?逗号分割对不对?表创建出来以后,当然。
45:22
表的这个原信息,它会存储在刚刚大家看到的什么MYCYQL当中,好,我们可以使用什么漏的语句把数据导入到这张表中去,漏的语句既可以导入本地文件,也可以导入HDFS文件,如果你要导入HDFS,那直接写HDF什么这个相对路径,那么就可以对好load,什么data local in pass, 注意这个地方有个关键字母是我们local,如果你的这个地方写了localcom关键字表示呢,导入的是一个本地系统的文件,如果不写local呢,表示导入的是一个HDFS的文件,最叫区别啊对,好,我们的本地呢,有一个数据文件在什么,在我们的这个root下面呢?有一个data目录下面一个也点CSV好外么,这个文件into the table哪张表里面呢?
46:22
刚刚上的ERP表,对,通过使用这种方式,我就把数据导入了表中去,本质上就是把它上传到了什么HDFS对应的路径上,那既然数据和表都有了,我们呢,就能够通过使用标准的什么C口语境来去分析和查询数据,但是请大家注意一下,我们在have里面,我们在have里面并不是哈,并不是所有的C口语dream都会被转换成是marker,就是或者转换成是Spark,比如说你实行一个什么非常简单的这么一个查询,我要去查询表中的所有数据,那么这个查询呢,它就不会被转换成是一个mapdu,对,那么比如说我们现在想在这个基础之上做一个什么排序操作,比如说我想去查询什么员工的姓名和薪水,并且的。
47:22
按照我们的嘛,心选这个转排序,对,那当你执行这个查询语的时候,它将会被转换成是一个map,就是运行在how多不之上,那当然你写多表查询或者是子查询那都是可以的,好那么现在咱们来执行一下这条C口语句,看一下这条C口语句到底会不会被转换成是马,就是呢,运行在哈多普亚么紧织上的,执行一下到C口句,好那么这个地方呢,切换到我们要么的什么图形化的界面上的,好,我们来刷新一下,这样入一个什么界面呢?那通过刷新的界面呢,你应该能看到呢,诶我现在我应该在我的什么一样M之上呢,我已经提交上来的个什么马producedu水,而这个马producedu呢,就是怎们刚刚执行的什么这叫查询语句。
48:22
因此呢,它被转换成是一个程序呢,运行在我们的how to之上,当前状态是我们的嘛,Running状态,对,那么因此通过使用这个让你的这么一个网页,你呢,就能够这监控到你的C考或者说。监控到你的什么任务的执行的过程或者的状态,好我们再来刷新一下这个什么呢,图形化的网页,那我们的CQ呢,或者说我们的mapdu呢,就执行完成了,执行完成以后呢,看一下怎么输出的这个结果,他将会什么查询出员工的名字,包括他把他的薪水,并且呢,按照薪水呢,做了个什么,做了一个声讯排序,当然降序呢,也没有任何问题的,这个里面就是支持C口的,C口的什么用法,包括函数,包括这个里面的嘛,大多表查询只查询都支持,因此呢,你就把它列解成是支持CQ的个引擎,通过它呢,能够去处理我们的大数据,那么现在呢,怎们可以去删除这个表,删除表呢,依然是使用是我们的drop table用跟你在这个MYSQL里面,或者说跟你。
49:42
的orle里面是完全一样的,因此呢,讲到这个地方的时候,那我们在have里面对那最简单的一种表,那到底什么叫做我们的内部表,那就给大家介绍到这个地方,好问一下各位直播间同学们,那关于什么是have的内部表,大家是不是都听明白了,如果说内部表这个地方大家都听明白了呢?就请在咱们的公屏之上啊,请给赵老师呢回复一个1啊,或者呢给赵老师呢点一个赞,对,这个地方大家都听明白了吗?对,听明白以后呢,请给老师们回复一个1啊,或者给赵老师呢点一个赞,好,我们接着呢往下来给大家进行相关的介绍,好,我们再来给他介绍一个什么我们的外部的,那外部表达大家。
50:42
相对的是我们的内部表而言呢,它可以指向HDFS的什么任意路径,写一下外部表它干嘛呢?它可以指向什么,指向HDFS什么任何的路径,对,并且当你删除外部本的时候,只会删除原数据,不会删除数据,这是它跟内部表的什么主要区别啊,写项当删除的什么,删除的时候只删除什么,只删除原数据,从MYSQL里面呢,把原数据删除掉,不删除什么不删除数据,数据呢,依然以文件的形式保存在HDFS里面。好,有了这个基本知识以后,我们来给大家举一个例子,很简单啊,首先我在命令行上,在我在have里面呢,我去创建,我在我在HTFS上,我创建目录。
51:42
把HDFSHDFS什么对,Make什么D的,那我是make make make什么DR的,我创建一个是students的文件,好比如说我通过从用这一条命令,我在HDFS上面有创建好的一个目录,我把一个本地文件呢,上传到HDFS等等,我现在编辑一些个文件是doty零音,那这个文件里面比如说包含有什么学生的信息,对好比如说我们的什么学生呢,我们的一号名字就是我们的Tom,年龄是21岁,二号姆名字是我们的Mary,年是20岁的,我们再来创建我们的第二个数据文件是就是0202,那啊电里面把我们三号名字是我们的麦克,年龄是我们的什么,这个22岁,对,好,我先把这两个数据文件先上传到刚刚等于什么是students的目录下,上传到去啊,HMDFS.
52:42
来模拟一下执行ETL的什么数据采集的过程,那我把通过使用ET呢,把数据库采集过来了,存储在我什么这个是student的目录下,这个呢是一个什么?这个是一个HMDFS路,今天数据采集过来以后呢,我看一下数据呢,是不是存在了,在啊杠S查看,像HDFS的这个路径,既然你的数据已经存储在了HDFS当中,我在haveve里面呢,我就能够直接创建一张外部表,直接指向这个HDFS的目录,这样子呢,我就能够直接从里面查询出数据,而不需要再次导入数据了,这样好,我们来在里呢,我们去创建一张我们的外部表,那要怎么写呢?Create我们对吧,Xternal关键证明external什么table这表示呢,我们创建的是一张外部表。
53:42
比如叫table,什么02,当然表结构很简单,它里面呢,比如说包含有什么三个列,一个是ID号TIDID号它是个什么,它是个整数对,加来个什么名字,它是一个字符串,加来个什么A,这它也是个整数对。好如何指定外部表,它所定的路径呢?先去把D和力的分隔符指定一下,我们把room,我们把分隔符是个逗号嘛,Room for, 马,我刚刚是一样的第一名,什么ated,我们的么field fields termin, 什么ated,什么terminated b by我们的这个逗号的好外部表呢,你还需要指定一个关键证,叫location,它指向HDFS的哪一个目录啊,就是咱们刚刚创建的那个什么student的目录啊,写下HDFS径点student。好通过使用这么样的一种方。
54:42
不是我在什么have里面的啊,我这样写错了,Do用de aimminated的aimmin写,重新重新写啊,Create, 我们的这个写错我们的external xternal ex X external table.
55:02
Table叫什么table,什么TABLE02 table table table02啊,这个是它是个什么,它是个整数,加了个名字,它是一个什么,它是一个字符串,我这样没有办法去改掉这口就你想就重新写一遍,对,好像个room,我们的么form marim, 什么imulatedimul field fields field fields term, 什么ated b, 不要写错了啊,Terminated b by, 我们的这个逗harm,好,然后再写上我们什么loation啊的关键字,什么刚刚的对吧,是student词的目录,对,好,外部表呢,这地方咱们给它创建出来了,由于我们在HTFS这东西上呢,已经事先有了数据文件,因此呢,我能够直接从这一张外部表当中查询出相关的数据,那么此个查询啊。
56:02
写的什么我们的新发我们的吧,TABLE002的,就什么数据将可以什么直接查询出来,如果说这个路径上数据文件发生了变化,那么也也能够直接查询出相关的变化,对,因此我们在命令行上再来创建一个新的文件,叫什么叫做我们的4STUDENT是什么03,那增加了我们的什么数据文件,那这个里面包含我们的4号,名字就是我们的John,年龄呢,是我们的嘛,21岁的,好,我去把这个文件再从上传到什么刚刚的录录音上,那模拟一下,我又HDF来模拟一下什么我新采集到了什么数据的,那因为你刚刚你创建的是一张外部表表呢,不需要进行任何的变化,首先看一下这个木架的文件是不是多了一个文件,是我们嘛,这个是丢的是零三。
57:02
好,既然多了一个文件,直接的去查询外表呢,你就能够获取到相应的数据的变化,好因此呢,回到咱们银行上面重新执行上面的查询一句,那你刚刚新加入的数据4号旧呢,这个地方是不是就查询出来了,因此呢,通过使用外表呢,也会很方便的,什么执行我们的查询与句录,好因此呢,讲到这个地方的时候,嗯,张老师呢,就给大家详细的介绍一下,到底什么是么?我们的内部表,外部表,那至于其他的几种什么数据模型,将会在我们的个系统的课程里面来给大家进行详细的介绍,好因此呢,介绍到这里的时候,好,我们现在的时间基本上到了什么晚上的10:28了,对,因此呢,今天晚上由赵老师要给大家分享的知识呢,大概就剩这么多啊对好赵老师呢,10。
58:03
都点什么35分下播啊,剩下的什么呢时间答疑或者呢大家去拍一下什么,拍一下课程啊,拍完课程的同学请通过私信把你的联系方式发送给赵老师,赵老师呢下播以后会单独的联系你的,好看大家有什么问题没有,还要问问题的同学,请把问题呢发送到公屏之上,要拍课的同学直接点击直播间的链接或者呢私信一下赵老师,对那新进来的同学们点点关注啊赵老师呢10:35下播好最后呢问一下大家今天晚上听完课了以后有收获吗?如果说大家感觉到有收获,就请在公屏之上,请给赵老师呢回复一个有啊,赵老师呢稍后就下播了。
59:05
嗯。啊,大家有问题吗?好,新进来的同学哈,点点关注啊,赵老师呢,稍后就下播了啊。
我来说两句