大数据处理架构Hadoop
1. 概述
Hadoop是java语言开发的,核心是Hadoop分布式文件系统(HDFS)和MapReduce。其中HDFS是针对谷歌文件系统(GFS,详见云计算)的开源实现,MapReduce也是针对谷歌同名MapReduce的开源实现。
2.发展过程
Hadoop是小孩给一头“吃饱了的棕色大象”起的名字,主打一个简单易于记忆,朗朗上口。
3.特性
- 高可靠性:有冗余版本控制;
- 高效性:分布式存储,分布式处理,处理PB级别数据高效;
- 高可拓展:处理和存储分开,便于扩展大量设备;
- 高容错性:存在副本,可以迅速切换;
- 成本低:采用廉价的计算机集群;
- 运行在Linux系统上:Java语言的跨平台性可以保证Hadoop可以运行在Linux系统上;
- 支持多种编程语言:主要是Java语言,但也支持C++语言等。
4.版本变化
- Hadoop1.0:HDFS,MapReduce
- Hadoop2.0:增加了Yarn
- Hadoop3.0:性能优化
5.Hadoop生态系统
- HDFS:Hadoop分布式文件系统,是Hadoop项目的两大核心之一,实现在部分硬件发生故障的情况下仍然能保证文件系统的整体可用性和可靠性;
- HBase:一个提供高可靠性、高性能、可伸缩、实时读写、分布式的列式数据库,采用HDFS作为其底层数据存储结构,具有良好的横向扩展能力,可以通过增加服务器提高存储能力;
- MapReduce:一种编程模型,用于大规模数据集的并行运算,核心思想是“分而治之”;
- Hive:一个基于Hadoop的数据苍鹭工具,可以对Hadoop文件中的数据进行数据整理、特殊查询和分析存储,有泪俗语关系数据库SQL的查询语言HiveQL,Hive将其转换为MapReduce程序,不必再专门开发MapReduce应用;
- Pig:一种数据流语言和运行环境,简化了Hadoop常见的工作任务,为Hadoop应用程序提供了一种更接近结构查询语言的接口;
- Mahout:提供一些可扩展的机器学习领域经典算法的实现;
- ZooKeeper:针对谷歌Chubby的开源实现,是高效和可靠的协同工作系统,提供分布式锁服务;
- Flume:日志系统;
- Sqoop:用来Hadoop和关系数据库之间交换数据,从其他数据库导入数据进入Hadoop;
- Ambari:基于Web的工具,支持Hadoop集群的安装部署配置和管理;
- Spark:和Hadoop类似的开源分布式数据处理框架。
6.Hadoop安装(题目驱动复习,详细内容不再阐述,参考资料讲的非常清楚)
例题:
(老师设置了交卷后不可查看,以下习题来自网络搜集)
1、启动hadoop所有进程的命令是:
A.start-hdfs.sh B.start-all.sh C.start-dfs.sh D.start-hadoop.sh
2、以下对Hadoop的说法错误的是:
A.Hadoop是基于Java语言开发的,只支持Java语言编程
B.Hadoop的核心是HDFS和MapReduce
C.Hadoop MapReduce是针对谷歌MapReduce的开源实现,通常用于大规模数据集的并行计算
D.Hadoop2.0增加了NameNode HA和Wire-compatibility两个重大特性
3、 以下名词解释错误的是:
A.Hive:一个基于Hadoop的数据仓库工具,用于对Hadoop文件中的数据集进行数据整理、特殊查询和分析存储
B.HDFS:分布式文件系统,是Hadoop项目的两大核心之一,是谷歌GFS的开源实现
C.HBase:提供高可靠性、高性能、分布式的行式数据库,是谷歌BigTable的开源实现
D.Zookeeper:针对谷歌Chubby的一个开源实现,是高效可靠的协同工作系统
4、以下哪些组件不是Hadoop的生态系统的组件:
A.HDFS
B.Oracle
C.HBase
D.MapReduce
5、Hive是Hadoop上的()
A、非关系型的分布式数据库
B、工作流管理系统
C、数据仓库
D、流计算框架
6、hadoop dfs只能适用于()文件系统
A、Windows
B、HDFS
C、本地
D、Linux
7、(判断)Hadoop是基于Python语言开发的,具有很好的跨平台性。
8、试述Hadoop的项目结构以及每个部分的具体功能。
答案:
B A C B C B
错误
略
参考文献;
《大数据原理与应用(第三版)——概念、存储、处理、分析与应用》,林子雨,人民邮电出版社。
Hadoop安装配置
习题参考一
习题参考二