在国外有几个Hadoop和大数据领域的顶级会议:
中国原来只有一个Hadoop in China,后来发展成了BDTC。今年除了BDTC外又多了一个China Hadoop Summit。
今年Hadoop和大数据领域的几个大新闻从这个BDTC上能够一目了然:
1,Hadoop 2.0和YARN,来自Cloudera和Hortonwork的人分享了Hadoop 2.0和YARN
2,BDAS和Spark强势来袭
UC Berkeley AMP lab来了一大波人推销他们的BDAS,主要是Spark,而且他们还成立了公司叫Databrick。这让我想起了在开源DB领域MySQL和PostgreSQL共存的现状。BDAS给我的感觉就像当年的PostgreSQL一样,很学术而且架构也很严谨。
今年Spark特别火,也因为没有更加合适的分布式机器学习框架。过去大家单机跑采样数据、MPI、MapReduce/Mahout等,都不是特别满意,各有各的缺点。机器学习最大的特点就是迭代数据,显然在内存中迭代更加靠谱,Spark解决这种问题比较合适。
3,SQL on Hadoop与企业级数据仓库
关于SQL on Hadoop的最新进展可以参考:
另外还有一些小新闻,如LinkedIn开源的Azkaban,是个job和工作流调度系统。和它比较类似的是Oozie,不过前者更加易用。
国外公司过来分享的大多是系统和平台方面的东西,国内的互联网公司可能在系统运维、算法优化和结合业务的场景上分享的更多。
关于HBase在这一年的发展,大家可以参考我的另外一篇文章 HBase in 2013
以下记录了我还听的几个其他的分享,主要涉及到Impala和数据挖掘。
基于Impala系统上的二次开发而来的系统也比较多。因为Impala的架构和代码都非常清晰,非常好的C++风格,实现子类会非常容易。
秒针科技基于Impala开发了一个叫Camaro DB的分布式数据仓库系统。他的设计思路就是把Impala计算引擎的数据来源从HDFS/HBase扩展到也支持PostgreSQL,这样用户就可以JOIN来自不同数据源的table。同时由于PG支持索引,那么整个query的性能也会有明显提升。具体实现主要是增加了Impala的一种新的ScanNode类型可以直接从PG数据库中读取数据;同时实现了统一的元数据管理服务。最后给出了他们实际的一个系统的性能数据,对于一个带Group by的查询,Impala会比Hive快很多,加了PG的Impala执行引擎和Impala一样快,不但没有影响性能而且还节省了在不同数据源直接数据导入导出的开销。跟演讲人聊了聊,为了防止Impala查询影响PG对外提供服务的性能,他们是把一个PG的从库加入Impala集群中提供查询服务的。当开启PG的索引支持时,查询性能会提升非常明显。百度在他们的分析系统中也使用了这样的思路。
SequoiaDB宣传他们是一个企业级、文档型、非关系数据库。总体感觉就是MongoDB的架构+一些企业级特性,数据访问接口是JSON。他们的目标用户群是企业级用户或者说传统行业(相对互联网行业来说),而这些行业的用户对类JSON形式的查询接受起来还是有难度的,所以他们就在自己的SequoiaDB上面罩了一个Impala的引擎,提供SQL查询服务。
而且他们把整个集群的metastore存储在SequoiaDB中,通过Impala作为执行引擎整合多种数据来源(Oracle存结构化数据,SequoiaDB存半结构化数据,HDFS存非结构化数据),而且可以在不同数据源的数据直接做JOIN。
由于像银行、电信、金融等行业存在很多历史遗留问题,他们的IT系统基础设施各种各样的都有,小型机、x86服务器混合存在,所以给他们这样的企业推进数据仓库建设如果能整合既有设备,对他们来说是非常happy的。
他们给出了一个case,是给银行做的交易流水查询系统,拿MapReduce/Hive做ETL,然后把结果导入SequoiaDB供查询。由于SequoiaDB支持索引,可以建立多个维度的索引,这样用户的查询就是实时的了,查询的接口是基于SQL的Impala。
腾讯广点通的分享,广点通是腾讯的DSP广告平台,类似于阿里妈妈。分享人从数据、系统、算法三个角度来分享了如何构建一个精准的效果广告平台。其实包括广告、电商等所有的互联网行为都可以归纳为user-item-context
从算法的角度来看由于用户和广告可以根据用户的新老和广告的新老划分为4个区间,所以需要针对不同的区间采用不同的算法策略。比较常见的有规则算法,content-based, collaborative filter, 图算法,分类算法等。
他们还举了个在Spark上分布式并行的高维海量数据的LR算法,15分钟增量更新线上模型。