我想用64g固态硬盘做服务器的系统盘可以吗?
服务器系统一般比较大,这么大硬盘做一般服务器系统问题应该不大,服务器接触的人一般是电脑人才才弄,建议试下,不知道是装2K,还是2008,还是uinx,liux!!我是没接触过服务器!
相信大部分做数据的童鞋们都会遇到数据倾斜,数据倾斜会发生在数据开发的各个环节中,比如:
1用Hive算数据的时候reduce阶段卡在9999%
2用SparkStreaming做实时算法时候,一直会有executor出现OOM的错误,但是其余的executor内存使用率却很低。
3这些问题经常会困扰我们,辛辛苦苦等了几个小时的数据就是跑不出来,心里多难过啊。
为什么要突出这么大数据量?先说一下笔者自己最初对数据量的理解:
数据量大就了不起了?数据量少,机器也少,计算能力也是有限的,因此难度也是一样的。凭什么数据量大就会有数据倾斜,数据量小就没有?
这样理解也有道理,但是比较片面,举两个场景来对比:
公司一:总用户量1000万,5台64G内存的的服务器。
公司二:总用户量10亿,1000台64G内存的服务器。
两个公司都部署了Hadoop集群。假设现在遇到了数据倾斜,发生什么?
1公司一的数据分析师在做join的时候发生了数据倾斜,会导致有几百万用户的相关数据集中到了一台服务器上,几百万的用户数据,说大也不大,正常字段量的数据的话64G还是能轻松处理掉的。
2公司二的数据分析师在做join的时候也发生了数据倾斜,可能会有1个亿的用户相关数据集中到了一台机器上了(相信我,这很常见)。这时候一台机器就很难搞定了,最后会很难算出结果。
下面会分几个场景来描述一下数据倾斜的特征,方便读者辨别。由于Hadoop和Spark是最常见的两个计算平台,下面就以这两个平台说明。
Hadoop中直接贴近用户使用使用的时Mapreduce程序和Hive程序,虽说Hive最后也是用MR来执行(至少目前Hive内存计算并不普及),但是毕竟写的内容逻辑区别很大,一个是程序,一个是Sql,因此这里稍作区分。
具体表现:
Hadoop中的数据倾斜主要表现在: Reduce阶段卡在9999%,一直不能结束。
这里如果详细的看日志或者和监控界面的话会发现:
Spark中的数据倾斜也很常见,这里包括Spark Streaming和Spark Sql,表现主要有下面几种:
0条评论