Hadoop的常见问题有很多,以前扣丁学堂大数据培训小编也曾给读者们分享过一些,本篇文章小编继续给读者们分享一些Hadoop常见问题解答,感兴趣的小伙伴就来了解一下吧。
1、100个以上hadoop节点,一般怎么开发,运维?任务很多的情况下任务资源怎么分配,任务执行顺序是定时脚本还是别的什么方式控制?
a.首先大数据的应用开发和hadoop集群的规模是没有关系,你指的是集群的搭建和运维吗,对于商用的hadoop系统来说涉及到很多东西。
b.任务的分配是有hadoop的调度器的调度策略决定的,默认为FIFO调度,商业集群一般使用多队列多用户调度器。
c.任务的执行顺序是有用户控制的,你自然可以定时启动,也可以手动启动。
2、基于Hadoop做开发,是否必须会使用Java,使用其他开发语言是否无法更好的融入整个Hadoop的开发体系?
基于Hadoop做开发可以使用任何语言,因为hadoop提高了streaming编程框架和pipes编程接口,streaming框架下用户可以使用任何可以操作标准输入输出的计算机语言来开发hadoop应用。
3、在reduce阶段老是卡在最后阶段很长时间,在网上查的说是有可能是数据倾斜,我想问这个有啥解决方法吗?
a.你这个就是数据倾斜啊,好多数据都集中在一个reduce里其他reduce里分配的数据比较少。默认情况下决定哪些数据分配到哪个reduce是由reduce个数和partiiton分区决定的默认是对key进行hash运算,一般情况下用mapreuce倾斜很少除非你用的HIVE。
b.reduce分为3个子阶段:shuffle、sort和reduce,如果reduce整个过程耗时较长,建议先看一下监控界面是卡在哪个阶段,如果是卡在shuffle阶段往往是网络阻塞问题,还有就是某reduce数据量太大,也就是你所说的数据倾斜问题,这种问题往往因为某个key的value太多,解决方法是:第一,默认的partiiton可能不适合你的需求,你可以自定义partiiton;第二就是在map端截断,尽量让达到每个reduce端的数据分布均匀。
4、非大数据的项目能否用hadoop?
非大数据项目是否可以用Hadoop的关键问题在于是否有海量数据的存储,计算,以及分析挖掘等需求,如果现有系统已经很好满足当前需求那么就没有必要使用Hadoop,没有必要使用并不意味这不能使用Hadoop,很多传统系统能做的Hadoop也是可以做的。
例如使用HDFS来代替LINUX NFS,使用MapReduce来代替单服务器的统计分析相关任务,使用Hbase代替Mysql等关系数据库等,在数据量不大的情况下通常Hadoop集群肯定比传统系统消耗更多的资源。
5、hadoopmapreduce和第三方资源管理调度系统如何集成?
Hadoop的调度器设计的一个原则就是可插拔式调度器框架,因此是很容易和第三方调度器集成的,例如公平调度器FairScheduler和容量调度器CapacityScheduler,并配置mapred-site.xml的mapreduce.jobtracker.taskscheduler以及调度器本身的配置参数。
最后想要了解更多关于大数据方面内容的小伙伴,请关注扣丁学堂大数据培训官网、微信等平台,扣丁学堂IT职业在线学习教育平台为您提供权威的大数据视频,大数据培训后的前景无限,行业薪资和未来的发展会越来越好的,扣丁学堂老师精心推出的大数据在线教程定能让你快速掌握大数据从入门到精通开发实战技能。
有疑问加站长微信联系(非本文作者)
![](https://static.golangjob.cn/static/img/footer.png?imageView2/2/w/280)