hadoop包含两大核心组件 hadoop两大核心技术是什么_hadoop包含两大核心组件


随着科技时代的发展,大数据与云计算已势不可挡的架势席卷未来,不可否认,大数据时代已经来临,并将深刻地改变着我们的工作和生活。学习大数据技术,是时代的召唤,是社会对高薪技术人才的渴望,而想要了解大数据就一定要学习Hadoop。作为开发和运行处理大规模数据的软件平台,Hadoop是Appach中用java语言实现开源软件的框架,并实现在大量计算机组成的集群中对海量数据进行分布式计算。今天,我们就来看看关于Hadoop核心技术的问与答吧!


hadoop包含两大核心组件 hadoop两大核心技术是什么_hadoop包含两大核心组件_02

1


Q:Hadoop与大数据有什么关系?


A:Hadoop,Spark和Storm是目前最重要的三大分布式计算系统,Hadoop常用于离线的复杂的大数据处理,Spark常用于离线的快速的大数据处理,而Storm常用于在线的实时的大数据处理。


简单说,Hadoop或者说Hadoop生态圈,是为了解决大数据应用场景而出现的,它包含了文件系统、计算框架、调度系统等,Spark是Hadoop生态圈里的一种分布式计算引擎。




hadoop包含两大核心组件 hadoop两大核心技术是什么_hadoop包含两大核心组件_02

2


Q:Hadoop在大数据中的作用?


A:Hadoop大数据处理的相关产品有很多,如Hive、HBase、Spark、Storm、Mahout等等,用户的需求也能够日益得到满足。相比于使用场景已基本固化的关系型数据库,Hadoop功能更加灵活。并且Hadoop是开源项目,有开源社区和大多技术者的支持,开发维护也较为方便。




hadoop包含两大核心组件 hadoop两大核心技术是什么_hadoop包含两大核心组件_02

3


Q:大的文件拆分成很多小的文件后,怎样用Hadoop进行高效的处理这些小文件?以及怎样让各个节点尽可能的负载均衡?


A:Hadoop在处理大规模数据时是很高效的,但是处理大量的小文件时就会因为系统资源开销过大而导致效率较低,针对这样的问题,可以将小文件打包为大文件,例如使用SequcenFile文件格式,例如以文件签名为key,文件内容本身为value写成SequcenFile文件的一条记录,这样多个小文件就可以通过SequcenFile文件格式变为一个大文件,之前的每个小文件都会映射为SequcenFile文件的一条记录。


在Hadoop集群中负载均衡是非常关键的,这种情况的导致往往是因为用户的数据分布的并不均衡,而计算资源槽位数确实均衡分布在每个节点,这样在作业运行时非本地任务会有大量的数据传输,从而导致集群负载不均衡,因此解决不均衡的要点就是将用户的数据分布均衡,可以使用hadoop内置的balancer脚本命令。对于因为资源调度导致的不均衡则需要考虑具体的调度算法和作业分配机制。




hadoop包含两大核心组件 hadoop两大核心技术是什么_hadoop包含两大核心组件_02

4


Q:Hadoop和Spark有哪些不同呢?


A:首先,Hadoop 和Spark 两者都是大数据框架,但解决问题的层面有所不同。Hadoop更多是一个分布式数据基础设施,将巨大的数据集分派到一个由普通计算机组成的集群中的多个节点进行存储,节省了硬件成本 ,而Spark,则是那么一个专门用来对那些分布式存储的大数据进行处理的工具,依赖于分布式数据存储。

其次, Spark要比Hadoop的MapReduce计算速度快很多。Spark,它会在内存中以接近“实时”的时间完成所有的数据分析,从集群中读取数据,完成所有必须的分析处理,将结果写回集群。对于动态数据实时分析而言,Spark要比Hadoop性能较为优越。比如实时的市场活动、网络安全分析等方面的应用。




hadoop包含两大核心组件 hadoop两大核心技术是什么_hadoop包含两大核心组件_02

5


Q:之前碰到一个情况是在reduce阶段老是卡在最后阶段很长时间,在网上查的说是有可能是数据倾斜,这个有什么解决方法吗?


A:reduce分为3个子阶段:shuffle、sort和reduce,如果reduce整个过程耗时较长,建议先看一下监控界面是卡在哪个阶段,如果是卡在shuffle阶段往往是网络阻塞问题,还有就是某reduce数据量太大,也就是你所说的数据倾斜问题,这种问题往往因为某个key的value太多,解决方法是:第一,默认的partiiton可能不适合你的需求,你可以自定义partiiton;第二就是在map端截断,尽量让达到每个reduce端的数据分布均匀。




hadoop包含两大核心组件 hadoop两大核心技术是什么_Hadoop_07