经过多年的发展,如今的大数据已不再只停留在商业概念,相关的技术生态和应用领域已涉及方方面面,题图展示了2018年的大数据蓝图如同章鱼的触角伸向各方。作为技术人员需要时刻保持对新技术的敏感度,但大数据这种爆发式的发展有时会让人感到恐慌无措,跟不上节奏就让人产生自我怀疑是否一直停滞不前。
其实目前的几个技术热点自己都早有关注,物联网、区块链、大数据、云计算、AI。避开区块链不谈,因为从早几年关注比特币开始一直都心存执念这是个投机的玩意,没什么好感,而其他几个热点问题究其本质上都是大数据的延伸。招聘网站上大数据工程师的待遇也相对较高,这个我们无法视而不见,这也是很多人想转到这个领域的原因。然而现实是残酷的,转岗不是你想转就能转,那种明明是资深的工程师却忽然间变成那么无知被人赤裸裸的鄙视的感觉只有经历过才能体会。曾经的经历也让我反思究竟是为什么,大数据工程师相较于做业务开发的工程师对个人的综合素质要求可能更高,对于存储、数据处理、多语言开发、运维等方面都提出更高的要求。痛了才会让人成长,痛定思痛我觉得先从宏观上对大数据领域梳理出大概的知识图谱是第一步要做的事。
大数据的落地离不开云计算基础架构在大规模分布式计算、云存储、虚拟化和网络等方面的支持,Amazon、Google、阿里云、腾讯云越来越多的巨头进入了这个市场,OpenStack的开源给更多企业提供了机会。提到虚拟化不得不提Docker容器技术,其高效的资源利用率和标准化交付是最吸引人的地方,由此可以引申出容器管理技术、持续集成、持续交付、自动化运维、微服务等,此外涉及分布式资源和容器管理方面的技术也值得关注,包括Yarn、Mesos、Kubernetes等。大数据处理的相关技术主要包括,数据采集、数据存储、数据计算、数据展示与交互等方面,做过爬虫就会有体会这与一次数据爬取的过程很类似。数据的来源有很多,网页、文本、数据库、日志、图片等,抓举方式也分pull和push的方式,常用的数据收集和分发工具有Flume、Logstash、Kafka等。需要对采集的数据经过清洗、过滤、去重等预处理后进行存储,分布式存储分为块存储、对象存储和文件存储三类,GFS和HDFS就属于文件存储,BigTable和HBase就构建在之上。基于对存储容量可扩展性、存储和访问性能、表结构不固定、CAP理论约束等多方面的考量,大数据领域通常使用NoSQL存储,根据不同的使用场景可以选择使用Hbase、Redis、MongoDB、Cassandra、Neo4j等。采集的数据需要经过统计分析、数据挖掘、机器学习等方式处理过才能体现其价值,离线批处理大数据处理依托于Hadoop生态的HDFS、HBase、MapReduce、Hive、Pig、Zookeeper、Ambari等实现,实时数据流处理使用Storm实现,Spark可以同时处理离线批处理和实时数据流,它利用内存计算加快数据读取和分析的速度为我们提供了一种更多的选择。数据处理的结果最终是要用于帮助我们发现规律进而做预测和决策,数据可视化和人机交互使得我们可以通过更直观更多维度去观察、分析和使用数据,涉及的技术有D3、3D渲染、VR、AR等。最后关注安全也是大数据避不开的话题,借用流浪地球中的洗脑标语「道路千万条,安全第一条。开发不规范,亲人两行泪。」
关于大数据的未来,物联网、可穿戴设备、智能芯片等技术使得数据获取无处不在。随着数据量的增长,一定数据的价值会越来越低,挖掘数据价值的难度会越来越高,这就需要有更快更实时处理数据的能力。正因为有如此多的可用数据作为基础,未来AI也一定大有可为,我们的生活将更加的智能化,人们最终也因为大数据的发展而受益。投身大数据是大势所趋,我们需要有自己有独立的思考判断能力,不亦步亦趋,但顺势而为,找到合适的切入点是最重要的。