《Hadoop 基础》面试题
一、理论测试题:
1.大数据的 4 个特征什么是么
大量化——存储量大 增量大
多样化——来源多 格式多
快速化——数据产生的快,处理的速度快
价值密度低——需要处理大量不相关的数据
2.(Distributed File System)分布式文件系统是什么
就是文件系统管理的物理存储资源不一定直接连接在本地节点上,而是通过就算计算机网络与节点
相连
3.Hdfs 优点简单阐述下
高容错——数据自动保存多个副本,丢失后,自动恢复
使用大数据处理——处理数据甚至可达 PB 级别,百万规模以上的文件,10k 节点的规模
可构建在廉价机器上——通过多副本提高可靠性,提供容错和恢复机制
4.hdfs 缺点简单阐述下
不适合低延迟数据访问
不适合小文件存取
并发写入,文件随机修改(一个文件只能有一个写,不允许多个线程同时写。仅支持数据追加)
5.HDFS 分布式文件系统的设计思想简单阐述下
6.HDFS 架构核心是什么
7.HDFS 架构组成有那些
8.HDFS Client(客户端)主要做些什么事情
9.NameNode 作用
10.DataNode 作用
11.Secondary NameNode 作用
12.如何搭建 HDFS 环境
13.HDFS 写数据流程简单阐述下
14.HDFS 读数据流程简单阐述下
15.HDFS HA(High Available)解决了什么问题
单点故障
16.HDFS Federation(多个 NN 都能对外提供服务)解决了什么问题
内存受限,水平扩展
17.HDFS Snapshots(快照)作用
数据备份,防止用户误操作,容灾
18.Yarn 核心组件有哪些、
ResourceManager,NodeManager,ApplicationMaster,Container
19.ResourceManager 组件有那些
Scheduler ,ApplicationManager
20.ResourceManager 作用
处理客户端发送的请求
启动/监控 ApplicationMaster
监控 NodeManager
本节点上的资源和任务管理
21.NodeManager 作用
22.ApplicationMaster 作用
23.Container(容器)是什么
24.YARN 执行流程简单阐述下
25.YARN 环境搭建需要配置那些文件
26.什么是 mapreduce?
一个分布式运算程序的编程框架
将用户编写的业务逻辑代码和自带默认组件整合成一个完整的分布式运算程序
27.为什么需要 mapreduce
大量数据在单机上因为硬件资源受限,无法胜任
扩展到集群来分布式运行,极大增加了程序的复杂度和开发难度
使用 MapReduce 后,可将大部分工作集中在业务逻辑的开发并将分布式计算的复杂性交由框架
28.MapReduce 优点简单阐述下
易于编程
良好的扩展性
高容错
适合 PB 级别以上的海量离线数据处理
29.MapReduce 不适合做什么
实时 流式 DAG
30.MapReduce 执行原理阐述
作业提交
初始化
分配任务
执行任务
进度和状态更新
完成作业
31.MapReduce 编程模型有几个阶段
Map 阶段
Reduce 阶段
32.HBase 是什么
高可靠性,高性能,面向列,可伸缩的分布式存储系统
可构建在廉价机器上的大规模结构化存储集群
33.HBase 特点有哪些
面向列
数据类型单一
容量大
多版本——每一列的数据存储有多个版本
稀疏性——为空的不占用存储空间,
无模式——每行数据对应的列可以不同
34.Hbase 核心术语有哪些
rowkey
column family
column
timestamp cell
35.HBase 物理模型有哪些
regionServer
region——一个或多个 store(每个 store 保存一个 column family)——一个 memstore 和 0 或者
多个 storefile 组成
36.HBase 架构阐述下每个组件的作用
37.Hbase 需要配置那几个文件?
38.Hbase DDL 有哪几个命令
39.Hbase DML 有哪几个命令
40.Hbase 删除表需要执行什么操作?
41.hive 是什么?
构建在 Hadoop 之上的数据仓库
通常用于离线处理
定义了一种类似于 sql 的查询语言:HQL
支持多种不同的执行引擎
支持不同的压缩格式,存储格式以及自定义函数
42.为什么需要 hive
简单 容易上手
为超大数据集设计的计算/扩展能力
统一的元数据管理
43.hive 体系架构
用户接口:client
元数据:metastore
驱动:driver
hdfs hbase
44.hive 的优缺点
基于 hadoop 容易扩展
简单易上手
数据离线处理
缺点:延迟高 不适合实时 对小数据集没有优势
45.数据模型
database
table
partition
bucket
46.创建分区的关键字是什么
partitioned by
47.常见的压缩有哪几种
gzip——压缩率高,速度比较快
lzo——Hadoop 本身不支持,需要安装。速度也比较快,合理的压缩率,支持拆分
snappy——告诉压缩速度和合理的压缩率,不支持拆分,压缩率比 gzip 要低
bzip2——支持拆分,具有很高的压缩率,比 gzip 压缩率都高 速度慢
48.想要快速的压缩文件用那种压缩格式
snappy
49.想要拥有很高的压缩率用那种压缩格式
bzip2
50.hive 存储方式有哪几种,并简单说说
行式存储——sequenceFile TextFile
不支持拆分
列式存储——ORCFile RCFile Parquet
51.什么是用户行为日志
用户每次访问网站时所有的行为数据(访问,浏览,搜索,点击)
52.用户日志构成
访客的系统属性特征——操作系统,浏览器,域名,访问速度
访问特征——页面停留时间,点击的链接,从哪儿个页面跳转过来的
访问的信息——sessionID,访问 ip 城市
53.分析的目的
提高网站流量,提升用户体验,通过更少的投入来获得更大化的变化
54.网站流量分析指标
pv——浏览量,点击量
uv——用户对同一页面的多次访问,只记录一次
ip
source——用户从哪里访问过来的
browser—(ios,android,chrome)
55.数据分析项目流程是什么
数据采集 flume
预处理 mapreduce/hive
入库 hive
分析 sqoop
展示 Echarts hue
56.采集日志你们的什么框架简单说说
flume
一个高可用,高可靠,分布式的海量日志采集,聚合和传输的系统。支持在日志系统中定制各类数
据发送方,用于收集日记;同时,flume 提供对数据进行简单处理并写到各种数据接收方的能力。
57.说说在采集工作中你常用的三种 source
log 数据库 js 埋点
58.说说你们项目用到的一些框架。