详情可以看码教授官网
如今,到处都在说大数据,那么大数据到底是什么呢?
大数据可以分为三类人,资料系统串接者,设计大数据演算法实做的人,管理大型丛集 (cluster) 的工程师。
其实,大数据又可以分为传统丛集和现代丛集。
大型丛集电脑设计其实从电脑诞生的年代就有了。以前都是用超级计算机来辅助我们演算研究。不过随著网路科技的演进,我们有了一个新的大型丛集运算的需求。 我们每天在网路上的各种行为,都会被记录下来:搜寻、逛页面、买东西、逛facebook、看到的广告等等。 将这些数据搜集起来并且拿来算钱,成了新的丛集运算新星。 处理这些数据时,和传统的HPC非常不同。HPC的数据量一般不大,但需要大量的浮点数计算; 大数据技术则反之,数据量很大,但计算相较简单。 与此相对的硬体设计也完全不同。HPC的硬体叫做blade,硬碟很小,但CPU、记忆体、主机板通通都是高档货; 大数据的硬体则通常要求每台主机都要有很大的硬碟,使得很多资料不需要在网路中传输,可以在本机计算就在本机计算。
要成为大数据工程师我觉得需要以下几点:
分析及设计高延展性 (highly scalable) 程式
能写出常见的 data operation 如 join, de-duplicate, group-by
能处理 data skew (资料过度集中在少数的 key)的问题
知道如何选择 map output key, 以及 secondary key sort 的排序设计
能验证资料正确性
设计 regression test system. 每次资料系统更新都能检验前后处理的差别
可以撰写工具检验大量的数据正确性
从一开始规划系统就让它具有高度的可验证性,以及严格的验证它
将资料工程自动化的能力
可以处理资料相依性问题
自动处理错误的策略
要能 revert & reprocess
使用 control table 去控制及追踪不同工做的 state
系统维护
透过 log & stacktrace 来 debug
知道基本的系统平台管理。JobTracker, HDFS 等指令要熟悉
了解各种 Map Reduce 参数,可以调校效能参数
实事求是的精神
做资料工程或分析,最忌讳的就是骗自己。永远不要用猜的,要用资料来验证自己的想法是否正确。
各种资料系统设计都有隐藏的代价,不要对这些代价视而不见。
挖掘问题先于寻找解决方案。只有完全了解自己的需求后,才能在多种方案中选择最适合自己的一个。
初级大数据工程师主要的学习目标就是能独立开发 highly scalable 的程式及演算法。更高阶的资料系统设计不包含在内。
学习架构
建立开发环境
写最简易的 SQL operation
写中阶的 SQL operation
写 SQL 难以办到的功能
浅论资料工程架构 (dedup, join, aggregation)
开始有能力分析资料演算法的复杂度,以及了解 data skew 的处理策略
能透过 log & stack trace 找出自己程式哪里写错
初级大数据工程师其实只要好好学,一般只要一到两个月就能学会。
详情请看码教授官网
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/31549219/viewspace-2199767/ ,如需转载,请注明出处,否则将追究法律责任。