Hadoop无法解决的问题

标签: Machine Learning & Big Data Hadoop 大数据 问题 | 发表时间:2013-11-11 21:54 | 作者:四火
出处:http://www.raychase.net

文章系本人原创,转载请保持完整性并注明出自 《四火的唠叨》

因为项目的需要,学习使用了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就显得粗笨了。异步系统本身的直观性并不像那些同步系统来得好,这是显而易见的。所以基本上来说,维护成本不会低。

文章系本人原创,转载请保持完整性并注明出自 《四火的唠叨》

分享到:
你可能也喜欢:

相关 [hadoop 问题] 推荐:

hadoop配置常见问题

- - 企业架构 - ITeye博客
收集记录一些Hadoop配置部署过程中遇到的问题. 这种方法解决了运行中的hadoop的safe mode问题,但是下次重启hadoop,还会出现这个问题. 其实这个问题,我猜测可能是由于目录/app/hadoop/tmp/mapred/system被破坏造成. 永久解决,可以删除掉/app/hadoop/tmp/,重新创建,重新format,重启hadoop——如果条件允许的话.

Hadoop无法解决的问题

- - 四火的唠叨
文章系本人原创,转载请保持完整性并注明出自 《四火的唠叨》. 因为项目的需要,学习使用了Hadoop,和所有过热的技术一样,“大数据”、“海量”这类词语在互联网上满天乱飞. Hadoop是一个非常优秀的分布式编程框架,设计精巧而且目前没有同级别同重量的替代品. 另外也接触到一个内部使用的框架,对于Hadoop做了封装和定制,使得更满足业务需求.

Hadoop--Datanode存储均衡问题

- - CSDN博客云计算推荐文章
  今天通过jconsole监控Hadoop写数据,发现一个问题,datanode数据存储不均衡.   环境部署情况:我们多台服务器,其中4台server用来作为DataNode,并且其中3台部署了web应用,我们目前设置的复制参数为1.   问题:没有部署web应用的Datanode节点处理的数据,与已经部署了web应用的Datanode节点数据写入量有很大差异.

从问题域出发认识Hadoop生态系统

- - 董的博客
Dong | 新浪微博: 西成懂 | 可以转载, 但必须以超链接形式标明文章原始出处和作者信息及 版权声明. 网址: http://dongxicheng.org/mapreduce-nextgen/rethinking-hadoop-from-problems-solved/. 本博客的文章集合: http://dongxicheng.org/recommend/.

Hadoop 集群配置过程及问题总结

- - BlogJava-首页技术区
1           实验环境搭建. 1.1          准备工作. 1.1.1     ubuntu 安装.        下载最新版本ubuntu 11.10.        安装注意事项:.        1、关闭防火墙:shell命令 sudo ufw disable. 不关闭有可能造成master slave 通信失败.

文章: Hadoop和元数据(解决阻抗失配问题)

- - InfoQ cn
在组织如何处理数据方面,Apache Hadoop展开了一场史无前例的革命——通过自由可扩展的Hadoop,可以在比以往更短的时间内,通过新应用创造新价值,并从大数据中提取想要的数据. 这次革命企图使企业建立以Hadoop为中心的数据处理模式,但是同时也提出一个挑战:我们如何在Hadoop的自由下进行协作呢.

Hadoop YARN常见问题以及解决方案

- - 董的博客
Dong | 新浪微博: 西成懂 | 可以转载, 但必须以超链接形式标明文章原始出处和作者信息及 版权声明. 网址: http://dongxicheng.org/mapreduce-nextgen/hadoop-yarn-problems-vs-solutions/. 本博客的文章集合: http://dongxicheng.org/recommend/.

(CentOS)hadoop环境搭建,及期间遇到的问题

- - CSDN博客架构设计推荐文章
(一)hadoop集群搭建准备,准备3台机器. 首先安装jdk 到/usr/local/jdk(具体就不说了),然后配置文件/etc/profile,添加如下. 然后输入$source /etc/profile立即生效$java -version验证一下就ok了. (二)然后修改个机器的主机名和配置网络.

大数据-Hadoop小文件问题解决方案

- - IT瘾-geek
HDFS中小文件是指文件size小于HDFS上block(. dfs.block.size)大小的文件. 大量的小文件会给Hadoop的扩展性和性能带来严重的影响. 动态分区插入数据,产生大量的小文件,从而导致map数量剧增. reduce数量越多,小文件也越多,reduce的个数和输出文件个数一致.

hadoop环境配置过程中可能遇到问题的解决方案

- - CSDN博客架构设计推荐文章
遇到此问题一般是jar包冲突的问题. 一种情况是我们向java的lib目录添加我们自己的jar包导致hadoop引用jar包的冲突. 解决方案就是删除我们自己向系统添加的jar包,重新配置. 将自己的jar包或者外部jar放入系统目录会在编译程序时带来方便,但是这不是一种好习惯,我们应该通过修改CLASSPATH的方式指定jar包路径.