AI 年度盘点与2025发展趋势展望,50+案例解析亮相AICon 了解详情
写点什么

EasyHadoop 作者向磊谈 Hadoop 平民化

  • 2012-11-14
  • 本文字数:3919 字

    阅读完需:约 13 分钟

随着 Hadoop 的推出,大数据处理实现了技术上的落地。但是对于一般的公司和开发者而言,Hadoop 依旧是一个陌生或者难以使用的技术。这次的阿里云开发者大会上,向磊凭借EasyHadoop 将Hadoop 平民化而获得了最佳创意奖,InfoQ 对他进行了采访。

InfoQ: 首先请您做下自我介绍并介绍本次的参赛作品 EasyHadoop?

向磊:大家好,我是向磊,本次阿里云开发者大赛最佳创意奖作品 EasyHadoop phpHiveAdmin 的作者。目前供职于一家互联网视频公司的数据部门,负责整个 Hadoop 集群的维护和一些数据分析产品的研发工作。

本次参赛的 EasyHadoop 和 phpHiveAdmin 是我在业余时间编写的开源软件,其中 EasyHadoop 是界面化安装部署和管理 Hadoop 集群用的,phpHiveAdmin 是用来管理和查询 Hive 数据仓库用的。如果打个类比的话,EasyHadoop 类似于 Cloudera Manager ,phpHiveAdmin 类似于 HUE 里面的 Beeswax 。主要是希望能够帮助到一些需要用到 Hadoop 做数据分析,又苦于 Hadoop 技术门槛太高的公司能够快速应用 Hadoop。

InfoQ: 目前国内公司对 Hadoop 接受程度是怎样的?

向磊:个人看法吧,国内有一些大的互联网公司比较早就已经开始用 Hadoop 分析业务数据,但是很多中小企业或者国企央企还是处于观望状态。我觉得主要还是由于 Hadoop 的技术门槛比较高,推广起来具有一定难度,对中小企业来说,Hadoop 的实施成本比较高。然后国企央企可能认为假如自己上了 Hadoop,维护和开发将是比较困难的事情。当前 Hadoop 的人才稀有,所以,国内很多人听说过 Hadoop 了,但是能够真正下决心在自己企业实施的还是少数。不过总的趋势还是好的,愿意尝试 Hadoop 的公司和个人越来越多了。主要我觉得是业务压力逼的,传统的关系型数据库做统计分析现在确实有些力不从心了。数据量越来越大,一个 group by 就内存溢出了。在量变已经无法满足需求的时候,就需要质变了。

InfoQ:Hadoop 虽然很火,但是能够操作起来的公司和技术人员却不是很多,那么你认为是什么阻碍了 Hadoop 的“平民化”?EasyHadoop 又是如何帮助开发者来降低门槛的?

向磊:这个就需要说到我在大赛演示的时候说的 Hadoop 的三高问题 (不是血糖高血脂高血压高,哈哈,这三高由我来替大家承担)。

第一是硬件投入高,Hadoop 是集群存储和计算,这就意味着无法由一台服务器完成,搭建集群的话,一台高配服务器大概需要 2-4 万左右。对于中小企业来说,哪怕搭建 3-4 台集群都是很大的成本压力。不过很高兴这次看到阿里云提供的云主机,可以大幅度降低硬件的成本投入,适合 Hadoop 用的主机用一年才几千块钱,10 台下来一年才几万块钱,这可以说个人都是可以承受的了。

第二是技术门槛高,能够安装部署运维 Hadoop 集群的人极其稀少,因为分布式计算毕竟需要数台到数十台服务器的协同运作,这时故障就变成常态了。给我很深刻印象的是阿里云的唐洪博士做的报告,单台服务器的硬盘故障率是 4%,但是当你是一个集群,有 5000 台服务器的时候,硬盘故障率就是 99.6% 了。而且服务器之间网络通信,任务调度都会出问题,这些问题对维护人员来说都提出了相当高的要求。不过,其实最早做 EasyHadoop 和 phpHiveAdmin 是为了降低自己工作中的重复劳动,因为 Hadoop 的集群部署和安装配置乃至使用都是非常繁琐且容易出错的。所以为了省事,写了这样一个东西,从一个安装脚本开始,后来慢慢越写越大。最后整理一下功能就开源出来了。里面把安装脚本都封装起来了,用户不需要关心 Hadoop 安装的繁琐步骤。只要泡杯茶,点根烟,点点鼠标就好了,运维中的查看日志和重启节点也只需要动动手指就完成了。

