美国队长
作者美国队长·2015-09-24 14:48
研发工程师·Alibaba

大数据架构

字数 1351阅读 1627评论 0赞 5

声明:本人不擅长文字描述,加上双十一来临比较忙,应管理员之邀,写了一个概要大数据架构过程中需要考虑的,由于描述的比较简单,如果各位看官在看的过程有需要深入的可以@我,很希望提出不同的想法。

从hadoop还是0.x版本的时候,已经开始接触大数据了,相比传统的解决方案,大数据主要在于数据处理的及时性,准确性,当然对于及时性不同场景不同对待,对于实时的即OLTP,要求及时性比较高,典型比如场景阿里的双11,相反对于离线的一般不会要求很高,准确性这个就不要分场景了。

  大数据的处理一般流程分为

数据采集—》数据清洗----》数据存储----》数据统计与分析

下面我按照各个子节点谈谈我接触到的电商跟通信行业的处理方案

1.     数据采集

     数据采集是首当其冲, 要确保采集的数据不会丢失,采集的数据不会重复,采集过程中如果有异常能够及时修复等等

 

通信行业:数据采集过来存储分为数据库跟文件形式,数据库的选择基于成本的考虑可以使用mysql集群,当然这个时候要考虑mysql的引擎的选用以及采集结果表的设计,如果选择文件,为了防止文件撑爆服务器,可以考虑使用hdfs即分布式文件存储系统,如果集群机器存储有限制,可以考虑对生成的文件进行设置生命周期或者对文件进行压缩,定时去删除过期的文件

 

 

电商行业:由于电商行业的数据大部分集中在日志中,而且一天的数据量上亿采集的数据规范更难以规范,所以一般放到hdfs中,至于电商的数据是如何采集的国内的各大BAT有自己的一套方式

 

重要性:

   对于比较重要的数据,要做好采集备份数据确保数据能够及时采集到

 

数据清洗:

   数据的清洗主要包括数据的格式化比如时间格式为yyyy-MM-dd hh:mi:ss需要改成yyyyMMdd,或者数据采集的过程中某一条记录不完整需要过滤或者用别的字符替换,传统的数据清洗会用ETL,市面上的etl工具很多,有的公司考虑成本自己开发出一个etl,实际在电商行业中,现在的数据清洗都会使用hadoop中的MapReduce,将写好的MR程序打包发布到hadoop集群中就可以了。

  当然数据清洗效率也要关注一下,

ETL:我使用的一款ETL是公司自己开发的,用的是java多线程并发编程,

MR:我使用的是java语言编写,主要考虑清洗过程中字符存在各种可能不规范性保证代码的健壮性。

 

数据存储:

1.     数据库传统的oracle,mysql,分布式数据库如db2,greenplum,vertica,还有开源如hbase,hive等,需要根据不同的场景选用不同的存储方式。

比如电商查根据历史交易日期查交易记录,通信行业根据手机号码查询话费详单等等可以考虑将处理好的文件导入到hbase中,当然hbase中key设置也要考虑一下,比如话费详单,可以把手机号码逆序作为key,因为号码前面几位毕竟就那几种情况

   

 

 

如果觉得我的文章对您有用,请点赞。您的支持将鼓励我继续创作!

5

添加新评论0 条评论

Ctrl+Enter 发表

作者其他文章

相关文章

相关问题

相关资料

X社区推广