大数据平台开发人员的核心竞争力是什么? 举报 理由 举报 取消 做大数据平台开发一般对算法要求不高,但是这些大的框架,每一个都像大的黑盒子,如:spark、hadoop、hive、kafka。我最近在研究kafka,但是仅仅是在会用,会选型的阶段。我觉得只要英语ok,完全没什么门槛。想问的问题是:如果想在这个方向上走得更远,应该怎么做,我觉得把源码都撸一遍好像非常不现实,刚入行半年,我scala也不熟悉,有点迷茫,想问问3-5年的从业人员你们怎么做的? 2017年9月19日 3 条回复 1021 次浏览 Hadoop,Kafka,Spark,后台,工程师,开发,数据
回复 ( 3 )
1.测试,测试,测试,写code之前想好怎么测试,分布式的测试是个非常麻烦的问题。
2.硬抗,kafka的复杂度其实还好,这里面有很多比kafka复杂很多,要习惯一个月读不懂一大坨code,等到一个半月的时候还是要抗下来。
3.抽象,想想这些人为什么怎么写,如果你可以批判他,不妨大胆批判他。
谢邀。
如果你现在就是想对一些比较有名的开源项目加深了解的话,这么几个方式可以推荐给你:
1. 看Web文档:这个我相信可能你已经做过了,但是文档有一个缺点,就是它只会把一个最终的结果拿给你看,而不让你看到中间的设计讨论过程。就像以前有人评价高斯,说他的论文只会给你看一个最终非常漂亮的结果,但是中间的过程都被他小心翼翼的擦掉了,不留任何痕迹。拿我自己来说,写Kafka文档的时候基本都是字斟句酌的,考虑用户在使用的时候会有什么问题,但是不会有太多“我们是如何想到要这样设计的”。
2. 看Wiki网页:大多数开源项目都有自己的Wiki pages,其实以前很多的讨论,被推翻的那些设计方案,接口的修改,都在里面有存档。比如:
Kafka Detailed Consumer Coordinator Design
如果你对Kafka了解的话,你就知道这个设计并不完全是最终在source code里面呈现的,后来又经过一些修改,比如:
Kafka Client-side Assignment Proposal
看过这些Wiki pages你就会对整个设计流程有一个大概了解。
3. 看JavaDocs:以上都是大概了解,具体到每一个class的设计,最好当然是看源代码,但是比较花时间,而自己实现原型也太慢。其实还有一个方法就是看Javadocs。好的开源项目的Javadocs应该是写的是很好的,否则不可能被广泛使用。这里包括每一个function的用处,如何与其他class做对接等等。
4. 用起来!这是我个人觉得最快的学习方法,因为只有你真正上手用了以后你才会对整个系统,不仅仅是开发方面,还有操作方面有了一个自己的体会。此外就是,不懂就问:)绝大多数开源项目都是有mailing list的,你用的时候碰到exception了可以问,没有看到expected results也可以问,甚至如果你自己有一个use case,你希望知道该怎么deploy这个系统达到你的目标都可以问。社区里面的大多数人都是很友善乐于助人的。
多谢你的邀请,我说说自己的看法吧。第一步:对相关开源框架做一下基本了解,可以实现选型。第二步:对自己负责的模块或者自己感兴趣的,可以“正确”使用.第三步:对自己负责的模块或者自己感兴趣的,可以对其实现框架,进行详细的了解,最好可以实现自己可以画其框架图.第四步:如果兴趣特别浓厚可以仔细看其详细实现.但上面都是建立在这些开源有使用场景下,不然学了也就忘了,也不可能深入了解.
手机打字,暂时就说这么多.