前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Pig0.15集成Tez,让猪飞起来

Pig0.15集成Tez,让猪飞起来

作者头像
我是攻城师
发布2018-05-11 18:06:37
8350
发布2018-05-11 18:06:37
举报
文章被收录于专栏:我是攻城师

1,Tez是什么? Tez是Hortonworks公司开源的一种新型基于DAG有向无环图开源计算框架,它可以将多个有依赖的作业转换为一个作业从而大幅提升DAG作业的性能,看下面一张图,就能说明问题:

2,Tez能干什么? 上图已经说明问题了,如果将我们的Hive,或者Pig运行在Tez之上,那么速度会有几倍的提升,当然这仅仅是相对MapReduce来讲的,因为Spark这种分布式内存计算框架才是未来的的主流,所以让大家熟悉了解一下这个东西也并无坏处。 当我们的程序有很多复杂的操作时,例如,过滤,分组,排序,合并,聚合等,传统的MR是会每一个阶段都会落地操作的,当然开发者当初这么设计,也并不是没有道理的,只不过随着时代进步,人们追求更高,更快的性能或速度时,这个落地操作,拖了整体处理的性能,Tez能够合并多个阶段的过程,直接无须落地,就能进行下一阶段的任务处理,这是提速的一种不错的方法,当然spark直接利用内存做迭代运算,速度更是快的没法说,当然前提是你有足够大的内存,如果你没有那么大的内存,性能其实与普通MR是差不多的。 3,下面进入正题,看看如何使Pig运行在Tez之上。 Pig最新的版本,Pig0.15已经支持Pig On Tez的模式运行,使用方法,也非常简单 不需要你下载Tez的源码,然后编译大半天,最后还有可能失败,因为Pig直接内置了Tez的处理jar包 (1)在装好的Hadoop的etc/hadoop/下面 直接新建一个 vi tez-site.xml

Java代码

  1. <configuration>
  2. <property>
  3. <name>tez.lib.uris</name>
  4. <value>/user/tez</value>
  5. </property>
  6. </configuration>

(2)在hdfs上新建一个/user/tez目录 (3)拷贝/ROOT/server/pig/lib/h2下,以tez开头的所有的jar包上传到/user/tez下面

除此之外,还需要guice3.0所有的jar包 以及:commons-collections4-4.0.jar包 至此,所有的jar包已经齐全

(4)Tez vs MapReduce 同样一个pig脚本,分别运行两种任务模式 pig t.pig MapReduce模式 pig -x tez t.pig Tez模式 MapReduce的截图如下:

Tez任务耗时截图:

可以看出Tez下,任务执行的非常之迅速,堪比Spark的速度了, 最后再记录一个问题:

由于我的 dfs.datanode.max.xcievers打开的文件数,设置的太大了(65535),导致上述的异常发生,这个 属性的含义是: 相当于linux下的打开文件最大数量,文档中无此参数,当出现DataXceiver报错的时候,需要调大。默认256 当修改为2048后,重启启动集群再次,跑Tez作业时,没有上述的异常发生了

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2015-06-30,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 我是攻城师 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档