Hadoop大数据项目实践——The 1st day
大数据
大数据的4V+1C特点:
- volume 数据量巨大,PB级别是常态(B、KB、MB、GB、TB、PB、EB、ZB、YB逐级变大);
- value 数据价值密度低,需要从大量多样的数据中获取有效信息;
- velocity 数据增长快速,且越新的数据,价值越大。这就要求对数据的处理速度快;
- variety 数据来源和格式多样;
- complexity 复杂度高,对数据的处理和分析难度大。
Hadoop简述
- 2002年,开源组织Apache成立开源搜索引擎项目Nutch。
2004年,Apache实现了Nutch版的NDFS和MapReduce。
2006年,NDFS和MapReduce移出Nutch,形成独立项目,称为Hadoop。
工业界称Hadoop 1.X及其以前的版本(0.23.X除外)为Hadoop 1.0,称Hadoop 2.X及其以后版本为Hadoop 2.0。 - Hadoop是作者Doug Cutting受Google三篇论文(GFS、MapReduce、BigTable)的启发,通过项目组开发的可靠的、可扩展的分布式计算开源软件,可以用来解决海量数据存储、分析、资源调度问题。
- 目前,几乎所有的IT主流厂商,均是围绕Hadoop开发工具、开源软件、商业化工具和技术服务。比如,其在淘宝提供服务的大框架中所处位置如下图所示(图片来自网络):
Hadoop框架概述
- Hadoop 1.0框架
Hadoop common:联系HDFS和MapReduce的纽带,它一方面为另外两组件提供一些公用jar包,另一方面也是程序员访问其他两模块的接口。
HDFS:Hadoop的分布式文件系统,主要提供分布式存储服务。
Hadoop MapReduce:分布式计算框架。主要负责资源管理、任务调度和MapReduce算法实现。 - Hadoop 2.0框架
主体框架是HDFS、Yarn、MapReduce。- HDFS:Hadoop的分布式文件系统,主要提供分布式存储服务。
两个NameNode(一主一备),负责维护文件系统的命名空间,协调客户端对文件的访问,记录命名空间内的任何改动或命名空间本身的属性改动;多个DataNode从节点,负责它们所在的物理节点上的存储管理以及HDFS开放文件系统的命名空间。 - Yarn:Hadoop的分布式操作系统,是将MRv1版JobTracker的两大功能——资源管理和任务调度,拆分成两个独立的进程(ResourceManager、ApplicationMaster)。一方面管理整个集群的计算资源(CPU、内存等),另一方面提供用户程序访问系统资源的API。
全局资源管理进程ResourceManager,是整个集群资源仲裁中心。
任务管理进程ApplicationMaster,管理本机资源。 - MapReduce:处理海量数据的并行编程模式,用于大规模数据集(通常大于1TB)的并行运算。 “Map(映射)”、“Reduce(化简)”的概念和主要思想,都是从函数式编程语言和矢量编程语言借鉴,适合非结构化和结构化的海量数据的搜索、挖掘、分析与机器智能学习等。
- Hbase:Hadoop的开源分布式数据库,具有高可靠性、高性能、列存储、可伸缩、实时读写的特点。适合存储非结构化数据。
- Hive:Hadoop的数据仓库框架,其设计目的是让FaceBook内精通SQL的分析师能够以类SQL的方式查询存放在HDFS的大规模数据集。
近年来,工业界开发了大量的外围产品,其框架如下(图片来自网络):
- HDFS:Hadoop的分布式文件系统,主要提供分布式存储服务。
Hadoop2.0部署
- 部署方式有:
1.本地模式(不需要与其他节点交互,不需要使用HDFS,直接读写本地的文件系统)
2.伪分布模式(在一台单机上运行,用不同的进程模仿分布式运行中的各类节点)
3.集群模式(在不同的机器上部署系统) - 部署步骤:
制定部署计划–>准备机器–>准备机器软件环境(修改机器名、添加域名映射、关闭防火墙、安装JDK)–>下载Hadoop–>解压Hadoop–>配置Hadoop–>启动Hadoop–>测试Hadoop - Hadoop访问接口
- 浏览器接口
Hadoop2.0 模块 Web地址 配置文件 配置参数 HDFS http://NameNodeHostName:50070 hdfs-site.xml {dfs.namenode.http-address} Yarn http://ResourceManagerHostName:8088 yarn-site.xml {yarn.resourcemanager.webapp.address} MapReduce http://JobHistoryHostName:19888 mapred-site.xml {mapreduce.jobhistory.webapp.address} - 命令行接口
- 浏览器接口