00:00
好,接下来我们来看一下在企业开发当中啊,如何来配置对应的压缩,因为上面说了说能在map输入端进行压缩,Map输出以及reduce输出三个地方都可以配置压缩,那在企业里面真正怎么配置?对吧,这是我们要解决问题啊,那首先来看哈,呃为了支持多种压缩呃和解压缩算法,还多引入了编码和解码器,比如说压缩算法和解压缩算法,那由谁来完成呢?比如说default JJ default由它,哎,G这由这个这是什么?看后面这什么。是不是这个类的全类名啊。哎,你说在这个类里面能够对它进行一个压缩和解压缩的一个处理。OK,那这个后面我们要用啊,先放在这儿,那下面来看具体的如何来开启对应的压缩,那我们压缩的时候是不是有三个位置啊。盯一下。顶过来之后来到这个位置,那下面看一看如何来配置,对应的这个压缩,首先面临的就是输入端怎么配置。那是不是带有一个参数,就他。
01:00
叫IO comparison,那这个默认参数其实是没有给你们看一下哈。拿过来。来到这个call set。啊,找到这,找到这之后,你发现这里面这个值是默认没有啊。空的吗?哎,空的啊,啥含义呢,它是,呃,它默认的有一些压缩方式,它并没有写在这儿,哎,你可以后续增加,你要这个支持的扩,你可以配置在这里面。那你看它默认它支持哪些呢?你可以通过这个命令叫hiop track native啊。查看本地库拿这之后呢,你来到集群上。打开Linux集群吧。打开之后粘贴。啊,执行,你执行完这个命令之后,你会发现这个地方。看到了它支持的这个压缩方式啊,还得我自己的,嗯,Z lab对吧,这个支持还有snap哈,Snap处啊snap处,然后BP two这也是他支持的。
02:02
啊,这些压缩方式默认的都是可以直接拿过来用的,那这个snap要注意一下哈,它是真根据这个三托S7.5配合使用,你说还3.0和三多S7.5配合使用,它是支持压缩的,如果说你在这个本地啊,比如说我们这个I idea里面本地它没有这个另制环境,它这个耐它是不支持的。啊,它是一个特例啊,这个要注意一下。行那行,那这个支持方式有了,那这里面我们就暂时不配了,如果你后续需要增加额外的编码方式的时候,那就需要给他,比如说后面要增加拉罗,那就得配他了哈。那往下看啊,下面这个位置。那这个位置呢,其实处理的就是map输出端的一个压缩。那它有两个参数来决定,第一个参数呢,叫map reduce map output输出,然后compress。首先这个功能叫开启这个麦克输出端压缩,默认它是关闭的,看一下是不是这样。它这一参数在map set on。
03:01
Ma said。过来对吧,这个参数呢,默认是关闭的。那我把它设成数之后,你还需要设置这个map输出的一个编解码方式,你看这地方就是map输出端解码方式,那默认的是这个default code。那回来。那就是这两个,这两个参数,你看这个就是啊,刚才说的那个cos默认是它对吧。那再来一个,那我在reduce输出端这块。我如何来控制压缩呢?首先第一个参数,你看map reduce output,然后file output compress,压缩默认的也是false在这里面。查看一下。来到这CTRLFK是不是也找到了,那它的默认值呢,仍然也是关闭的。嗯,关闭了。行,那关闭的话呢,我们可以把它打开,哎,你可以把它生成处,设成处之后,你还需要设置一个,那我采用哪种压缩方式。
04:03
对吧,哎,那压缩方式,压缩方式呢,那以上那几种都可以,它默认的仍然是这个default。这个你看一下。对吧?哎,默认的是这个default product,好,那下面呢,给大家演示一下哈,真正的演示一下,比如说在这个map阶段如何来压缩啊,Map和reduce中间这个地方啊。那我们来看一个word count案例吧。打开一个啊。那个报名。报名啊,这个包名呢,叫鸭。就压缩吧,啊,简单粗暴一下啊,那我把这个word count案例复制过来最简单的。拿来。拿过来之后,这里面我要求开启的是map端,进行一个map输出端的一个压缩。那这怎么梳理呢?看这地方。直接把这两个参数拿过来就行了,第一个参数说这个参数啊叫map输出射程处。
05:02
是吧,哎之后呢,那我这种用哪种压缩方式呢?我这里首先选择的是这个b zp to啊这种压缩方式啊,然后后面呢,这个是嗯,这个编码方式啊。拿过来。直接走到这个位置。往这一放。这个呢,Alt加回车。导包导这个长的哈,还包下的OK。行,那打完之后我就直接执行了哈,现在呢是out put888还有没有啊没有。OK,右键执行。啊,执行完毕了,执行完毕之后,大家猜我输出的文件是一个什么格式。思考一个问题啊,我现在呢,这是map,呃,这是map的输出。嗯,输出,然后这是reduce,这是reduce的输出,我现在啊是在map输出端这块设置了一个b zp two。BZ,嗯,To这种压缩方式,那我问你最终输出这个地方,它的文件的格式是什么?
06:05
看好了,他现在的位置是在这个位置。嗯,在这边。好,思考一下,打开。发现并没有说产生压缩文件,你看跟我们的输出,我看的结果一样。没什么影响这种感觉吧。那当然没有影响了,因为你这输出map输出到reduce这块,它是你传输之前进行压缩。然后到达对方之后,他是不是就进行解压缩了,哎解压缩了,那最终现在输出这个文件是谁由来由谁来控制的,是不是reduce最终输出它来控制它是什么样的,那么reduce最终输出这块有开启这个压缩吗?并没有,所以说这块就是一个普通的test文本。搞定第一个问题。那下面,那下面我来第二个案例,什么案例呢?我让他在输出端采用压缩。
07:00
我控制他最终输出,那最终输出我可以设置这么几个参数拿过来。来到这里面。那来到这里面看一下这个能不能看懂第一句话。是不是开启你最终输出的一个压缩呀,也就相当于reduce输出端的一个压缩之后,那采用哪种压缩方式呢?我先用B这to,因为我这个map输出端,嗯,这map输出端是不是也是BB two啊,哎,我让他俩一样。可以吧,哎,可以好,我们来执行一下,右键执行。最新完了,然后打开,打开你看最终输出文件B这个two看能不能打开啊打开。看到了吗?跟我们输出的结果是一样啊,哎,这个是b z two这种方式压缩,那我把它再删掉。那下面我再干一件什么事呢?你刚才啊说map输出端是这个b two,然后你最终输出也b two,那我换一个。我用两种压缩算法。
08:00
啥意思,你map输出端用的它,我最终输出用这个。看看会不会有影响。啊,右键执行。OK,执行完毕,执行完毕之后再来看,你看变成GG这边了吧,啊打开。你看这个文件是不是仍然能看出来啊,哎,所以说只跟你这个map输出端的压缩是什么格式,它不会影响我最终输出的压缩格式。那再来一个最后一个,这个是这个,呃,采用。这个方式啊,Default啊default给大家看一下。啊,存在了啊,输出路径应该存在。好,关掉。关掉之后执行。OK吧,打开打开之后你看default后缀吧,啊,这个文件是,嗯,不好打开啊,用这个打开一下。
09:01
输入乱码啊啊这种啊,正常你用这个default这种解码方式,它是能够打开的哈,只不过我们这个Windows环境下,它没有这种解码方式啊。行,那这个就搞定,那下面如果说啊,我这变一下,我不用它了,我用这个s na。PY用它行不行呢?哎,你看一下它会不会报错啊,你右键执行。你看报错了吧,报什么错了,报说这个card by,呃,Native snap l这这个库不存在对吧,不可见,或者这个版本不支持啥意思啊啊,我刚才说过哈,你这个hi多3.s以上支持这个snap,它是需要跟这个Linux7.0以上的系统配合的。那如果你是这个六系列的,那它也不支持。嗯,包括你现在我这个是不是Windows环境啊,Windows环境我这里面有什么链系统啊,没有,因为Li系统里面提供了相应的这个动态链接库,支持这个snap是这样的一个配合啊,所以说这个地方你不要奇怪啊,你正常给它放放到这个集群上,它是能够用这个S奈皮糖不用慌。
10:09
行,那这个压缩就讲到这儿,然后后面呢,我们在项目实战里面啊,这个舒仓项目实战里面会给大家讲拉着螺,因为拉着螺啊,它的复杂度啊,相对来说要高一些。那后续我们来讲哈。
我来说两句