Hadoop
关注Hadoop的发展,学习Hadoop理论和源代码,并致力于将Hadoop应用在大数据领域,提供有效的数据分析方案
优惠券已抵扣
余额抵扣
还需支付
¥9.90
¥99.00
购买须知?
本专栏为图文内容,最终完结不会低于15篇文章。
订阅专栏,享有专栏所有文章阅读权限。
本专栏为虚拟商品,基于网络商品和虚拟商品的性质和特征,专栏一经购买无正当理由不予退款,不支持升级,敬请谅解。
skyWalker_ONLY
专注于HadoopHiveHBase等大数据生态圈,对机器学习算法具有极大兴趣
展开
-
Hadoop-2.4.1学习之InputFormat及源代码分析
本篇文章讲述了InputFormat及其子类,并结合源代码详细分析了FileInputFormat如何读取InputSplit及处理行跨越两个InputSplit的问题原创 2015-01-13 16:57:46 · 5002 阅读 · 0 评论 -
Hadoop-2.4.1学习之FileSystem及实战
本篇文章学习了Hadoop的FileSystem及其子类,详细介绍了get和newInstance的区别并介绍了若干API方法,最后给出了一个简单的实例原创 2014-12-30 13:40:29 · 8790 阅读 · 3 评论 -
Hadoop-2.4.1学习之Writable及其实现
本文学习了Writable及WritableComparable接口,并结合IntWritable和Text类介绍了具体的实现,最后给出了一个自定义的WritableComparable类原创 2014-12-23 09:49:18 · 3770 阅读 · 0 评论 -
Hadoop-2.4.1学习之RawComparator及其实现
本篇文章结合源代码学习了RawComparator接口及其实现,并分析了不同实现的区别原创 2014-12-19 14:59:27 · 4432 阅读 · 1 评论 -
Hadoop-2.4.1学习之Map任务源码分析(下)
对Map任务的SORT阶段源代码进行了学习和分析原创 2014-12-16 14:13:35 · 2779 阅读 · 0 评论 -
Hadoop-2.4.1学习之Map任务源码分析(上)
通过源代码分析了Map任务的map阶段原创 2014-12-10 14:45:21 · 3171 阅读 · 4 评论 -
Hadoop-2.4.1学习之高可用ResourceManager
本文介绍了ResourceManager的HA特性,并详细描述了如何配置RM的HA及自动故障转移原创 2014-12-04 16:33:15 · 9594 阅读 · 0 评论 -
Hadoop-2.4.1学习之ResourceManager重启
本文翻译自hadoop官网的ResourceManager Restart一文,主要讲解了ResourceManager在遇到故障重启后而不影响重启前的应用程序的特性,以及如何配置ResourceManager重启翻译 2014-11-27 14:38:29 · 9773 阅读 · 0 评论 -
Hadoop-2.4.1学习之容量调度器
本篇文章学习了hadoop中容量调度器的特性,并详细描述了配置参数原创 2014-11-21 17:00:34 · 7042 阅读 · 0 评论 -
Hadoop-2.4.1学习之Streaming编程
本篇文章学习了如何编写hadoop streaming程序,重点讲述了工作原理及用到的各种参数原创 2014-11-17 11:11:24 · 4413 阅读 · 1 评论 -
Hadoop-2.4.1学习之如何确定Mapper数量
本篇文章通过源代码分析了在输入格式为TextInputFormat的情况下,hadoop-2.4.1如何确定Mapper任务的数量原创 2014-11-11 16:23:34 · 7441 阅读 · 2 评论 -
Hadoop-2.4.1学习之Mapper和Reducer
Hadoop-2.4.1中MapReduce作业的Mapper和Reducer综述原创 2014-11-05 11:30:45 · 11550 阅读 · 9 评论 -
Hadoop-2.4.1学习之HDFS文件权限和ACL
之前在论坛看到一个关于HDFS权限的问题,当时无法回答该问题。无法回答并不意味着对HDFS权限一无所知,而是不能准确完整的阐述HDFS权限,因此决定系统地学习HDFS文件权限。HDFS的文件和目录权限模型共享了POSIX(Portable Operating System Interface,可移植操作系统接口)模型的很多部分,比如每个文件和目录与一个拥有者和组相关联,文件或者目录对于拥有者、组内原创 2014-11-02 14:40:02 · 17509 阅读 · 4 评论 -
Hadoop-2.4.1学习之edits和fsimage查看器
在hadoop中edits和fsimage是两个至关重要的文件,其中edits负责保存自最新检查点后命名空间的变化,起着日志的作用,而fsimage则保存了最新的检查点信息。这个两个文件中的内容使用普通文本编辑器是无法直接查看的,幸运的是hadoop为此准备了专门的工具用于查看文件的内容,这些工具分别为oev和oiv,可以使用hdfs调用执行。原创 2014-10-31 10:31:03 · 7275 阅读 · 1 评论 -
Hadoop-1.2.1学习之Job创建和提交源代码分析
在Hadoop中,MapReduce的Java作业通常由编写Mapper和Reducer开始,接着创建Job对象,然后使用该对象的set方法设置Mapper和Reducer以及诸如输入输出等参数,最后调用Job对象的waitForCompletion(true)方法提交作业并等待作业的完成。尽管使用了寥寥数语就描述了作业的创建和提交,但实际情况要复杂的多,本篇文章将通过分析源代码来深入学习该过程。原创 2014-10-27 16:05:50 · 3000 阅读 · 1 评论 -
Hadoop-2.4.1学习之HDFS快照
HDFS快照是文件系统的只读的实时的拷贝,可以是文件系统的一部分或者整个文件系统。快照的一些通用场景是数据备份,对用户错误的保护和灾难恢复。HDFS的快照实现是高效的:l 快照的创建时瞬间完成的,排除查找inode的时间,需要花费O(1),即常数时间。l 只有执行与快照相关的修改时才需要额外的内存,内存开销为O(M),M为修改的文件或者目录的数量。l DataNodes中的块不会原创 2014-10-23 14:03:56 · 5073 阅读 · 1 评论 -
Hadoop-2.4.1学习之ViewFs
视图文件系统(View File System ,ViewFs)提供了管理多个Hadoop文件系统命名空间的方式,该系统在HDFS联盟的集群中有多个NameNode(因此有多个命名空间)是特别有用。ViewFs与某些Linux或Unix系统的客户端挂载表类似,可以被用于创建个性化的命名空间视图和整个集群共同的视图。本篇文章基于拥有几个集群,集群互相联合形成多个命名空间的Hadoop系统,也学习了在原创 2014-10-22 11:37:14 · 9221 阅读 · 2 评论 -
Hadoop-2.4.1学习之QJM HA的自动故障转移
前面学习了使用命令hdfs haadmin -failover手动进行故障转移,在该模式下,即使现役NameNode已经失效,系统也不会自动从现役NameNode转移到待机NameNode,下面学习如何配置部署HA自动进行故障转移。自动故障转移为HDFS部署增加了两个新组件:ZooKeeper和ZKFailoverController(ZKFC)进程。ZooKeeper是维护少量协调数据,通知客户原创 2014-10-20 15:11:43 · 7574 阅读 · 2 评论 -
Hadoop-2.4.1学习之使用Quorum Journal Manager的HDFS的高可用性(三)
在学习了如何配置HA后,接下来是启动和管理HA。要启动HA集群,首先要在所有运行JournalNode的主机上启动JournalNodes守护进程,可以在每台主机上执行命令hdfs journalnode启动journalnode守护进程。在journalnode守护进程启动完成之后,必须首先同步两个 NameNode硬盘上的元数据,具体如下:l 如果正在搭建全新的HDFS集群,应该首先在其原创 2014-10-17 21:33:23 · 3446 阅读 · 1 评论 -
Hadoop-2.4.1学习之使用Quorum Journal Manager的HDFS的高可用性(二)
在了解了HA的特性和架构后,接下来学习如何配置管理HA,在学习与配置HA有关的参数之前,先明确部署HA所需要的主机数量。由HA的架构可知,存在两个NameNode主机,一个为现役NameNode主机,一个为待机NameNode主机,二者的硬件配置应该相同,同时还要有运行JournalNodes的主机。由于JournalNode守护进程是相对轻量级的,那么这些守护进程可与其它Hadoop守护进程,如原创 2014-10-14 16:06:55 · 3653 阅读 · 3 评论 -
Hadoop-2.4.1学习之配置管理HDFS联盟
Hadoop-1.x版本中的HDFS架构在整个集群中只允许一个命名空间,由一个NameNode管理整个命名空间,Hadoop-2.x版本中的HDFS联盟通过支持多个NameNode和命名空间解决了之前架构的局限性。HDFS联盟的配置管理是向后兼容的,允许现存的单节点NameNode配置在不需要任何修改的情况下工作正常。新的配置管理允许集群中的所有节点使用相同的配置而不需要根据节点的不同类型部署不同原创 2014-10-13 16:53:23 · 4508 阅读 · 0 评论 -
Hadoop-2.4.1学习之使用Quorum Journal Manager的HDFS的高可用性(一)
在Hadoop-2.x版本之前,HDFS集群中的NameNode是单点故障的,即整个集群中只存在一个NameNode,虽然存在SecondaryNameNode,但由于二者关于命名空间的数据有可能不一致,比如NameNode在两次检查点间隔之间出现问题,这势必会导致部分数据的丢失。如果NameNode所在的主机或者namenode进程不可用,整个集群直到NameNode重启或者转移到Seconda原创 2014-10-11 16:16:53 · 2381 阅读 · 0 评论 -
Hadoop-2.4.1学习之Hadoop命令
在Hadoop-1.x版本中主要使用hadoop脚本执行各种命令,包括运行jar文件(jar),运行文件系统客户端(fs),运行HDFS管理客户端(dfsadmin)等,但Hadoop-2.x将hadoop脚本拆分为hadoop、hdfs、mapred几个脚本,并新增了yarn脚本用于执行与yarn有关的命令。在命令行直接执行上述脚本都会输出该脚本的使用方法,比如hadoop。其中--config原创 2014-10-09 15:14:39 · 2529 阅读 · 0 评论 -
Hadoop-2.4.1学习之创建fsimage和edits源码分析
在Hadoop中fsimage保存最新的检查点信息,edits保存自最新检查点后的命名空间的变化。在分析hdfs namenode–format的源代码时,已经明确了该过程根据配置文件的信息创建fsimage和edits文件,这篇文章具体分析一下创建fsimage和edits文件的源代码。原创 2014-09-24 15:15:37 · 3168 阅读 · 0 评论 -
Hadoop-2.4.1学习之NameNode -format源码分析
Hadoop-2.4.1 namenode格式化的源代码分析原创 2014-09-16 16:36:10 · 6087 阅读 · 0 评论 -
Hadoop-2.4.1学习之SecondaryNameNode、CheckpointNode、BackupNode
在Hadoop-2.x版本之前只存在SecondaryNameNode,没有CheckpointNode、BackupNode的概念,在2.x版本中引入了后两者,增强了对NameNode的同步和备份。现在就学习一下2.x版本中的SecondaryNameNode、CheckpointNode、BackupNode,在开始之前先了解一下NameNode中的两个重要文件fsimage和edits以及N原创 2014-09-07 16:23:55 · 3589 阅读 · 1 评论 -
Hadoop-2.4.1学习之配置管理Hadoop
Hadoop-2.X较Hadoop-1.X有了很大的变化,比如YARN将JobTracker的两个主要功能资源管理和作业调度监控分开为独立的后台进程,配置文件及参数也有了很大变化,目录结构的调整等。另外在Hadoop-2.X版本中,通常专门指定一台主机为NameNode,另一台主机做为ResourceManager,这两台主机为masters,集群中剩余的主机既做为DataNode也做为NodeM原创 2014-08-26 16:51:02 · 4695 阅读 · 0 评论 -
Hadoop学习之传递命令行参数给Mapper和Reducer
讲述了如何将自定义参数传递给特定的Job,并分析了该方法之所以可行的Hadoop源代码原创 2014-08-18 15:38:24 · 11124 阅读 · 0 评论 -
Hadoop-2.4.1学习之以伪分布模式部署Hadoop
Hadoop-2.x版本与Hadoop-1.x除了整体架构上的变化之外,比如HDFS联盟,YARN等,目录结构、配置管理及执行脚本都有了很大的改变,具体哪些地方做了改变还需要通过持续地学习来掌握。在此之前,先学习如何以单机模式和伪分布模式运行Hadoop。单机模式默认情况下,Hadoop作为单个Java进程以非分布式模式运行,该模式非常适于用作Debugg。下面展示了Hadoop-2.4.原创 2014-07-17 14:00:55 · 6005 阅读 · 4 评论 -
Hadoop学习之配置Eclipse远程调试Hadoop
在构建完成Hadoop项目后,接下来就应该跟踪Hadoop的运行情况,比如在命令行执行hadoop namenode–format时执行了Hadoop的那些代码。当然也可以直接通过阅读源代码的方式来做到这一点,但跟踪代码的执行情况更加直观,更容易理解。在动手配置Eclipse调试Hadoop之前,先大概学习一下JPDA(Java Platform Debugger Architecture,J原创 2014-05-11 12:48:47 · 7672 阅读 · 2 评论 -
Hadoop学习之Eclipse构建Hadoop项目
之前根据Hadoop官方文档对HDFS、MapReduce的架构、配置管理等进行了学习,但某些地方官方文档讲解的比较模糊。做过开发的人都能够体会,官方文档有些类似业务规则或者要求,而真正的细节还是需要深入研究源代码的。基于以上的原因,决定深入学习Hadoop的源代码,虽然现在已经出现Hadoop-2.x的文档版本,但还是决定学习Hadoop-1.x的源码,而要想研究源代码最好的方法还是先构建Had原创 2014-05-07 16:34:10 · 6078 阅读 · 0 评论 -
Hadoop学习之以伪分布模式部署Hadoop及常见问题
WARNorg.apache.hadoop.hdfs.server.datanode.DataNode: Invalid directory indfs.data.dir: Incorrect permission for /home/hadoop/testData, expected:rwxr-xr-x, while actual: rwxrwxr-x2013-12-1314:57:36,1原创 2013-12-16 20:12:43 · 5346 阅读 · 0 评论 -
Hadoop学习之修改Eclipse插件
之前手工成功编译Hadoop-1.2.1的Eclipse插件后,发现了若干问题,比如生成的Mapper和Reducer还在使用Hadoop-0.x版本的一些类,为了解决这些问题并使插件能够适应Hadoop-1.2.1的变化,决定修改插件的源代码后再重新编译。首先需要确定要修改哪些类,在仔细观察了hadoop-1.2.1/src/contrib/eclipse-plugin/src/java/o原创 2014-04-30 19:48:43 · 2960 阅读 · 0 评论 -
Hadoop学习之编译eclipse插件
最近准备开始学习Hadoop1.2.1的源代码,感觉最好的方法还是可以在运行Hadoop及hadoop作业时跟踪调试代码的实际执行情况。由于选择的IDE为eclipse,所以准备编译一下hadoop的eclipse插件,下面就直接进入正题。Hadoop的eclipse插件源代码位于hadoop-1.2.1/src/contrib/eclipse-plugin/中,直接进入该目录,在不做任何修改的情原创 2014-04-20 18:03:25 · 5692 阅读 · 0 评论 -
Hadoop-2.2.0学习之一Hadoop-2.2.0变化简介
Hadoop-2.2.0在Hadoop-1.x的基础上进行了重大改进,主要体现在HDFS和MapReduce上。下面大体介绍HDFS和MapReduce改进的地方。首先是HDFS联合。众所周知,在Hadoop-1.x版本中,集群中只有一个NameNode节点,一旦该节点失效就不能自动切换到备用节点,这也是Hadoop-1.x被人诟病的地方之一。为了水平的扩展NameNode服务,在2.x版原创 2014-01-06 13:00:05 · 3879 阅读 · 2 评论 -
Hadoop-2.2.0学习之二HDFS联盟
在学习Hadoop-2.x版本中的HDFS之前先看一下目前普遍使用中的Hadoop-1.x版本的HDFS结构,有助于更好地理解2.x版本中HDFS的变化所带来的好处。先看看2.x版本之前的HDFS结构图,如下所示。从上面的结构可以看出,HDFS主要包括两层:Namespace(命名空间)和块存储(BlockStorage)。命名空间由目录、文件和块组成,支持文件系统相关的所有命名空间操原创 2014-01-08 10:10:39 · 4400 阅读 · 0 评论 -
Hadoop-2.2.0学习之三YARN简介
MapReduce在hadoop-0.23版本中进行了完全的检查修改,并发展为了现在称之为的MapReduce2.0(MRv2)或者YARN。YARN的基本想法是将JobTracker的两个主要功能资源管理和作业调度监控分开为独立的后台进程,目标是拥有一个全局ResourceManager (RM)和每个应用程序一个的ApplicationMaster (AM)。一个应用程序或者是从经典MapRe原创 2014-01-13 10:22:47 · 3965 阅读 · 0 评论 -
Hadoop学习之HDFS架构(一)
HDFS的全称是Hadoop Distributed File System(Hadoop分布式文件系统),是受到Google的GFS(Google文件系统)启发而设计开发出来的运行在商用主机上的分布式文件系统。最初HDFS是作为Nutch网络搜索引擎项目的基础结构发展的(在Nutch2.x版本以前,搜索到的数据存储在HDFS上,2.x版本中可以将数据存储在诸如HBase等NoSQL中),现在是H原创 2014-02-05 16:17:42 · 3886 阅读 · 0 评论 -
Hadoop学习之HDFS架构(二)
HDFS可以跨越大集群中的机器可靠地存储非常大的文件,将文件存储为一系列的块,除了最后一个块外,所有的块的大小都是相同的。当然若文件大小正好为块大小的倍数则所有块的大小相同。为了容错的目的,一个文件的块会被复制成若干份,块大小和复制因子是可配置的。应用程序可以指定文件的副本数量,复制因子可以在文件创建时指定,也可以以后修改。HDFS中的文件是一次性写入的,在任何时候都是严格一次性写入的。N原创 2014-02-18 15:50:30 · 4007 阅读 · 3 评论 -
Hadoop学习之HDFS架构(三)
现在看看HDFS的通信协议,HDFS的所有通信协议是在TCP/IP协议之上的。客户端连接到NameNode上的一个可配置的TCP端口,按照ClientProtocol协议与NameNode回话,DataNode与NameNode按照DataNodeProtocol协议进行会话。远程过程调用(RPC)包装了ClientProtocol和DataNodeProtocol。NameNode从来不初始化任原创 2014-02-20 14:25:47 · 3960 阅读 · 2 评论