博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Hadoop真的是大数据解决方案?
阅读量:6517 次
发布时间:2019-06-24

本文共 1151 字,大约阅读时间需要 3 分钟。

hot3.png

笔者在经历由Sql server数据处理,转型到hadoop数据处理整个过程,日处理数据量级在10亿左右,

总结一些自己的想法

1,在一个job内,整个拓扑集群在map,reduce阶段要涉及大量磁盘I/O和网络读写。

从map阶段读入数据,到输出数据到磁盘,进行分区,洗牌分发各个reduce阶段,

这期间无时无刻不在消耗的机器的资源。

虽然可以通过map 简单条件判断,distributecache,bloomfilter,combiner

等等方案来极少I/O和网络传输的数据量,但是对于大数据来说,根本就没有触及到完全处理大数据的能力,

如果存在大表join的情况,天生的结构注定了,mapreduce没有hash join 

或者merge join 只有嵌套循环join,这种方式性能不会高,

mysql 就是只有这种方式,所以mysql行内join普遍的最佳实践最多俩表join。

2,整个拓扑依赖遵循木桶短板理论,不管是从整个job来看,

还是单看map,copy sort,reduce各个阶段,都依照这个理论。

不幸的是真实的业务场景数据倾斜是常见的事,导致单个节点负载远远大于其他节点,拖慢整个job。

数据倾斜解决方式,一般也就划分出一个特定的节点让那个阶段专门跑这个拥有大数据的维度,

或者对业务更加细粒度的拆分,

也就是将原先一个job,拆分成多个小job去完成。但是同样的治标不治本,

而且要对业务数据非常熟悉,一般的RD是接触不到真实的业务数据,也是比较难做到的。

3,在设计要简单算法mapreducer已经足够,通过key-value模式,

这也是我最长用的模式,但是写起来和后起维护都是一件麻烦的事,

笔者在实际业务场景下更加倾向于使用hive,

但是hive的带来便利的同时也带来解释计划的冗余性能想比于写mapreducer有一定差距,

简而言,hive容易维护,但是解释计划太糟糕,mr性能由开发者来决定,但是维护成本高。

4)处理复杂业务逻辑蛋疼,考验每个RD的水平(技术水平,思维能力),笔者统计过用户功能路径统计,

描绘整个APP,用户使用的路径图,以及在各个功能点之间活跃留存率,前期只考虑构建DAG情形。

5)hadoop天生就出于离线事务的处理,难以进行实时数据的处理也不能说是他的缺点,毕竟定位不同,所以spark,storm出来了。。。。

--------------------------end-----------------------

Google已经放弃hadoop,更加蛋疼的是我们的业务数据量没有增加,珍爱生命,请远离hadoop!

转载于:https://my.oschina.net/osenlin/blog/515373

你可能感兴趣的文章
mysql学习笔记
查看>>
年年有鱼游戏Android源码项目
查看>>
java使用Iterator、for循环同步数据
查看>>
创建镜像iso文件
查看>>
Linux下创建软RAID5和RAID10实战
查看>>
C++类的存储
查看>>
ActiveReports 报表应用教程 (8)---交互式报表之动态过滤
查看>>
解决使用Handler时Can't create handler inside thread that has not called Looper.prepare()
查看>>
跟我一起学docker(四)--容器的基本操作
查看>>
磁化强度
查看>>
C/C++ 数据范围
查看>>
LVS+keepalived+nginx
查看>>
monkey如何通过uiautomatorviewer的bounds坐标点击控件
查看>>
第22章,mysql数据库-1
查看>>
【亲测】教你如何搭建 MongoDB 复制集 + 选举原理
查看>>
虚拟化网络技术
查看>>
阿里云中间件推出全新开发者服务
查看>>
56.随机产生的id重复问题
查看>>
一个快速检测系统CPU负载的小程序
查看>>
java.lang.IllegalArgumentException: No bean specified
查看>>