本帖最后由 大猫儿 于 2018-1-23 10:14 编辑
作为javaEE 的老学员,工作已经一年多,我想说首先黑马这个机构确实不错,老师也很负责,感谢我们的班主任张萍之前对我们的照顾。
回想一下去年那一段时光,确实收获很多,通过学习确实提升了自己。
现在工作了也要随时充电,毕竟程序员这个职业就是这样子。
我最近在自学大数据,比较想分享下收集的学习大数据的注意点。
毕竟java这行会的越多越好。
给大家想学习的一点参考,如果有想自己充电的可以参考。
认识大数据
首先要知道大数据的定义,知道大数据的产生和意义、大数据能解决什么问题。
了解大数据用到的技术
这里的了解,只是知道有这么一个技术而已。不需要对技术有更深层次的了解。
从以下几个方面对真个技术生态圈有一个概念上的认识即可。
编程语言
展现技术
数据存储
处理框架
(机器学习、数据挖掘等没有接触)
从必备基础技能学起
基础建设决定上层建筑,在进入项目之前需要在基础上下功夫。如:
Linux命令
Shell编程
Java基础
大数据词汇(DB、ETL、DW、OLAP、DM、BI等)
Git用法
Maven用法
从Hadoop入门
大数据技术更多是的是采取分布式计算来解决海量数据的计算。而Hadoop是大数据技术领域中比较代表性的计算框架,技术比较成熟,其中的MapReduce是比较容易上手,非常适合理解分布式的“分而治之”的理念。
学习方法无碍是:看视频、看书、动手实践、解决问题、再次看书。
同时,需要多余身边的优秀人才交流,从他们那里吸收大数据的思维方式。
学习大数据必会技能
大数据的技术错综复杂,更新迭代也比较快。个人感觉下面几个应该属于必会技能了。
目前我还没有全部解除到,希望以后能逐渐接触。
【计算框架】
Hadoop(离线处理、Yarn资源管理)
Storm(流式计算)
Spark(基于内存的分布式数据集、流式计算等)
【数据存储】
HBase
MongoDB
内存数据库(如Redis)
如果将大数据的相关技能比作一颗大树,那么整个技术生态可以按照下面这样来比喻吧:
水分 → 数据源
根茎 → ETL(数据抽取、转换、加载)
树干 → 数据仓库
枝叶 → 展示
深入了解分布式思维
传统的计算机技术大部分都是基于单点完成的,也就是一台计算机就可以完成。
计算量比较大的时候,就去想办法提高计算机的硬件性能。
而大数据由于有5个V在那里,所有,更多的采用分布式来完成计算和存储功能。
也就是“分布式”处理了。那么,分布式处理和传统的处理方式在思维方式上有什么区别呢?
彪哥说:“万事万物道理都是相通的”。
我时常将“分布式计算”与“项目管理”进行比较,也确实从中获益不少。
------------------------------------
一个人是一个独立单位,可以独立完成量比较小的任务。
当任务比较多、大、复杂的时候,就需要多人协作完成,也就是团队了。
一个团队的构成比较复杂,不同的协作方式,可以解决不同的场景,
当然,不同的协作方式也代表效率、风险、职能等多方面的不同。
假如一台计算机比作一个人。
一台计算机完成的任务有限,当大量的任务的时候,就需要多台计算机来协作完成。
同样,多台计算机同时处理一个作业的时候,就涉及到协作策略、节点职能、沟通策略、风险应对等多方面的考虑。
比如从以下几点来看:
① 项目经理不应该成为团队的瓶颈。(Hadoop1.x进化到Hadoop2.x的原因)
② 资源需要备份,个人问题不能影响团队。(单节点故障问题)
③ 团队之间的高效沟通。(节点之间的通讯策略)
④ 数据存储策略。(是放在脑袋(内存)里,还是写在本(磁盘)上)
⑤ 资源分配方式。(Yarn资源分配)
------------------------------------
七、总结
保持学习的心态。
在技术上不要掉队。
为项目提供即战力为先。
保护革命的本钱(身体)。
持续推演个人职业规划。
多与年轻人接触。
针对大数据的初学者,很多人在学习大数据的时候会感觉无从下手,不太了解企业要求,我特地将自己学习过程和工作中的感受罗列下来。
最后,感谢在黑马的日子,在黑马学到的不仅是技术,还培养了我坚持不怕苦的精神,从来不知道自己还可以这么拼,在黑马的半年经历了很多,很多坚持不下去的日子都有班主任的鼓励和朋友的陪伴,在黑马,我要结识了很多志同道合的朋友,这些都是一辈子财富。以后的道路很长,虽然在黑马的时间很多,但是却是我人生中重要的日子之一。
|
|