Hadoop介绍
大数据解决四大核心问题:
1、数据的存储(Big Data Storage),海量数据需要处理和分析,但前提是要进行有效的存储。Hadoop的诞生突破了传统数据文件系统的单机模式。HDFS使得数据可以跨越不同的机器与设备,并且用一个路径去管理不同平台上的数据。
2、数据的计算(Data Calculation),在数据有效存储的基础上,对数据的统计和分析本质上就是数据的计算。在大数据领域常见的计算工具有MapReduce、Spark等。
3、数据的查询(Consensus Data),对大数据进行有效管理的核心指标是数据查询技术。其中NoSQL (Not Only SQL)应用较为广泛,能较有效解决数据的随机查询,其中就主要包括Hbase等。从本质而言,依旧是Hadoop模式下的数据查询。
4、数据的挖掘(Data mining),Hive数据仓库为数据的挖掘提供了基础,通过分类、预测、相关性分析来建立模型进行模式识别、机器学习从而构建专家系统。
Hadoop之父
他是Lucene、Nutch 、Hadoop等项目的发起人。是他,把高深莫测的搜索技术形成产品,贡献给普通大众;还是他,打造了在云计算和大数据领域里如日中天的Hadoop。他是某种意义上的盗火者(普罗米修斯盗火造福人类),他就是Doug Cutting。
hadoop概述
Hadoop是项目的总称。主要是由HDFS和MapReduce组成。HDFS是Google File System(GFS)的开源实现。MapReduce是Google MapReduce的开源实现。
Hadoop的诞生突破了传统数据文件系统的单机模式。使得数据可以跨越不同的机器与设备,并且用一个路径去管理不同平台上的数据。
MapReduce的计算模型分为Map和Reduce两个过程。在日常经验里,我们统计数据需要分类,分类越细、参与统计的人数越多,计算的时间就越短,这就是Map的形象比喻,在大数据计算中,成百上千台机器同时读取目标文件的各个部分,然后对每个部分的统计量进行计算,Map就是负责这一工作的;而Reduce就是对分类计数之后的合计,是大数据计算的第二阶段。可见,数据的计算过程就是在HDFS基础上进行分类汇总。
HDFS把节点分成两类:NameNode和DataNode。NameNode是唯一的,程序与之通信,然后从DataNode上存取文件。这些操作是透明的,与普通的文件系统API没有区别。
MapReduce则是JobTracker节点为主,分配工作以及负责和用户程序通信。
HDFS和MapReduce实现是完全分离的,并不是没有HDFS就不能MapReduce运算。
Hadoop也跟其他云计算项目有共同点和目标:实现海量数据的计算。而进行海量计算需要一个稳定的,安全的数据容器,才有了Hadoop分布式文件系统(HDFS,Hadoop Distributed File System)。
HDFS通信部分使用org.apache.hadoop.ipc,可以很快使用RPC.Server.start()构造一个节点,具体业务功能还需自己实现。针对HDFS的业务则为数据流的读写,NameNode/DataNode的通信等。
MapReduce主要在org.apache.hadoop.mapred,实现提供的接口类,并完成节点通信(可以不是hadoop通信接口),就能进行MapReduce运算。
hadoop生态模型
Hadoop Common: 在0.20及以前的版本中,包含HDFS、MapReduce和其他项目公共内容,从0.21开始HDFS和MapReduce被分离为独立的子项目,其余内容为Hadoop Common
HDFS:Hadoop分布式文件系统(Distributed File System) - HDFS (Hadoop Distributed File System)。
MapReduce:并行计算框架,0.20前使用 org.apache.hadoop.mapred 旧接口,0.20版本开始引入org.apache.hadoop.mapreduce的新API。
HBase: 类似Google BigTable的分布式NoSQL列数据库。(HBase和Avro已经于2010年5月成为顶级 Apache 项目)。
Hive:数据仓库工具,由Facebook贡献。
Zookeeper:分布式锁设施,提供类似Google Chubby的功能,由Facebook贡献。
Avro:新的数据序列化格式与传输工具,将逐步取代Hadoop原有的序列化机制。
Pig: 大数据分析平台,为用户提供多种接口。
Ambari:Hadoop管理工具,可以快捷的监控、部署、管理集群。
Sqoop:用于HADOOP与传统的数据库(mysql、Oracle等)间进行数据的传递。
hadoop1.0和hadoop2.0架构
1.0和2.0的区别是2.0新增YARN,负责集群的资源管理、调度、分配等。
初步了解了hadoop相关概念,我们就可以一起来搭建hadoop集群环境了。想要了解和学习hadoop集群环境搭建的小伙伴可以参看我的这篇博文:hadoop集群环境搭建教程。
版权所有,转载请说明转载地址。