00:00
好了,同学们,那这个my circle安装好之后呢,那我们接下来就可以把这个have给大家安装一下了啊,那我们来看一下这个文档啊,安装have比较简单啊,我们只需要把这个have的安装包,哎,给它解压一份,然后呢,我们再来给它配置一个have的还境变量,哎,然后呢,给这个拷一个驱动,顺便再修改一个配置文件就可以了,那咱们接下来做一下这个have的安装和配置啊,那咱们把这个my circle的客户端来退掉,然后呢,来到咱们这个OPT software,哎,然后我看一下啊,咱们这个have是第四个了,那我们就CD这个4HAVE在我们have这个目录底下啊,确实哎,有一个have的安装包,咱们接下来给怎么给它解压一下啊,TZXVF,然后阿帕西have是吧,杠大C,到咱们这个OT model这个目录下啊,首先咱们第一步需要解压一下这个have的安装目录啊,然后解压完事之后呢,咱们来到这个OPT model下,然后我们来看一眼have的安装包啊。
01:00
Have的安装包,我们给它改个名字是吧,阿尔法have,咱们这个have比较简单,那我就叫个have,哎,那这样一来我的这个have的目录就有了,那这个have的目录有了之后呢,那咱们接下来是吧,咱们要给have添加一个这个home,就是环境变量啊,那咱们接下来要修改一下咱们的这个麦in v.SH然后点一个O啊,把咱们have的这个环境变量,你给它拿一份过来,点个复制粘贴,然后呢,WQ保存,注意同学们,这个时候咱们需要source一下啊,So source咱们的ETC,然后呢,Profile啊,那这个时候你再敲这个have,它就能够识别到怎么have的这个命令了啊,那然后这这一步安装好之后呢,那咱们接下来咱们要做一下have的原数据配置。哎,我们需要,哎,把把把这个have的数据给它存储到my circle里边啊。
02:00
那咱们怎么做啊,首先啊,咱们如果说想让咱们这个have连到咱们这个my circle啊,首先第一步你需要给have拷制一份,拷贝一份什么呀,拷贝一份这个my circle的连接驱动。那我把这个连接驱动拷到哪个地方啊,啊,在咱们这个have的目录里边,大家看一下啊,咱们是不是有一个Li目录啊,啊,在这个力目录下,我们需要给它拷贝一份my circle的连接驱动,那因此是吧,我CP我的OT software,然后hi,呃,My circle啊,应该是在咱们这个my circle底下,我有一个my circle。有一个什么呀,My circle connector con是吧?Connector Java这么一个架包啊,这个架包就是咱们的连接驱动,然后呢,给它拷到咱们这个Li目录下,那这个时候是吧,你l l Li,你找一找,应该就能在这个力下找到咱们这个my circle的连接驱动了啊这是第一步,那第二步还要干嘛呀,第二步咱们还要这个在have的抗复目录下,哎,咱们给它修改一个have gun s,在这个have s里边是吧?咱们要添加哎很多咱们have的参数。
03:15
首先我们给大家简单看一下,第一个参数就是咱们have连接my circle的JDBC的连接,咱们要去哪连接have啊,咱们要去哪儿连接这个how数据啊,我要去这个my circle的me store这么一个库下。哎,然后呢,那然后既然你要连接这个地方了,因此咱们干嘛呀,咱们是不是要在my circle的这个位置,咱们给它创建一个mta,所以说啊,咱们这个买这个这个这个have的GDBC,这个URL,这个库需要跟你下边这个创建的给它对应起来才可以是吧,咱们给have的原数据这个库起个名字就叫Meta store,就是原数据的意思啊。然后再往下,哎,咱们给它设置一个GDBC的连接驱动,就是这个my circle的连接驱动,这么一个主类啊,啊,再往下用root这个账号连,然后这个密码是123456,然后再往下设置的是什么呀?设置的是have在HDF34的一个默认的存储路径啊再往下是have的have so to的一个疑万地址是吧,再往下是have so to的一个连接host是哈零二。
04:26
啊,然后再往下是一些原数据的东西,那这个东西我就我就不讲了,咱们快速的把这个给咱们创造出来啊,咱们直接来到哪个位置啊,咱们来到咱们的这个have的com目录下,咱们vim have杠。哎DR哎,来一个DR叉ML是吧,咱们点一个I,然后把咱们文档上的这个整整个文件你给他拿过来,然后咱们这个右键复制,然后呢粘贴。WQ保存,那这样一来咱们这个have刚哎就有了啊,这个是have的这个配置文件的第一步。
05:02
那再往下,哎,我我我建议大家再改几个东西,改什么呀?首先啊,这个have in v是have的启动参数,咱们给它重复个名字是吧,Have in v sh,然后呢,Have in v,把这个time late你给它去掉,然后咱们修改一下have in v sh,那咱们改了什么东西啊,在这一块有一个调优参数啊,是这个have客户端的哈杜普堆应内存大小,它默认是一个G,但是呢,并没有放开这个参数。然后人家下面说说说的很清楚,如果你不放开这个参数,它默认只用256兆,那二百五十五十六兆,如果你运运行了一个比较大的circle口,那它就会报错,所以说啊,这个1024这个参数我建议同学们是吧,在搭建have的时候可以把它放开,放开之后呢,就可以解决你这个have跑那个大型窗口报错的问题了,那这是第一个调优,第二个调是什么呀?是这个have的log附街。
06:03
首先大家知道是吧,我这个have运行起来是有日志的,但是啊,我们可以修改一下这个have日志的存储目录,就比如说是吧,我先把这个have的log间给它改一下,咱们给它去掉这个top late,然后呢,咱们改个什么东西啊,咱们改一下这个have的log间,在have的log间里边有一个have log点点R,这个参数就是控制你have运行的一个日志,如果你不改,它默认会存在那个tmp下边有一个have.log是吧?Tmp下边有个at硅谷,At硅谷下边哎,然后有一个have.log所以说咱们需要把这个给它改一下,那我改到哪个位置啊,咱们简单给它改一下,改到咱们这个OT modu have下边啊。把这些东西都删掉,咱们给它这个改一下,改到哪呢?改到这个O啊,就咱们have的安装目录啊,Modu mole是吧?啊咱们有一个have,然后呢,咱们给它来一个log。
07:05
啊,或者来个log吧,那就说明啊,在咱们这个OT Mo have这个下边有一个目录是logs,而在这个logs是专门存储咱们have的运行日志的,OK啊,那这个时候是吧,我WQ保存,把这三个配置文件你都改好以后,那咱们接下来就可以。初始化咱们这个have的原数据库了,怎么初始化呢?啊,首先进到咱们这个my circle的客户端里边。然后呢,咱们给它创建一个库,叫做梅塔斯多啊复制,哎,那这个时候是吧,咱们受dats就看到了有这么一个库,有这么一个库叫什么呀,叫这个梅塔斯特,但只不过是这个时候,这个库它应该是个空的,没有任何东西是吧,那咱们接下来干嘛呀,咱们给他quit一下是吧,那我接下来我要用have的这么一个服务。
08:02
啊,就是初始化have源数据库的这么一个服务,咱们给这个库啊,把它这个对应的表串联出来,大家可以看一下啊,就比如说我用我这个S连接一下,我这么一刷新,是不是我的这个Meta store看好了啊,在这个位置你右键怎么刷新一下啊。你是不是看到了这么这么一个梅达斯这么一个库,但是这个时候这个库是空的,没有任何的表,那所以说你要执行一下这么一个命令,呃,利用have初始化的命令,把咱们这个原数据库,把这些对应的表,咱们给它创建一下,我点个复制,然后呢,来到我的102这个位置,咱们右键走,嗯。那这样一来,哎,它会执行大量的circle,把咱们have需要的所有的表,它就串联出来了,怎么证明这个问题呢?你再次打开你的这个circle价格是吧,然后咱们点开这个位置,我刷新一下,就看到了这个Meta store这个库下边有很多表。
09:02
啊,这些表就是have,它存储原数据所需要的表啊,这些表就是have存储原数据所需要的表啊,那这个有了之后,那我们就可以干嘛呀,我们就可以启动咱们这个have的客户端了,那么接下来就给大家启动一下,咱们做一个测试,好吧,怎么做测试啊,首先第一个问题,你想要起have了,必须保证你的哈杜普是正常运行的,那哈杜普没问题之后呢,我直接敲have这个命令进到have的客户端里边来。然后在have的客户端里边来,我们我们做什么事,我们做什么事情啊,我创建一个表,看一看咱们have的这个表能否创建成功,好吧,首先第一个命令,你可以查看一下库,那咱们现在这个时候应该只有一个库是吧?我们来看一下啊,咱们来看一下咱们的这个。我们来看一下咱们咱们这个have里边,你show database是不是只看到了一个底伏的库,那这个时候你show tables ts应该是没有一张表,那这个时候哎,我们就可以是吧,创建这么一张表叫test的user,哎,其中是吧,我们这个表它包含了四个字段,有ID就是用户编号,有姓名就是用户的姓名,有这个省份ID,还有省份的名称,就是能够存储你这么一个用户,它是哪个省的。
10:29
哎,那咱们还给这个表是吧,给这个列加了列注式,以及这个表加了表注式,然后咱们这个表的列分格符是杠T风格的,那这么一个加表语句是吧,我就可以在你have的客户端里边,咱们来执行一下。诶,那这样一来它它显示成功了,显示成功以后呢,咱们再次是吧,Show tables看一下你是否能能够看到这个test user,那这个表没问题,那咱们接下来就试着往咱们这个表插入一条数据是吧,一号张三这么一个用户,属于001北京这个省,北京这个市,那咱们接下来是吧,我就直接这个复制,然后咱们粘贴看一下能否把这个数据给它插入成功,因为注意了啊,这个时候它需要跑这个MAP6了,那咱们现在这个MAP6是不是跑在牙上啊,因此啊,你可以打开你这个8088要刷新一下。
11:24
看一下咱们的这么一个任务能否进到雅安的集群啊,我们已经能够看到咱们这个MAP6任务已经跑起来了啊。咱们这个是已经是running状态了啊,咱们让他跑一下好吧,哎,他跑完了,只要这个地方跑完了,那咱们这个地方就插入成功了,那他真的插入成功没有啊,你可以select一下select星咱们的这个test user这么一张表是吧?User你会发现我看到了我这么一条用户,哎,一张三001北京。哎,又因为咱们这个外部的have是吧,咱们的原数据存在my circleql里边,那咱们的数据存在哪啊,是不是存在HDFS上啊,那我可以去HDFS上找一下这条数据,那我去哪找啊,咱们来到咱们的这个HDFS上,哎,咱们来到咱们这个。
12:15
来到咱们这个HDX的跟路径是吧,有一个user,有一个have,有一个warehouse,有一个test user这么一张表,在这个表里下是吧,就有一个000这么一条数据,你打开这么一个数据,你发现你看到了这么一条数据啊,那就说明啊,咱们这个have以及咱们这个MAP6是没有问题的啊,没有问题的,那讲到这儿我给大家讲个东西,讲的什么东西啊。咱们给大家讲一个这个have的语言数据,这么一个中文显示这么一个问题,大家看到了啊,咱们刚才在创建这个表的时候,咱们是有这么一个列注释以及表注释的,并且咱们这个注释写的还是中文,那接下来我就可以查看一下你这个你这个注释,那怎么查看呢?咱们利用一个命令叫DEC是吧,Test user,咱们点个复制,然后来到这个位置,咱们给它这个描述一下这个表,你会发现咱们那些中文注释它并不能正常的显示,显示的是一个问号乱码。
13:18
那这个问题会导致咱们将来在Atlas里边注意了,咱们是不是要用Atlas来管理have的原数据了,那你have的原数据本身就是乱码的,那我将来在atla里边看到的也是乱码的,那这样一来咱们这个功能就很鸡肋,就咱们这个注释的功能,你写中文它就很鸡肋,我写了我也看不懂,那所以说咱们要解决一下这个have的中文注释的乱码问题。那怎么解决这个have的中文注释乱码呢?哎,那这一块我要给大家讲一讲,为什么咱们在这个位置看到的是乱码,哎,那我们去哪找啊,咱们去的咱们咱们得去咱们买circle的这个Meta store这个库里边看。
14:04
那我们来找一找是吧,点开咱们这个Meta斯store这个库,其中有一个表叫C斯VR,在这个表里边是吧,你可以打开这个表,在这个表里边有一列叫呃,KK这一列就是用来存储咱们的字段注释的啊字段注释。首先咱们咱们现在只有一张表,有四个字段是吧,ID name province ID pro name,那这个科的这一列就是存储式的,那你会发现在我的这个表里边,我的这个注释就已经乱了,只要是中文,它通通是问号,那为什么会出现这种现象呢?因为啊,咱们这个Meta store have的这个Meta store的这个原数据库它怎么着啊,大家可以点一下改变数据库,你会发现它的这个字符集默认用的是拉丁音。哎,那小伙伴们大家都知道是吧,拉丁一这种字符集是没办法存中文的呀,咱们这个中文比较复杂,只有两种数理集能够存中文,一种是比较国际通用的是吧,UTF8,哎,一种是咱们那个国内专用的那个GBK是吧?GBK这两种字符集才可以存中文,那这个时候那那小伙伴。
15:16
就说了,老师我知道,简单啊,我能不能把这个拉丁音直接改成U8呢?我就告诉你,如果你直接把这个Meta store这个数据库的这么一个字符集改成拉丁音,那这样一来会导致你的have起不来,大家想啊,既然人家have是吧,把这个Meta store的这么一个原数据库设置成拉丁音,肯定有它内部的原因的,就说明他需要这么一个字符集,那你非要给它改成UT8,那他不就报错了吗?那既然这个地方咱不能改,那怎么办呢?既然这个地方我不能改,那我只能修改对应字段的字符集,就是咱们整个库还是拉丁音,然后我大部分表也是拉丁音,我只是把我那些需要存中文的列,咱们给它改成UTF8就可以了。
16:10
哎,那基于这个时候是吧,咱们可以修改一下这些东西,那这一块是吧,我给大家已经总结好了,在哪总结啊。咱们在这个位置是吧,我们给大家找出来了,如果你想修改你这个字段注释可以支持中文,你就改一下这个CSVR,就刚才我给家看的那个表是吧,哪个字段啊,C这么一个字段,如果你想看表注式的字符集,那你就修改一下这个什么table pre这个表的premier video这么一个字段,那如果你想修改分区的,你就修改这两个表的这些字段是吧?如果你想修改索引名,你就修改这个表的这个字段,如果你想修改视图的支持,咱们这个视图支持中文,那你就修改这两这个表的这两个字段,那因此不管怎么着是吧,我需要把这几个circle干嘛呀?我给它复制出来,复制到哪啊,复制到我这个circle里边,注意了,这些circle我的运行位置一定是梅store,我在我102的这个Meta store这个库下边是吧,执行一下这几个circle口,那我点点啊,我点我这个位置执行所有的查询。
17:17
诶,它有一个提示说什么呀,咱们七行circle全部成功,哎,我一共有七个circle,那只要把这个修改成功之后呢,那就说明咱们的Meta store,像这些表的这些列,它已经支持纯中文了,那你既然你这个地方支持纯中文了,那咱们将来的这个have从这个表读的时候,我是不是也支持读中文呢?所以说咱们把这个修改以后呢,咱们还要干嘛呀,还要修改一下咱们的这个have-set的这么一个GDBC的连接方式。在这个连接方式的后边,你得加上这么一个UTF8的这么一个编码格式,我们要以UTF8这么一个格式去读取咱们的那个。
18:03
原数据,那所以说我们要改一下怎么改啊,你把这些标红的你给它复制一下看好了啊,点这个复制,然后呢,打开首先呢,这个还有客户端,我就退掉了,把这个退掉,然后呢,然后咱们要vim,咱们这个have gun set,然后咱们找到咱们的第一条。找到咱们这个have杠三的这个第一条,然后呢,咱们点一个I是吧,咱们点一个插入,就是把咱们的这些这这两个参数给它添加到咱们这个参数的后边,首先第一个参数是吧,我要启用这个编码集,启用什么编码集啊,启用UTF8这么一个编码集,那然后呢,咱们这个,诶咱们就可以这个WQ保存了,保存好之后我就可以重新进入have后户端啊,我再敲一个have是吧,咱们重新进入have的客户端,然后这个时候咱们查看一下咱们那个test user,看它是否已经支持中文了,好吧,那这个时候我我我照旧是吧,DEC test user,然后你会发现咱们改完之后,咱们原本的这个表,它的这么一个注释依旧是乱码。
19:14
那是不是说明咱们修改了没有生效啊,同学们,不是这样的。那这个时候为啥它还是乱码呢?因为啊因为什么呀,因为咱们当初在创建这个表的时候,咱们那个字符集还不是U天赋旁。那你以一个拉丁一的字符集往这个表里边儿存中文,那就说明你的中文已经损坏到已经损坏过了。那就算这个时候是吧,你把这个字符集再给它改成了u to8,那注意它依旧不能给你变回来,就是它依旧是乱码,说明这个表已经是损坏过了呢,那你想解决这个问题怎么办啊,你只能把这个test user给它删掉,或者你重新创建一个test user2,你就比如说是吧,我们再来创建一个test user2。
20:01
这个test的USER2是在咱们改完之后,我又新建的表,那我们看一下这个表它能否成功呢?是吧,我们再来把咱们这个下表语句给它运行一下,我把这个表明给它重命名为TEST2,那这个时候咱们就可以来DEC咱们这个test user2了,那这个时候你会发现,诶,咱们的这个中文注释它已经能够正常显示了,同学们,如果你想用Atlas。来管理have的原数据,那么请你务必改一下have的原数据,支持中文显示,要不然在Atlas里边你看到的就是一堆问号,这个东西是非常鸡肋的啊,相信这个东西大家都应该能够听懂好吧?啊,所以说那我这个have改到这个位置,那就说明我这个have是没有问题了啊,就是重新创建的表,咱们这个中文的原数据信息已经可以正常显示了,那我这个问题解决好吧,那咱们这个have的安装部署就给大家讲到这儿啊。
我来说两句