第三是开发成本高,每个公司对自己的数据需求都是不同的,而能够开发 Map/Reduce 程序的人又少又贵,这就造成了大数据分析的人力成本很高。以前淘宝的报告提到,淘宝的数据 90% 分析是通过 Hive 仓库完成的,在我目前的公司,可能比例更高,95% 是 Hive 完成的。但是 Hive 本身是完全命令行操作的,除了技术人员可能都用不了。于是我就写了 phpHiveAdmin 用来做 Hive 数据仓库的管理和查询界面。这样,之前的 mysql/oracle 管理员可以不用开掉,留下来管理 Hive 仓库就好了。只要会写 SQL 就可以做大数据的分析了。并且我想提一个当初开发时候完全意料之外的改变,是管理流程上的变化。之前没有界面化,业务人员需要提交需求给技术人员。由技术人员编写 HQL 或者 Map/Reduce,然后生成报表返回给业务人员,周期慢,中间对技术和业务人员对业务理解有偏差还要重新返工。写了 phpHiveAdmin 之后,业务人员只要简单培训一下 HQL 语言,很多数据他们可以自己去数据仓库里查询,而不需要通过技术人员了,节省了管理流程上的时间和成本。数据结果也更加直观。技术人员也能有更多的时间和精力去研发更多更重要的数据内容。这算是 phpHiveAdmin 为公司节省管理成本和数据研发成本做的一点贡献吧。

所以总结下来,云计算解决硬件成本问题,EasyHadoop 解决技术门槛问题,phpHiveAdmin 解决开发和管理成本高的问题,开源出来,算是对大家作出一点微不足道的帮助吧。

InfoQ:目前已经进入到了“大数据的时代”,比如王坚博士说阿里云是一家以“数据为中心的云计算服务公司”已经印证了这一点,那么您认为“大数据”带来的机遇和挑战分别是什么?开发者如何应该如何应对?

向磊:王坚博士演讲的时候我在场外展台,没有听到,但是我听说他的演讲中也提到了 EasyHadoop,令我感到十分的荣幸。我十分同意王坚博士的观点,阿里系一直以来都是数据推动业务,才能获得今天雄霸整个中国电子商务市场和云计算市场的成就。关于大数据,我个人的看法是,大数据带来的也是大机遇和大挑战,不仅仅是技术层面上的,更是管理者眼界的问题。你打算靠什么来指导你自身的业务发展,是开所谓 Brain Storm 的拍脑袋会,还是用数据来证明,这是管理者需要改变思路的地方。

而作为开发者,也需要改变一些思维方式,从传统的单机思维,扩展到集群思维,大数据时代需要的是能够提出更快更好更创新的概念并实现。Hadoop 和大数据我认为给我的一个启示是,个人英雄主义的单枪匹马作战方式将不再适用。集体和合作的力量将远大于个人的力量,用中国俗话来说,就是“三个臭皮匠,顶个诸葛亮”。对于技术人员来说也是这样,一个人再强也不是强,团队强才是真的强。更多分享和更多交流,是开发者需要加入到自己的时间表里的,而不仅仅是提高自己的技术和算法水平。团队协作不会降低你的社会地位和收入。

InfoQ: 在开发的过程中,你用到了阿里云的哪些服务?请列举这些服务的优点和需要改进的地方?

向磊:主要是用到了阿里云的 ECS 服务器,对 Hadoop 来说这就够了。优点嘛,就是执行速度快,内网间通信也非常快。需要改进的么,我了解了一下,阿里云为了保证数据安全,每个云主机里的数据都是备份 3 份的。然后如果用上 Hadoop,Hadoop 本身又是备份呢 3 份,这样数据就变成 9 份了。不知道阿里云能否有一种服务,用户可以自己定义主机数据的备份份数的。不过我觉得这会比较困难,因为这是云计算的底层服务,可能会很难改。算是个希望吧。

InfoQ: 你提到 EasyHadoop 是根据 GPL 协议进行开发的,主要贡献者是几个核心团队的人员,您认为这种开源方式有什么利弊?

向磊:GPL 简单的说就是开源传染协议。我的想法是,我既然愿意开源出来,就意味这我愿意为需要的人作出一点贡献。而被提供帮助的人们不需要向我支付费用,只要把这种帮助一直延续下去就好了。“Pay it forward, not pay me”,目前代码贡献者主要是我个人,主要原因是语言和程序架构比较复杂,语言方面用到了 php,shell,python 三种。然后涉及操作系统的底层内容比较多,像异步调用,线程池,socket 通信等等。然后趣游的程序员史东杰提交过 phpHiveAdmin 的 HQL 自动提示代码和其他修改意见。窝窝团的用户提交过 phpHiveAdmin 的 HQL 正则表达式 bug 问题,目前已经修复了。

利弊方面,有利的方面是能够让软件可持续发展下去,每个人的代码都会被公开出来。弊端就是不会得到商业的支持,也就是没有任何来自商业公司的赞助。我目前是这样看的。

InfoQ:请你分享一下获奖的感受?

向磊:首先得感谢阿里云提供了这样一个比赛,能够和很多优秀的开发者面对面交流开发技巧。获奖感受一个成语总结就是受宠若惊,确实没有想到能拿到奖,因为毕竟参赛人数很多,每个人的作品又都独具匠心,非常有想法和特色,有些技术水平也非常高。比如三等奖的一个作者,北航的研三学生蔺波写的僵尸网络仿真就很厉害,网络仿真本身就是一个比较偏技术和前沿的东西,很难想象是一个学生的作品。

