数分-理论-大数据2-Hadoop
(数据分析系列)
1知识点
- 发展
- 简介
- 项目架构
- 安装应用
2具体内容
2.1发展
- Lucene:文本搜索的函数库,全文检索引擎
- Nutch:建立在Lucene核心之上的网页搜索应用程序,加了网络爬虫和一些网页相关的功能
- GFS(2003):google为存储海量搜索数据而设计的专用文件系统
- NDFS(2004):分布式文件存储系统Nutch Distributed File System
- MapReduce编程模型(2004):用于大规模数据集(大于1TB)的并行分析运算。
- (2005年)Nutch搜索引擎实现MapReduce
- Hadoop(2006,雅虎),Doug Cutting将NDFS和MapReduce进行了升级改造
- BigTable,(2006,谷歌),分布式数据存储系统,一种用来处理海量数据的非关系型数据库。
- HBase,在自己的Hadoop系统里面,引入了BigTable
- 2008年1月,Hadoop成功上位,正式成为Apache基金会的顶级项目。2月,Yahoo宣布建成了一个拥有1万个内核的Hadoop集群,并将自己的搜索引擎产品部署在上面。7月,Hadoop打破世界纪录,成为最快排序1TB数据的系统,用时209秒。
2.2简介
1.概述
- Hadoop是Apache软件基金会旗下的一个开源分布式计算平台,为用户提供了系统底层细节透明的分布式基础架构。
- 跨平台,可部署在廉价的计算机集群
- 核心是分布式文件系统HDFS(Hadoop Distributed File System)和 MapReduce。
- HDFS,面向普通硬件环境的分布式文件系统,具有较高的读写速度、很好的容错性和可伸缩性,支持大规模数据的分布式存储,其冗余数据存储的方式,很好地保证了数据的安全性。
- MapReduce是针对谷歌MapReduce的开源实现,允许用户在不了解分布式系统底层细节的情况下开发并行应用程序,采用MapReduce来整合分布式文件系统上的数据,可保证分析和处理数据的高效性。
2.特性
- 高可靠性:采用冗余数据存储方式,即使一个副本发生故障,其他副本也可以保证正常对外提供服务。Hadoop按位存储和处理数据的能力,值得人们信赖。
- 高效性:作为并行分布式计算平台,Hadoop采用分布式存储和分布式处理两大核心技术,能够高效地处理PB级数据。Hadoop能够在节点之间动态地移动数据,并保证各个节点的动态平衡,因此处理速度非常快。
- 高可扩展性:Hadoop的设计目标是可以高效稳定地运行在廉价的计算机集群上,可以扩展到数以千计的计算机节点。
- 高容错性:采用冗余数据存储方式,自动保存数据的多个副本,并且能够自动将失败的任务进行重新分配。
- 成本低:Hadoop采用廉价的计算机集群,成本较低,普通用户也很容易用自己的PC上搭建Hadoop运行环境。与一体机、商用数据仓库以及QlikView、Yonghong Z-Suite等数据集市相比,Hadoop是开源的,项目的软件成本因此会大大降低。
- 运行在Linux平台上:Hadoop是基于Java语言开发的,可以较好地运行在Linux平台上。
- 支持多种编程语言:Hadoop上的应用程序也可以使用其他语言编写,如C++。
3.应用现状
国内外,大型公司使用Hadoop集群成为趋势,并在Hadoop基础上提出了新的解决方案
2.3项目架构
- Common:为Hadoop其他子项目提供支持的常用工具,它主要包括FileSystem、RPC和串行化库,它们为在廉价的硬件上搭建云计算环境提供了基本的服务,并为运行在该平台上的软件开发提供了所需的API
- Avro:数据库序列化的系统
- 提供了丰富的数据结构类型、快速可压缩的二进制数据格式、存储持久性数据的文件集、远程调用RPC的功能和简单的动态语言集成功能
- 代码生成器即不需要读写文件数据,也不需要使用或者实现RPC协议,它只是一个可选的对静态类型语言的实现
- Avro系统依赖于模式,客户端和服务器端通过握手协议进行模式交换
- HBase:提供高可靠性、高性能、可伸缩、实时读写和分布式的列式数据库,一般采用HDFS作为其底层数据存储。
- 适合于非结构化数据存储的数据库
- 基于列而不是基于行的存储模式
- HBase表是疏松的,用户可以给行定义各种不同类型的列
- 主要用于需要随机访问、实时读写的大数据(Big Data)
- Pig:数据流语言和运行环境,适合于使用Hadoop和MapReduce的平台来查询大型半结构化数据集。
- 接近结构化查询语言(SQL)的接口
- Pig要比MapReduce具有明显的优势,前者只需要编写一个简单的脚本在集群中自动并行处理与分发,而后者则需要编写一个单独的MapReduce应用程序
- Pig是一个对大型数据集进行分析、评估的平台,最突出的优势是它的结构能够经受住高度并行化的检验,这个特性使得它能够处理大型的数据集。Pig的底层由编译器组成,运行的时候会产生一些MapReduce程序序列。
- Sqoop:改进数据的互操作性,主要用来在Hadoop和关系数据库之间交换数据
- 通过JDBC(Java DataBase Connectivity)与关系数据库进行交互
- Chukwa:开源的数据收集系统,用于监控和分析大型分布式系统的数据
- 集成了Hadoop的可扩展性和健壮性,通过HDFS来存储数据,并依赖MapReduce任务处理数据
- Zookeeper:为分布式应用所涉及的开源协调服务
- 为用户提供同步、配置管理、分组和命名等服务,减轻分布式应用程序所承担的协调任务
- 目录树结构
2.4安装应用
1.实验:在Ubuntu安装Hadoop
- 创建Hadoop用户
- 安装Java
- 设置SSH登录权限。
- 单机安装配置。
- 伪分布式安装配置
2.补充
- 集群模式安装
- 集群模式安装节点
参考
https://shenhao-stu.github.io/Big-Data/#/