首页 > 大数据 > Hadoop > 好程序员大数据培训之Hadoop常见问题
好程序员大数据培训 之 Hadoop 常见问题解答, 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 太多,解决方法是: diyi ,默认的 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 以及调度器本身的配置参数。
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/69913864/viewspace-2725018/ ,如需转载,请注明出处,否则将追究法律责任。