InfoQ: EasyHadoop 下一步的发展计划是什么?

向磊:首先来说还是会继续完善整个产品,继续简化用户操作,增加功能,增强监控,修正 bug,提高代码的安全性和强壮性。我还有很多想法,慢慢会逐步实现出来。然后也会对其他 Hadoop 生态圈的周边软件进行界面化封装,比如 Pig,Mahout 等等。大家在大会上都看到了 phpHiveAdmin 的 Logo,当时因为时间关系没有讲。在这里我也想借这个 logo 的诞生贫两句,这个 Logo 是我一个发小帮我设计的。当时我告诉了他三个关键词:蜜蜂,大象,和简单。大家都知道,Hive 的标志是蜜蜂,Hadoop 的标志是大象,phpHiveAdmin 的标志就是简单。所以就诞生了这个又像蜜蜂,又像大象,又很抽象的类似于任天堂红白机感觉的 Logo,我觉得他很好的诠释了我对这整个系列产品的概念,就是要让大家像打红白机一样简单的进入大数据的殿堂。只要你会用 Mysql,你就可以用 Hive,只要你会点鼠标,你就可以用 Hadoop。极简是 EasyHadoop 和整个系列产品的发展目标和方向,这也是我为什么当初决定用 php 来开发的理由。

感谢阿里云,感谢 InfoQ,感谢谷歌,感谢 Doug Cutting,以及感谢为大数据作出贡献的每一个人。

2012-11-14 20:0010276
用户头像

发布了 89 篇内容, 共 32.2 次阅读, 收获喜欢 4 次。

关注

评论

发布
暂无评论
发现更多内容

微信朋友圈的高性能复杂度

王华

架构实战营

Dubbo 动态配置中心

青年IT男

dubbo

天时地利人和—一个传奇操作系统的诞生记

兆熊

unix 历史

架构设计模块3 - 消息队列架构设计文档

Presley

架构实战营

深入理解spring框架之事务管理

邱学喆

mysql事务 spring事务管理 TransactionInterceptor Savepoint 事务传播行为

架构实战营 模块二 作业

Pitt

架构实战营

【死磕JVM】看完这篇我也会排查JVM内存过高了 就是玩儿!

牧小农

JVM;

封神总结!蚂蚁金服+滴滴+美团+拼多多+腾讯15万字Java面试题

Java架构之路

Java 程序员 架构 面试 编程语言

【LeetCode】搜索二维矩阵Java题解

Albert

算法 LeetCode 5月日更

架构实战营模块3作业-架构设计文档

En wei

架构实战营

出游时,请继续戴好口罩

石云升

新冠疫苗 5月日更

Java开发项目模板16步快速搭建,拒绝重复性工作!

北游学Java

Java 项目 模板

字节一二三面,面经(已经OC)四月底真实面试经历!

Java大蜗牛

Java 程序员 面试 算法 后端

不要轻言放弃,阿里P8架构师分享十年学习生涯

Java架构师迁哥

自研消息队列架构设计文档

贯通

#架构实战营

GreenPlum资源管理

数据社

greenplum 5月日更

常量之所想

顿晓

常量 5月日更

【LeetCode】删除并获得点数Java题解

Albert

算法 LeetCode 5月日更

MySQL-技术专题-主从复制

洛神灬殇

MySQL MySQL 高可用 高可用架构 5月日更

音视频编解码流程与如何使用FFMPEG命令进行音视频处理

张音乐

音视频 ffmpeg

SpringBoot-技术专题-教你使用Cache缓存组件

洛神灬殇

spring springboot cache 5月日更

新手学习微服务,得先看看这篇文章

Java架构师迁哥

Boss直聘超90W次转发的Java面试题库!已超神

Java架构师迁哥

新人小白福利!五一假期怒肝一天整理Java类,不简单不全你打我

牛哄哄的java大师

Java

Gartner 2021年主要战略技术趋势

车骑

组织转型 行业资讯 数字化 技术趋势 后新冠

什么是线程安全?并发问题的源头

wzh

Java 并发编程 线程安全

Vue Router 10 条高级技巧

Thrash

技巧

架构实战营-模块3学习分享

En wei

架构实战营

去中心化、P2P、NAT浅析

IT酷盖

音视频 WebRTC 去中心化

从简历被拒到收割8个大厂offer,我用了3个月成功破茧成蝶

Java架构之路

Java 程序员 架构 面试 编程语言

GitHub首次上线!华为顶级工程师手写的这份网络协议手册全面开源

Java架构之路

Java 程序员 面试 编程语言 计算机

EasyHadoop作者向磊谈Hadoop平民化_服务革新_水羽哲_InfoQ精选文章