闭卷笔试100分钟
题型单选(30)、多选(20)、问答(30)、应用(20)
一 概论
1、大数据5V特点
Volume(大量)、Velocity(高速)、Variety(多样)、Value(低密度价值)、Veracity(真实性)
*2、Google三驾马车
GFS(分布式文件系统)、MapReduce(超大集群的简单数据处理)、BigTable(结构化数据的分布式存储系统)
3、Hadoop的特点
扩容能力:可靠的存储和处理PB级数据
低成本:普通计算机组成集群来处理数据,可达上千个节点
高效率:节点上并行处理数据使得速度快
可靠性:自动维护数据的多份复制,任务失败后自动重新部署计算任务
4、Hadoop生态系统
HDFS:分布式存储,数据存储功能
MapReduce:分布式计算框架
HBase:分布式数据库,基于HDFS的NOSQL数据库
Zookeeper:,分布式协调服务框架,hadoop组件管理端
Pig:数据流处理,对MapReduce的抽象
Hive:数据仓库,将结构化的数据文件映射为数据表,将SQL翻译为MapReduce语句进行查询
5、Hadoop的主要版本
p7 1.3.4 最新的3.*,出现了YARN的版本2.0
6、NoSQL有哪些
关系型数据库产品很多,如 MySQL、Oracle、Microsoft SQL Sever 等,但它们的基本模型都是关系型数据模型。
非关系型数据库又称为:NoSQL ,没有统一的模型,而且是非关系型的。
NoSQL 数据库并没有一个统一的架构,两种不同的 NoSQL 数据库之间的差异程度,远远超过两种关系型数据库之间的不同。可以说,NoSQL 数据库各有所长,一个优秀的 NoSQL 数据库必然特别适用于某些场合或者某些应用,在这些场合中会远远胜过关系型数据库和其他的 NoSQL 数据库。
常见的 NoSQL 数据库包括键值数据库、列族数据库、文档数据库和图形数据库,其具体分类和特点如表所示:
分类 | 相关产品 | 应用场景 | 数据模型 | 优点 | 缺点 |
---|---|---|---|---|---|
键值数据库 | Redis、Memcached、Riak | 内容缓存,如会话、配置文件、参数等; 频繁读写、拥有简单数据模型的应用 |
<key,value> 键值对,通过散列表来实现 | 扩展性好,灵活性好,大量操作时性能高 | 数据无结构化,通常只被当做字符串或者二进制数据,只能通过键来查询值 |
列族数据库 | Bigtable、HBase、Cassandra | 分布式数据存储与管理 | 以列族式存储,将同一列数据存在一起 | 可扩展性强,查找速度快,复杂性低 | 功能局限,不支持事务的强一致性 |
文档数据库 | MongoDB、ES、CouchDB | Web 应用,存储面向文档或类似半结构化的数据 | <key,value> value 是 JSON 结构的文档 |
数据结构灵活,可以根据 value 构建索引 | 缺乏统一查询语法 |
图形数据库 | Neo4j、InfoGrid | 社交网络、推荐系统,专注构建关系图谱 | 图结构 | 支持复杂的图形算法 | 复杂性高,只能支持一定的数据规模 |
7、Hadoop/HBase/Zookeeper属于什么开源项目?
Apache基金会
8、Hadoop的开发语言(Hadoop是用什么语言编写的)
Java
二 HDFS
*1、Hadoop三大基本组件
HDFS:分布式文件系统,数据存储
YARN:统一资源管理和调度系统,支持多种框架
MapReduce:分布式计算框架,运行于YARN上
2、HDFS的特性和局限性
特性:
能保存PB级数据量,数据散布在大量节点上,支持更大文件
可靠性、高容错性,多节点数据备份
与MapReduce集成,允许数据在本地计算,减少计算时数据交互
局限性:
不适合低延迟数据访问
不适合大量小文件存储
不支持多用户并发写入及任意修改文件,一次写入多次读取
不支持缓存,每次从硬盘重新读取
3、HDFS block
在HDFS的实现中,数据块被抽象成类org.apache.hadoop.hdfs.protocol.Block(我们以下简称Block)
。在Block类中有如下几个属性字段:
1 2 3 4 5 |
|
我们从WEB UI上的数据块信息也可以看到:
一个Block除了存储上面的3个字段信息,还需要知道这个Block含有多少个备份,每一个备份分别存储在哪一个DataNode上,为了存储这些信息,HDFS中有一个名为org.apache.hadoop.hdfs.server.blockmanagement.BlockInfoContiguous(下面我们简称为BlockInfo)
的类来存储这些信息,这