Hadoop上机做业html
http://hadoop.apache.org/java
Apache软件基金会(也就是Apache Software Foundation,简称为ASF),是专门为支持开源软件项目而办的一个非盈利性组织。在它所支持的Apache项目与子项目中,所发行的软件产品都遵循Apache许可证(Apache License)。node
Apache Hadoop是一个软件平台,可让你很容易地开发和运行处理海量数据的应用。Hadoop是MapReduce的开源实现,它使用了Hadoop分布式文件系统(HDFS)。MapReduce将应用切分为许多小任务块去执行。出于保证可靠性的考虑,HDFS会为数据块建立多个副本,并放置在群的计算节点中,MapReduce就在数据副本存放的地方进行处理linux
对于一个大文件,hadoop把它切割成一个个大小为64Mblock。这些block是以普通文件的形式存储在各个节点上的。默认状况下,每一个block都会有3个副本。经过此种方式,来达到数据安全。就算一台机器down掉,系统可以检测,自动选择一个新的节点复制一份。c++
在hadoop中,有一个master node和多个data node。客户端执行查询之类的操做,只需与master node(也就是平时所说的元数据服务器)交互,得到须要的文件操做信息,而后与data node通讯,进行实际数据的传输。程序员
master(好比down掉)在启动时,经过从新执行原先的操做来构建文件系统的结构树。因为结构树是在内存中直接存在的,所以查询操做效率很高。apache
简言之,从各类各样类型的数据中,快速得到有价值信息的能力,就是大数据技术。明白这一点相当重要,也正是这一点促使该技术具有走向众多企业的潜力。编程
大数据的4个“V”,或者说特色有四个层面:第一,数据体量巨大。从TB级别,跃升到PB级别;第二,数据类型繁多。前文提到的网络日志、视频、图片、地理位置信息等等。第三,价值密度低。以视频为例,连续不间断监控过程当中,可能有用的数据仅仅有一两秒。第四,处理速度快。1秒定律。最后这一点也是和传统的数据挖掘技术有着本质的不一样。业界将其概括为4个“V”——Volume,Variety,Value,Velocity。安全
物联网、云计算、移动互联网、车联网、手机、平板电脑、PC以及遍及地球各个角落的各类各样的传感器,无一不是数据来源或者承载的方式服务器
分布式文件系统(Distributed File System)是指文件系统管理的物理存储资源不必定直接链接在本地节点上,而是经过计算机网络与节点相连。分布式文件系统的设计基于客户机/服务器模式。一个典型的网络可能包括多个供多用户访问的服务器。另外,对等特性容许一些系统扮演客户机和服务器的双重角色。例如,用户能够“发表”一个容许其余客户机访问的目录,一旦被访问,这个目录对客户机来讲就象使用本地驱动器同样,下面是三个基本的分布式文件系统。
HDFS 特色:HDFS支持传统的层次型文件组织,与大多数其余文件系统相似,用户能够建立目录,并在其间建立、删除、移动和重命名文件。HDFS不支持user quotas和访问权限,也不支持连接(link),不过当前的架构并不排除实现这些特性。Namenode维护文件系统的namespace,任何对文件系统namespace和文件属性的修改都将被Namenode记录下来。应用能够设置HDFS保存的文件的副本数目,文件副本的数目称为文件的 replication因子,这个信息也是由Namenode保存。
HDFS采用master/slave架构。一个HDFS集群是有一个Namenode和必定数目的Datanode组成。Namenode是一个中心服务器,负责管理文件系统的namespace和客户端对文件的访问。Datanode在集群中通常是一个节点一个,负责管理节点上它们附带的存储。在内部,一个文件其实分红一个或多个block,这些block存储在Datanode集合里。Namenode执行文件系统的namespace操做,例如打开、关闭、重命名文件和目录,同时决定block到具体Datanode节点的映射。Datanode在Namenode的指挥下进行block的建立、删除和复制。Namenode和Datanode都是设计成能够跑在普通的廉价的运行linux的机器上。HDFS采用java语言开发,所以能够部署在很大范围的机器上。一个典型的部署场景是一台机器跑一个单独的Namenode节点,集群中的其余机器各跑一个Datanode实例。这个架构并不排除一台机器上跑多个Datanode,不过这比较少见。
大中型企业
主要解决了海量数据的存储、分析和学习问题,由于随着数据的爆炸式增加,一味地靠硬件提升数据处理效率及增长存储量,不只成本高,处理高维数据的效率也不会提升不少,遇到了瓶颈了,hadoop的搭建只须要普通的pc机,它的hdfs提供了分布式文件系统,mapreduce是一个并行编程模型,为程序员提供了编程接口,二者都屏蔽了分布式及并行底层的细节问题,用户使用起来简单方便。
http://wenku.baidu.com/view/ee15650abb68a98271fefaef.html
Java c++
HDFS是Google File System(GFS)的开源实现。
MapReduce是Google MapReduce的开源实现。
HBase是Google BigTable的开源实现。
Hadoop主要包括HDFS(分布式文件系统,对应GFS),MapReduce(分布式计算系统)和HBase(分布式查询系统,对应Bigtable),其中以HDFS和MapReduce较为成熟。另外,Hadoop还包括一些辅助系统,如分布式锁服务ZooKeeper,对应Google Chubby。这一套系统的设计目标以下: 1. 简化运维:在大规模集群中,机器宕机,网络异常,磁盘错都属于正常现象,所以错误检查,自动恢复是核心架构目标。Google的解决方案就已经作到了机器随时加入/离开集群。 2. 高吞吐量:高吞吐量和低延迟是两个矛盾的目标,Hadoop优先追求高吞吐量,设计和实现中采用了小操做合并,基于操做日志的更新等提升吞吐量的技术。 3. 节省机器成本:Hadoop鼓励部署时利用大容量的廉价机器(性价比高可是机器故障几率大),数据的存储和服务也分为HDFS和HBase两个层次,从而最大限制地利用机器资源。 4. 采用单Master的设计:单Master的设计极大地简化了系统的设计和实现,由此带来了机器规模限制和单点失效问题。对于机器规模问题,因为Hadoop是数据/计算密集型系统,而不是元数据密集型系统,单Master设计的单个集群能够支持成千上万台机器,对于如今的几乎全部应用都不成问题;而单点失效问题能够经过分布式锁服务或其它机制有效地解决。