写点什么

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:0010290
用户头像

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

关注

评论

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

基于 Web SDK 实现视频通话场景 | 声网 SDK 教程

声网

视频 SDK 教程

接口测试

Xd

接口测试工具

视频号加强打击低俗内容:对违背公序良俗的内容必须赶尽杀绝

石头IT视角

类的基础

GalaxyCreater

图的存储结构与方法(二)

乔乔

7月月更

OSI模型第一层:物理层,基石般的存在!

wljslmz

物理层 网络技术 OSI模型 7月月更

IntelliJ IDEA使用

GalaxyCreater

Java IDEA

Protocol buffers 的问题和滥用

HoneyMoose

LibcarePlus 用户态热补丁技术那些事

openEuler

安全 openEuler 漏洞 #开源

多线程&高并发(全网最新:面试题+导图+笔记)面试手稳心不慌

冉然学Java

Java 编程 多线程并发 高并发系统 资料分享

MySQL数据库索引

技术小生

索引 7月月更

节流和防抖的说明和实现

南极一块修炼千年的大冰块

7月月更

阿里onedate分层思想

奔向架构师

数据中台 7月月更

最新的swoole-cli已可以支持Windows,手把手带你在windows体验swoole

迷彩

swoole 服务器开发 7月月更 swoole-cli

openEuler 资源利用率提升之道 01:概论

openEuler

开源 openEuler 内核 资源管理

界面设计四大原则

空城机

设计模式 7月月更

一时跳槽一时爽,一直跳槽一直爽?

KEY.L

7月月更

JAVA编程规范之建表规约

源字节1号

后端开发

D1-H 开发板——哪吒 开发入门

贾献华

7月月更

深入浅出边缘云 | 1. 概述

俞凡

架构 边缘计算 网络 深入浅出边缘云

mysql进阶(十九)SQL语句如何精准查找某一时间段的数据

No Silver Bullet

MySQL 7月月更 精确查找

开源分布式链路追踪对比

穿过生命散发芬芳

链路追踪 7月月更

python小知识-代码规范最佳实践

AIWeker

7月月更 pyhon小知识

STM32+ESP8266+MQTT协议连接阿里云物联网平台

DS小龙哥

7月月更

springMvc参数获取

沃德

Java 7月月更

Docker安装Elasticsearch、ik分词器、可视化工具

宁在春

Docker Elastic Stack 7月月更

Java开发环境配置 / Vscode搭建

攻城狮杰森

Java jdk 7月月更

【Go实现】实践GoF的23种设计模式:观察者模式

元闰子

Go 设计模式 观察者模式 Go 语言

做一个有职业操守的软件匠人

Bruce Talk

技术 敏捷 TDD Agile

Vue Router 守卫

程序员海军

Vue 7月月更

查策,查策,python字体反爬再一次实践

梦想橡皮擦

Python 爬虫 7月月更

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