实际上, 关于 Hadoop 及其生态系统的文章或者书籍已经汗牛充栋, 在 2016 年大数据这个概念兴起的时候, 有幸于能进入数据行业。虽然, 在这 2 年里, 并没有达到自己最初的期望, 不过还是跨出了那么一步。这里, 我们简单的聊聊 Hadoop 及其生态圈 (系统), 不做太深入的探讨。
Hadoop 是什么?
在互联网上经常看到 Hadoop 和大数据的名词, 那么有时候有没有想过什么是 Hadoop 呢? Hadoop 是什么, 是 1 个使用 Java 编写的分布式系统架构。它让用户在不了解分布式底层细节的情况下, 可以开发出分布式程序, 并充分利用集群进行高速运算和存储。现在, 你应该知道 Hadoop 是什么了吧。
Hadoop 的组成
在 Hadoop 的框架版本 1.0 中, 最核心的设计是:
HDFS
MapReduce
其中 HDFS 是 Hadoop Distributed File System 的缩写, 是 1 个分布式文件系统, 实际操作与 POSIX(如 Unix、Linux) 系统的操作类似。这个文件系统提供了海量数据的存储, 可以部署在低廉的硬件上。这对企业来说是 1 个很不错的选择, 在硬件成本上降低了不少却完成了任务。而 MapReduce 主要是为海量数据提供了计算。这样, 通过 Hadoop 这个架构, 我们就可以实现对海量数据的存储、访问与计算。而在 Hadoop 版本 2.0 中, 其核心设计演变为:
HDFS
YARN
在这里,MapReduce 被 YARN 所替代。YARN 是 1 个 Hadoop 的资源管理器, 它为上层应用提供了统一的资源管理和调度。它的引入, 为集群在利用率、资源统一管理和数据共享等方面带来了巨大的好处。此时的 Hadoop 就不再是 1 个简单 MapReduce 处理的架构了。
Hadoop 适合怎样的应用场景?
对于 Hadoop 适应的应用场景的问题, 我们先来说下它不适合的场景:
Hadoop 不适合实时计算与分析方面的应用
Hadoop 不适合大量小文件处理场景
Hadoop 不适合低延迟数据访问场景
Hadoop 不适合多用户写入的场景
由于 Hadoop 在设计的最初被设计为针对超大文件及流式数据访问, 因此 Hadoop 适合如下一些场景:
日志处理
非实时的数据分析
海量存储, 比如 ETL
广告推荐
离线计算
需要注意的是,Hadoop 只是 1 个架构。具体的应用场景, 还需要借助它生态圈的其他工具来完善。
Hadoop 的生态圈有哪些?
Hadoop 的生态圈主要包括:
Hive, 提供数据仓库的数据分析
Pig, 提供数据流处理
Mahout, 提供数据挖掘相关算法
HBase, 提供分布式、实时、高维数据库
Sqoop, 提供关系型数据库数据与 Hadoop 的导入导出
Flume, 提供日志收集
Zookeeper, 提供分布式协作服务
其结构如下图所示:
Hadoop 有哪些替代产品?
由于 Hadoop 设计的问题以及企业业务的要求, 存在如下一些替代 Hadoop 的产品:
Spark
Flink
disco
其中以 Spark 作为代表, 最有潜力可以替代 Hadoop。但是需要注意的是,Hadoop 只是 1 个工具, 存在其他替代品是很正常的。但是, 这并不代表 Hadoop 会在未来就消失, 只是在某些场景上使用的更少一些而已。毕竟,Hadoop 已经比较成熟和稳定, 生态也相对完善, 因此企业也喜欢应用。
Hadoop 与 Spark 有什么区别?
Spark 是另外 1 个大数据处理框架, 相比 Hadoop, 其将计算数据存储在内存而不是硬盘, 因此计算性能上比 Hadoop 快很多, 可以作为 Hadoop 的 1 种补充。相比 Hadoop,Spark 更适用于实时处理与分析的场景, 另外在 Spark 中还提供了图计算 GraphX 及机器学习的 Mlib 库, 通用性比 Hadoop 更强一些。另外,Spark 不是非要依附在 Hadoop 上才能生存, 它可以与其他的分布式文件系统进行集成来运作。对于大数据开发来说, 很多情况下是堆积木的 1 个过程。对于大数据的技术栈而言, 存在多个可选的方案而不是完全替代的方案。毕竟在软件工程项目中, 是要考虑成本的, 我们需要根据项目的经费选择合适的技术方案。
学习 Hadoop 能拿高薪吗?
任何 1 门高薪的职业, 必定有其不可替代的技术门槛和技能要求, 比如基金经理, 必定是金融行业那么一撮的精英的存在, 但是人家也要至少花个 1 亿美金的操练才可能称为称职的职业人士。如果单纯觉得学习 1 个 Hadoop 就可以拿到高薪, 那只能是痴人说梦话。当然, 不排除一些培训机构会打着这样的幌子让你去培训。而要拿到高薪需要具有如下一些条件:
有这样需求和给得起钱的企业
你具有相关的职业技能
你具有相关的学历
具备相关面试技巧
在 2018 年, 可以说大家都过得小心翼翼, 加薪是 1 件不容易的事情。伴随着 2018 各家厂商的裁员, 人们在互联网的冬天的呼喊中迎来 2019 年爆竹声。随着资本会在 2019 年逐渐回归本质, 但是要真的想通过大数据拿到高薪还是 1 件不容易的事情。据不准确统计, 实际上在招聘中很多企业虽然给出了大数据相关的岗位, 但是并不代表它能提供给你合适的岗位。很多中小型企业招聘 1 个职位, 实际上很多情况下它也不知道具体的岗位要求是什么, 只能在网上搜罗一些关键词进行填写。可想而言, 开出的薪资自然不尽如意。另外, 有些企业只是为了单纯的刷新存在感, 发布一些招聘职位, 而并不打算招聘, 为了避免浪费时间, 还需要擦亮眼睛。排除了上述第 1 个外部原因, 需要有这样需求和给得起前的企业的外因后, 那么剩下的内因就是招聘人员自身的水平了。首先,1 家靠谱的企业总有完善的招聘流程, 如果自己不是过硬的学历, 比如 985 院校毕业。那么, 要进入大数据行业真的会被拒之门外。另外, 要想拿高薪, 还需要具备过硬的心理素质和技术能力, 而不是我对 Hadoop 及其生态系统有所了解, 就可以轻松进入的。在大数据行业中, 加班加点是常饭, 因为数据有时候真的很令人堪忧, 自然是逃脱不了的事情。当然, 万事都不是绝对的。有些企业还是要转型的, 会开设这样的研发部门, 此时还是比较容易进去的。
有必要进入大数据行业吗?
大数据行业的工作, 是 1 个考验综合能力的职位, 绝不是网上一些公众号宣称的那么神奇和简单。如果只是为了高薪而随意进入 1 个行业, 是件挺危险的事情。如果在事先没有考虑妥当, 完全是为了薪资而不是个人兴趣的话, 你会很快发现就失去了前行的动力。无论从事什么岗位, 都要不定期的总结和归纳, 从而形成自己的知识体系, 并扩充自己的软技能。
原文地址:
http://blog.52sox.com/hadoop-…