过去的都已经过去,今天就是新的开始。
今年(2016年)已经37了,过去的10多年一直在从事IT行业,大多工作都与游戏研发有关,互联网网站、网页游戏和手游的方方面面都有涉猎,喜爱coding,最爱golang,最想做数据分析。
今年中秋节后我有了一个新的工作机会——做数据工程师。这对于我是一个工作,也是一个目标,更是一个机会,因为多年来我对分布式计算、分布式架构、高负载系统设计等都有积极的研究,而这些带来的最后结果其实是大量的数据。从编程的角度来考虑,服务器端的挑战都可以归结为解决两个问题:网络IO(流量、带宽)和磁盘io(数据)。节省流量、均衡负载是我之前的日常工作,三年前我开始关注“大数据”方面的资料,但是始终没有条件进行具体的研究和应用,现在有机会有条件了, _。
“大数据”概念厘清
“大数据”这个概念已经被“神化”,现在创业不提个“大数据”相关的概念都不好意识谈融资;google 一下“大数据”有几亿的结果,但是什么是“大数据”其实至今也没有一个权威的定义。这本来就是一个人云亦云、约定俗成的“概念”。
我个人认为,对于我们开发人员,“大数据”就是超出现有系统的数据计算能力的数据以及对这个量级的数据进行处理用到的技术、软件及开发。比如我们的mysql里的单表数据超过了2亿条以后,为了计算常规的数据汇总分析报表,老程序(百万条记录级时零时写的)需要计算5~12小时,已经对运营部门常规业务造成一些困扰;我们的工程师当然有办法可以解决,比如增加索引、增加累计字段、增加分组字段等等,但是现在的系统不能停机!任何一项对数据库的操作在事实上都不允许,这个数据规模对于我们就是“大数据”。
基于我以上的观点,不同单位“大数据”的量级时不一样的,比如一开始的数据表结构就设计得更高效,或者有更好性能的服务器,这个量级就可能会提高几十倍甚至上百倍。但是实际工作中,我们这种情况却是非常普遍的。
大数据工程师
但是如果我们用以上定义”大数据“,大家肯定不屑,甚至都有哗众取宠之嫌,大家别急,我这个学习日志系列确实就是记录的大家理解的”大数据“工程师(hadoop、hiveSql、spark 等)的成长日志。
上面提到的现实问题是实实在在的需要解决的问题,也是我的第一个实际任务。老板给我的岗位是”高级数据工程师“,我其实有些困惑,因为我知道终极的”大数据“工具是需要用到hadoop、spark等,但是这些配置和搞懂基本原理都需要好久的还加上数据导入、清洗、统计分析、可视化等流程不是一两天的事情;时不我予,运营部门可是我们的“衣食父母”。我用了三天时间评估了实施hadoop、spark等的实施以及现有统计需求后,我决定采用先解决问题再采用新架构的方式。
也就是我的大数据工程师之路不是一条直接的道路,而是在兼顾公司实际业务的同时并行的。
《大数据工程师之路》系列日志说明
在我看来,程序员是孤独的,偶尔写写东西可以与全世界的程序员聊聊天;在很多人看来,程序员是风骚的,经常写写东西向全世界显摆, _
本系列以下简称《路》。
- 不定期记录——我不想被《路》所累!
- 《路》会记录我在工作中解决公司数据相关问题所经历的一切,包括工作思路、开发、基础软件准备、软件工具、存储、现有程序的升级、大数据分析、数据分析的实际价值等等。
- 我不是一个好的记录者,之前也制定过几次博客计划,但最终都“归于寂”,呵呵,这次也不能保证,毕竟写日志不是我的主要工作,也不是我很重要的事情。
- 我会尽量列出所用软件的版本。每次遇到问题都会想google求救,的确最终都解决了问题,但是过程往往是曲折的,往往就因为作者少写了一两句,我就被多折腾了很久,其实大多数这种情况是因为环境原因或自己的不细致。网友们如果发现我文中的一些你不能操作成功,请确认下是不是软件版本问题或者漏敲了几个字母。
行文风格
- 我骨子里是一个宅男、程序员,也很忙碌,没有时间字字斟酌,就用大白话。
- 大多数日志,我会先列出最终的操作步骤或代码,后面会啰嗦下前因后果。
- 每篇日志的标题我会加上索引后缀,如 xxx[9],表示是第9篇,本文不算。