Hadoop无法解决的难题
因为项目的需要,学习使用了Hadoop,和所有过热的技术一样,“大数据”、“海量”这类词语在互联网上满天乱飞。Hadoop是一个非常优秀的分布式编程框架,设计精巧而且目前没有同级别同重量的替代品。另外也接触到一个内部使用的框架,对于Hadoop做了封装和定制,使得更满足业务需求。我最近也想写一些Hadoop的学习和使用心得,但是看到网上那么泛滥的文章,我觉得再写点笔记一样的东西实在是没有价值。倒不如在漫天颂歌的时候冷静下来看看,有哪些不适合Hadoop解决的难题呢?
这张图就是Hadoop架构图,Map和Reduce是两个最基本的处理阶段,之前有输入数据格式定义和数据分片,之后有输出数据格式定义,二者中间还可以实现combine这个本地reduce操作和partition这个重定向mapper输出的策略行为。可以增加的定制和增强包括:
输入数据和输出数据的强化,例如通过数据集管理起来,可以统一、合并各式数据集,甚至也可以给数据增加过滤操作作为初筛,事实上业务上的核心数据源是种类繁多的;
数据分片策略的扩展,我们经常需要把具备某些业务共性的数据放到一起处理;
combine和partition的扩展,主要是有一些策略实现是在很多Hadoop的job中都是通用的;
监控工具的扩展,这方面我也见过别的公司内部定制的工具;
通讯协议和文件系统的增强,尤其是文件系统,最好能用起来像接近本地命令一样,这样的定制在互联网上也能找得到;
数据访问的编程接口的进一步封装,主要也是为了更切合业务,用着方便;
……
这些定制从某种程度上也反应了Hadoop在实际使用中略感局限或者设计时无暇顾及的地方,但是这些都是小问题,都是通过定制和扩展能够修复的。但是有一些问题,是Hadoop天生无法解决的,或者说,是不适合使用Hadoop来解决的问题。
1、最最重要一点,Hadoop能解决的问题必须是可以MapReduce的。这里有两个特别的含义,一个是问题必须可以拆分,有的问题看起来很大,但是拆分很困难;第二个是子问题必须独立——很多Hadoop的教材上面都举了一个斐波那契数列的例子,每一步数据的运算都不是独立的,都必须依赖于前一步、前二步的结果,换言之,无法把大问题划分成独立的小问题,这样的场景是根本没有办法使用Hadoop的。
2、数据结构不满足key-value这样的模式的。在Hadoop In Action中,作者把Hadoop和关系数据库做了比较,结构化数据查询是不适合用Hadoop来实现的(虽然像Hive这样的东西模拟了ANSI SQL的语法)。即便如此,性能开销不是一般关系数据库可以比拟的,而如果是复杂一点的组合条件的查询,还是不如SQL的威力强大。编写代码调用也是很花费时间的。
3、Hadoop不适合用来处理大批量的小文件。其实这是由namenode的局限性所决定的,如果文件过小,namenode存储的元信息相对来说就会占用过大比例的空间,内存还是磁盘开销都非常大。如果一次task的文件处理较大,那么虚拟机启动、初始化等等准备时间和任务完成后的清理时间,甚至shuffle等等框架消耗时间所占的比例就小得多;反之,处理的吞吐量就掉下来了。
4、Hadoop不适合用来处理需要及时响应的任务,高并发请求的任务。这也很容易理解,上面已经说了虚拟机开销、初始化准备时间等等,即使task里面什么都不做完整地跑一遍job也要花费几分钟时间。
5、Hadoop要处理真正的“大数据”,把scale up真正变成scale out,两台小破机器,或者几、十几GB这种数据量,用Hadoop就显得粗笨了。异步系统本身的直观性并不像那些同步系统来得好,这是显而易见的。所以基本上来说,维护成本不会低。
数据分析咨询请扫描二维码
数据分析师的工作内容涉及多个方面,主要包括数据的收集、整理、分析和可视化,以支持商业决策和问题解决。以下是数据分析师的一 ...
2024-11-21数据分析师必须掌握的技能可以从多个方面进行归纳和总结。以下是数据分析师需要具备的主要技能: 统计学基础:数据分析师需要 ...
2024-11-21数据分析入门的难易程度因人而异,总体来看,入门并不算特别困难,但需要一定的学习和实践积累。 入门难度:数据分析入门相对 ...
2024-11-21数据分析是一项通过收集、整理和解释数据来发现有用信息的过程,它在现代社会中具有广泛的应用和重要性。数据分析能够帮助人们更 ...
2024-11-21数据分析行业正在迅速发展,随着技术的不断进步和数据量的爆炸式增长,企业对数据分析人才的需求也与日俱增。本文将探讨数据分析 ...
2024-11-21数据分析的常用方法包括多种技术,每种方法都有其特定的应用场景和优势。以下是几种常见的数据分析方法: 对比分析法:通过比 ...
2024-11-21企业数字化转型是指企业利用数字技术对其业务进行改造和升级,以实现提高效率、降低成本、创新业务模式等目标的过程。这一过程不 ...
2024-11-21数据分析作为一个备受追捧的职业领域,吸引着越来越多的女性加入其中。对于女生而言,在选择成为一名数据分析师时,行业选择至关 ...
2024-11-21大数据技术专业主要学习计算机科学、数学、统计学和信息技术等领域的基础理论和技能,旨在培养具备大数据处理、分析和应用能力的 ...
2024-11-21《Python数据分析极简入门》 第2节 3 Pandas数据查看 这里我们创建一个DataFrame命名为df: importnumpyasnpi ...
2024-11-21越老越吃香的行业主要集中在需要长时间经验积累和专业知识的领域。这些行业通常知识更新换代较慢,因此随着年龄的增长,从业者能 ...
2024-11-20数据导入 使用pandas库的read_csv()函数读取CSV文件或使用read_excel()函数读取Excel文件。 支持处理不同格式数据,可指定分隔 ...
2024-11-20大数据与会计专业是一门结合了大数据分析技术和会计财务理论知识的新型复合型学科,旨在培养能够适应现代会计业务新特征的高层次 ...
2024-11-20要成为一名数据分析师,需要掌握一系列硬技能和软技能。以下是成为数据分析师所需的关键技能: 统计学基础 理解基本的统计概念 ...
2024-11-20是的,Python可以用于数据分析。Python在数据分析领域非常流行,因为它拥有丰富的库和工具,能够高效地处理从数据清洗到可视化的 ...
2024-11-20在这个数据驱动的时代,数据分析师的角色变得愈发不可或缺。他们承担着帮助企业从数据中提取有价值信息的责任,而这些信息可以大 ...
2024-11-20数据分析作为现代信息时代的支柱之一,已经成为各行业不可或缺的工具。无论是在商业、科研还是日常决策中,数据分析都扮演着至关 ...
2024-11-20数字化转型已成为当今商业世界的热点话题。它不仅代表着技术的提升,还涉及企业业务流程、组织结构和文化的深层次变革。理解数字 ...
2024-11-20在现代社会的快速变迁中,选择一个具有长期增长潜力的行业显得至关重要。了解未来发展前景好的行业不仅能帮助我们进行职业选择, ...
2024-11-20统计学专业的就业方向和前景非常广泛且充满机遇。随着大数据、人工智能等技术的快速发展,统计学的重要性进一步凸显,相关人才的 ...
2024-11-20