五一假期:在写点内容,也算是总结。上面咱们会了基本的编程,咱们须要对hadoop有一个更深的理解: hadoop分为hadoop1.X、hadoop2.X,而且还有hadoop生态系统。这里只能慢慢介绍了。一口也吃不成胖子。 ![]() hadoop 1.x分为 mapreduce与hdfs 其中mapreduce是不少人都须要迈过去的槛,它比较难以理解,咱们有时候即便写出了mapreduce程序,可是仍是摸不着头脑。 咱们不知道key表明什么意思,咱们不知道为何会处理这个value。map有key、value,输出了key、value,有时候还会合并,reduce处理完毕以后又输出了key、value。这让咱们产生了困惑,分不清。 mapreduce是一种编程模型,那么它能干什么,对我有什么用。它的原理是什么,为何咱们编写了map函数,reduce函数就能够在多台机器上运行。 这些问题或许都给初学者带来了困扰。是的,这些问题一样也困扰了我,这里写出来分享给你们,避免走一样的弯路。 面对mapreduce,有一篇文章,这里总结的很好,包括:该如何入门,该如何理解mapreduce,该如何练习mapreduce,该如何运用mapreduce。这里面介绍的很全。 mapreduce学习指导及疑难解惑汇总,内容包括: --------------------------------------------------------------------------------------------------- 1.思想起源: 咱们在学习mapreduce,首先咱们从思想上来认识。其实任何的奇思妙想,抽象的,好的想法、都来源于咱们生活,而咱们也更容易理解咱们身边所发生事情。因此下面一篇即是从生活的角度,来让咱们理解,什么是mapreduce。 Hadoop简介(1):什么是Map/Reduce 2.设计思路 咱们从思想上认识了mapreduce,那么mapreduce具体是什么,咱们须要看得见,摸得着。咱们该如何实现这个思想,咱们该如何设计mapreduce。那么如今来讲说它的设计思路。 设计思路如何表示:ok下面的帖子,是经过一张图来表达的。 Mapreduce 整个工做机制图 mapreduce是hadoop的核心,正由于mapreduce,因此才产生了分布式。因此咱们可能经过一张图,了解的不够清楚和详细。咱们还须要了解里面的原理: MapReduce工做原理讲解 ![]() 3.模型实现 经过上面咱们可能有了本身的一些见解。可是咱们可能仍是认识不太清楚。那么我们在来看看编程模型,来进一步的了解。 MapReduce 编程模型概述 mapreduce编程模型 4.产生问题 咱们看了上面的文章,这时候会有一些名词、概念进入咱们的脑海。 除了map,reduce,task,job,shuffe,partition,combiner这些把咱们给弄糊涂了。 咱们产生问题以下: map的个数由谁来决定,如何计算? reduce个数由谁来决定,如何计算? 简单来说map由split来决定,reduce则是由partition来决定。 详细能够查看 如何肯定 Hadoop map和reduce的个数--map和reduce数量之间的关系是什么? --------------------------------------------------------------------------------------------------- shuffle是什么? partition是什么? combiner是什麽? 他们三者之间的关系是什么? mapreduce是hadoop核心,而shuffle是mapreduce的核心,shuffle我的认为它是一个动态的过程,包含了Combiner,merge等的过程,那么这里由于讲到shuffle,不少人都讲的全面,Combiner,merge,sort几乎全都讲了,这样讲是没有错误的,可是容易给初学者形成一个假象,那就是这些过程必须都是包含的,其实这些是根据我的的需求来肯定的。 完全了解mapreduce核心Shuffle--解惑各类mapreduce问题 对于Combiner的疑惑能够查看 Mapper过程当中Combiner的做用 解决了下面问题
为何须要在Mapper端进行归约处理?
为何能够在Mapper端进行归约处理?
既然在Mapper端能够进行归约处理,为何在Reducer端还要处理?
上面三个问题,能够查看帖子
一样关于上面的问题能够参考 关于Mapper、Reducer的我的总结 5.编程实现 mapreduce是一种编程模型,咱们认识了解,下面就须要编程实现了。那么mapreduce都能作些什么?下面咱们能够看看 MapReduce初级案例(1):使用MapReduce去重 MapReduce初级案例(2):使用MapReduce数据排序 MapReduce初级案例(3):使用MapReduce实现平均成绩 经过上面三个例子,也是咱们验证前面所理解的内容。 一样能够参考下面内容 Hadoop mapper类的阅读 Hadoop reducer类的阅读 Mapreduce shuffle和排序 hadoop中mapreduce包及制做文档指导 Hadoop开发环境搭建及map-reduce开发实例讲解视频下载 如何进行Hadoop二次开发指导视频下载 6.mapreduce应用 上面是一些基本的知识,那么咱们熟悉以后,其实有些地方,能够应用在其它方面。下面能够参考: 淘宝之HBase MapReduce实例分析 MapReduce在压力测试中的应用 --------------------------------------------------------------------------------------------------- 这里在增长几篇: 深度了解mapreduce---MapReduce源码分析总结 此篇文章能够解决不少初学者的困惑,由浅入深讲的很不错。 新手指导:mapreduce不一样类型的数据分到同一个分区是否会影响输出结果 因为在咱们刚接触知识,会让咱们形成误解,这里区分开了,分区与输出结果之间的关系。 新手指导:MapReduce中的分区方法Partitioner 这里讲解了分区是由谁来决定的,咱们该如何分区 新手指导:mapreduce的key与value输入输出参数为何会让你迷惑 对于新手这篇文章阐述了key,value为何会让咱们迷惑。 新手指导:让你真正了解mapreduce中map函数与reduce函数功能及key与value的含义 词牌你文章一样,从另外角度讲解了key,value,经过上面两篇或许你已经认识了key与value。 经过Wordcount实例解析map函数及reduce函数执行过程 不少新手在学习的过程当中找不到标准,不知道mapreduce程序,每一个过程,每行代码表明什么意思,这里给你们提供能够参考一下。 总结:若是已经把上面的文章都看过了,那么你对mapreduce若是说还不透彻,可是已经感受对mapreduce会有本身的见解了。而且产生的各类问题,都有了本身的答案。 --------------------------------------------------------------------------------------------------- mapreduce熟悉了,还有一些问题困扰着初学者,虽然有了Java基础,可是咱们须要搭建开发环境,该如何搭建开发环境: hadoop开发方式总结及操做指导 开发方式有两种,可是其实本质是同样的,第一种方式只能操做hdfs,对于操做mapreduce,可能会遇到权限问题。因此能够采用第二种方式。也就是下面这篇所介绍的开发方式 新手指导:Windows上使用Eclipse远程链接Hadoop进行程序开发 --------------------------------------------------------------------------------------------------- 由于在操做mapredcue过程当中伴随着操做hdfs,就像咱们传统开发,编程是离不开数据库同样。hdfs能够理解为传统编程的数据库,可是其实他不是,真正的数据库是hadoop data base,也就是hbase。好了下面,咱们开始讲hdfs: 咱们该如何学习hdfs: 什么是HDFS及HDFS架构设计 这里给咱们一个初步的概念 HDFS体系结构简介及优缺点 初步了解以后,咱们就须要了解它的组成,为了更好的使用它,咱们就须要了解他的优势与缺点。 HDFS能够理解为数据库,由于咱们既能够经过sql直接操做数据库,亦能够经过编程接口,经过编程语言来操做。那么HDFS则是能够经过shell来操做。 Hadoop Shell命令字典(可收藏) Hadoop框架之HDFS的shell操做 HDFS Shell基本操做HDFS命令行接口 ,一样hsfs的编程接口能够经过下面来了解: HDFS的Java访问接口 Java建立hdfs文件实例 Hadoop培训笔记之HDFS编程 为了节省空间,咱们还能够对hdfs数据进行压缩: HDFS支持数据压缩的几种方法探讨 上面能够说是咱们已经有了必定的了解,可是有的同窗,想系统的了解,这里给你们提供一些资料。 HDFS必读书籍:HDFS-Hadoop分布式文件系统深度实践 Hadoop技术内幕 深刻解析HADOOP COMMON和HDFS架构设计与实现原理大全1-9章 深刻浅出Hadoop实战开发(HDFS实战图片、MapReduce、HBase实战微博、Hive应用) ---------------------------------------------------------------------------------------------- 咱们在学习和使用的过程当中,会遇到不少的错误,这里也给你们提供几篇帖子 hadoop常见错误汇总及解决办法一 Hadoop常见错误问题及解决方法总结二 hadoop常见错误总结三 ----------------------------------------------------------------------------------------------------------------- 至此hadoop1.x已经完毕了(后面有时间继续补充) hadoop生态系统 hadoop生态系统内容仍是比较多的,可是最经常使用的是hive,hbase,因此这里对他们也总结一下: 1.hive 首先咱们须要hive是什么? 让你真正明白什么是hive 上面讲的很明白 1.hive是一个数据仓库 2.hive基于hadoop。 总结为一句话:hive是基于hadoop的数据仓库。 hive明白以后,如同咱们明白了关系数据库是什么了,那么咱们该如何使用操做它: 首先咱们要安装,安装分为不少种分为单机遇集群安装。 可参考下面内容:(正在更新) Hive安装指导 HIVE彻底分布式集群安装过程(元数据库: MySQL) 上面须要说明的是hive默认数据库并非mysql,可是由于默认数据库存在局限,因此最好使用mysql。 安装完毕,那么咱们就须要练练手了,能够根据下面内容 hive基本操做 会了基本的操做还不够,如同咱们须要了解sql语法同样,咱们须要了解hive各类语法 Hadoop Hive sql语法详解1-认识hive及DDL操做 Hadoop Hive sql语法详解2-修改表结构 Hadoop Hive sql语法详解3--DML 操做:元数据存储 Hadoop Hive sql语法详解4--DQL 操做:数据查询SQL Hadoop Hive sql语法详解5--HiveQL与SQL区别 这里面包含了加载数据、查询数据等各类操做。 上面是一些基本的操做,下面还有一些负责一些操做如: Hive快捷查询:不启用Mapreduce job启用Fetch task三种方式介绍 Hive如何执行文件中的sql语句 Hive四种数据导入方式介绍 Hive中的三种不一样的数据导出方式介绍 Hive如何建立索引 上面基本属于实战类型,咱们还须要高级进阶,咱们须要了解里面的原理,咱们须要知道遇到问题,该如何解决。 原理: 全面了解hive Hive体系结构介绍 hive实现原理 hive内部表与外部表区别详细介绍 HIVE中Join的专题---Join详解 让你完全明白hive数据存储各类模式 Hive配置文件中配置项的含义详解(收藏版) HIVE与传统数据库对比 hive详解 原理大体懂了,基本操做会了,咱们可能又有了更进一步的认识,那么hive如何结合hadoop,hbase发挥做用,该如何发挥它的实际意义,被咱们所用。 首先咱们使用hive的时候,不少都与hbase相结合,这样发挥hive的长处,在各类查询数据方面相比hbase使用更方便。 hive为何与hbase整合 Hive与HBase整合完整指导 hadoop、hbase、hive版本对应关系 上面是与hbase结合使用,那么咱们该如何与编程语言向结合,能够参考下面内容: 经过JDBC驱动链接Hive操做实例 Hive:用Java代码经过JDBC链接Hiveserver介绍 Hive:用Java代码经过JDBC链接Hiveserver介绍 从 MapReduce 到 Hive 实战分析 hive实战 上面或许你已经对hive有所了解,下面的面试及遇到的问题,你们可参考 hive找不到建立的表了 Shark对Hive的支持与不支持的语法介绍 面试题:分别使用Hadoop MapReduce、hive统计手机流量 hive面试题目:表大概有2T左右,对表数据转换 hive如何经过设置日志定位错误 hive在腾讯分布式数据库时间分享 (暂时到此,之后更新) ![]() 若是到了这个地方。后面的内容你能够在看看视频。 hadoop新手入门视频 hadoop10G云计算和实战hadoop视频教程外加炼术成金和云计算视频(免费分享) hadoop搭建集群线路指导 经过以上视频,搭建环境和开发环境都没有问题。之后有时间我们能够再次展开和讨论。 相关文章推荐: 零基础学习hadoop到上手工做线路指导(编程篇) http://www.aboutyun.com/thread-8329-1-1.html 零基础学习hadoop生态系统到上手工做线路指导(HBASE篇) http://www.aboutyun.com/thread-8391-1-1.html |