参加郑州大数据培训从入门到精通秒变牛人
先说下我入学千锋郑州大数据培训班的感受吧,刚来的时候还不是很适应这里紧张的节奏,觉得睡眠不够,注意力不集中,精神不振,好在后期通过调整,慢慢适应了这里的节奏,也慢慢的融入到这个集体之中。
最直观的感想可能就是学习氛围非常的好,大家来这里都是为了找到一份满意的工作,虽然千锋大数据培训的教学质量和就业服务非常的到位,但是找工作面试主要还是依靠个人的能力,良好的学习氛围离不开千锋严格的管理制度,只有严格的管理才能打造出精英的学生,才会有高薪的工作。这里的老师可以说非常负责,能够看出是在行业中有着多年经验的专家,试图用最容易理解的方式将知识点传达给学生,课后也留一些作业帮助学生巩固课堂知识,平时也积极辅导学生,虽然大家相处的时间不长,但是感情处的非常好,像朋友一样。多次交谈也让我受益其中,对未来增添了希望。学习是个漫长而需要全力以赴的过程,举例分享下最近的笔记,相信大家会发现,温故确实能知新,学而不厌,定能发现新的知识与框架。
一、MapReduce原理
MapReduce采用“分而治之”的思想,把对大规模数据集的操作,分发给一个主节点管理下的各个分节点共同完成,然后通过整合各个节点的中间结果,得到最终结果。简单地说,MapReduce就是“任务的分解与结果的汇总”。
在Hadoop中,用于执行MapReduce任务的机器角色有两个:一个是JobTracker;另一个是TaskTracker,JobTracker是用于调度工作的,TaskTracker是用于执行工作的。一个Hadoop集群中只有一台JobTracker。
在分布式计算中,MapReduce框架负责处理并行编程中分布式存储、工作调度、负载均衡、容错均衡、容错处理以及网络通信等复杂问题,把处理过程高度抽象为两个函数:map和reduce,map负责把任务分解成多个任务,reduce负责把分解后多任务处理的结果汇总起来。
需要注意的是,用MapReduce来处理的数据集(或任务)必须具备一个特点,那就是待处理的数据集必须可以分解成许多小的数据集,而且每一个小数据集都可以完全并行地进行处理。
二、那么简单描述下流程
总的来说通过:input -> map -> shuffle/sort/merge -> reduce -> output
一个reduce任务: (input -> map -> sort) => (merge -> reduce -> output)
多个reduce任务: (input -> map -> shuffle -> sort) => (merge -> reduce -> output)
注意reduce任务不具备数据本地化的优势,单个reduce任务的输入通常来自所有mapper的输出。 reduce的输出通常存储在HDFS中以实现可靠存储。
这时需要提及combiner的作用和partition的作用。前者是通过reduce来实现,在map端运行计算任务,减少map端的输出数据。输出结果与reduce的输出一致。(集群上的可用带宽限制了MapReduce作业的数量,因此尽量避免map和reduce任务之间的数据传输是有利的)。后者partition的作用在于, partition的默认实现是hashpartition,它是map端将数据按照reduce个数取余,进行分区,不同的reduce来copy自己的数据。partition的作用是将数据分到不同的reduce进行计算,加快计算效果。
三、 如何解决数据倾斜问题
数据倾斜, map /reduce程序执行时,reduce节点大部分执行完毕,但是有一个或者几个reduce节点运行很慢,导致整个程序的处理时间很长,这是因为某一个key的条数比其他key多很多(有时是百倍或者千倍之多),这条key所在的reduce节点所处理的数据量比其他节点就大很多,从而导致某几个节点迟迟运行不完,此称之为数据倾斜。
解决方式通过自己实现partition类,用key和value相加取hash值,如java:
修改前public int getPartition(K key, V value, int numReduceTasks) {
return (key.hashCode() & Integer.MAX_VALUE) % numReduceTasks; }
修改后public int getPartition(K key, V value, int numReduceTasks)
{return ((key.hashCode() + value.hashCode()) & Integer.MAX_VALUE) % numReduceTasks;
以上是我近期学习的一些总结,课程已经过半,收获颇多,倍感压力的同时,也看见了未来的希望和曙光。年轻之所以被认作希望,就在于我们可以创造出无数种可能,或许希望渺茫,再或许跌倒在前行的路上,但是无付出则无回报,无果敢则无未来。年轻就在于拼搏,在于策马扬鞭,矢志不渝向未来!来参加千锋郑州大数据工程师培训让你秒变牛人。
学习大数据开发,可以参考千锋提供的大数据学习路线,该学习路线提供完整的大数据开发知识体系,内容包含Linux&&Hadoop生态体系、大数据计算框架体系、云计算体系、机器学习&&深度学习。根据千锋提供的大数据学习路线图可以让你对学习大数据需要掌握的知识有个清晰的了解,并快速入门大数据开发。
相关推荐HOT
更多>>大数据培训学习什么,你了解多少
大数据培训学习什么?你了解多少?随着互联网技术的不断发展,大数据技术开始走进人们的视野,并成为现阶段吃香的技术能力之一。那么熟练掌握大...详情>>
2023-03-16 15:16:01云计算培训怎么样?可靠吗
云计算培训怎么样?可靠吗?靠不靠谱要看你什么要求了,因人而异。但如果你是想通过培训机构快速掌握好技能,然后进入行业,这个一般都没有问题...详情>>
2023-03-07 14:51:00java编程工资多少?主要学哪些内容
java编程工资多少?主要学哪些内容?java程序员的月收入在6000-20000不等,在一线城市有工作经验的java程序员的薪资收入会高一些,在二三线城市...详情>>
2023-02-24 14:56:07it工程培训机构,云计算难学吗
下面给小伙伴们列举一个学习大纲参考: 第一阶段: 零基础入门 1、计算机基础 2、Raid设置与网络服务基础 3、网络基础 第...详情>>
2022-12-01 17:48:04