第一章

  1. 谷歌的三驾马车:GFS(Google File System,包含ChunkServer,对应HDFS);MapReduc);BigTable(包括TabletServer,RegionServer。对应HBase)
  2. GFS的块副本位置选择有两大目标:最大化数据的 可靠性 可用性。对比HDFS,其机架感知主要考虑 安全 效率

  3. Hadoop的作者是:Doug cutting

  4. Hadoop数据块默认冗余度是 3,Hadoop1.x默认每个数据块的大小是 64M ,Hadoop2.x时默认大小为128M
  5. 大数据的核心问题是 存储 计算 ,分别对应Hadoop中的 HDFS MapReduce 技术
  6. Hadoop 源自始于 2002 年的 Apache Nutch项目。
  7. Hadoop 集群默认没有严格的权限管理和安全措施保障。
  8. 当 NameNode 出错时,采用 NameNode HA,当一个 NameNode 出错时,另一个 NameNode 接管它的工作。是最佳方案。
  9. HDFS Federation(联邦),当一个 Namenode 挂掉了,不会影响其他 Namenode。
  10. Namenode 在启动时自动进入安全模式,在安全模式阶段,文件系统不允许有修改
  11. 快照是 HDFS 2.x 版本新增加的基于某时间点的数据的备份复制。开启快照的 命令是: hdfs dfsadmin -allowSnapshot , 禁用快照的命令是 hdfs dfsadmin -disallowSnapshot

第二章

  1. HDFS 回收站默认不开启
  2. HDFS 为每一个用户都创建了回收站,这个类似操作系统的回收站。位置是 /user/用户名/.Trash/
  3. hdfs dfs -expunge 命令清空回收站
  4. 写入数据后,多个副本会复制到不同机架的多个 DataNode 中。(注意,第一个写入的数据就在数据节点本地,写入时是不会同时写到多个数据节点中的。)
  5. HDFS 的是基于流数据模式访问和处理超大文件的需求而开发的,具有高容 错、高可靠性、高可扩展性、高吞吐率等特征,适合的读写任务是 一次写入,多次读写
  6. SecondaryNameNode 默认每隔 60 分钟,或当 edits (editLog)文件达到 100 万 条事务进行合并。

image.png

  1. 请描述 Hadoop 副本冗余存储策略(机架感知)。

答:
默认副本数为 3
第一个副本:放置在上传文件的数据节点;如果是集群外提交,则随机挑选一台 磁盘不太满、CPU 不太忙的节点。
第二个副本:放置在与第一个副本不同的机架的节点上。
第三个副本:与第二个副本相同机架的其他节点上。
更多副本:随机节点

第四章

  1. YARN Web 界面默认占用 8088 端口

第五章 MapReduce

  1. MapReduce无法进行实时处理(流处理)
  2. MapReduce 是一种简化__并行计算_的编程模型。简而言之,MapReduce 就是 “分散任务(map)_汇总结果(reduce)_
  3. MapReduce中Mapper(Map任务)的个数是由输入分片(SplitInput)决定的,即文件内容切成多少段,是一种逻辑划分。
  4. Reducer的个数是由Partition分区的个数决定的(partition/partitioner:用来指定map输出的key交给哪个reuducer处理。
    默认是通过对map输出的key取hashcode对指定的reduce个数取余
    partition数决定reduce数,业务又决定reduce数)
  5. MapReduce 程序的默认数据读取组件是 TextInputFormat
  6. MapReduce 编程模型中 Reducer 组件是最后执行的。
  7. 开发 MapReduce 程序,自定义的类型如果要实现序列化,需要实现接口_Writable_
  8. MapReduce 程序只能对 key 排序
  9. Combiner 是一种特殊 Reducer,在 Mapper 端,先执行一次 Reducer
  10. MapReduce 中,OutputFormat 主要用于描述输出数据的格式,采用 NullWritable 可以省略输出的 key 或 value。

image.png
image.png

第六章 HBase和Hive

  1. HBase Web Console 的默认端口是 16010
  2. 查看 HBase 的表的结构,可以通过 describe 命令.
  3. 通过 JAVA API 操作 HBase,哪个 JAVA 类是操作列簇的? HtableDescriptor
  4. 从存储位置上,可以拿 Hive 与 HDFS 进行比较,下面说法不正确的是? Hive 的桶保存到 HDFS 上是一个目录 (不正确)
  5. Hive 哪一种数据模型,删除表时,存储目录中的数据不会被删除,只是删 除与数据的链接? 外部表
  6. hive 不支持数据删除和修改(数据仓库一般不能直接修改)
  7. Region_是 HBase 中分布式存储和负载均衡的最小单 元。
  8. HBase 列数据属性中,_时间戳_作为列数据版本, HBase(0.96 版本之后的HBase)每个列默认只存_1__个数据版本。
  9. HBase 的安装分_本地模式___伪分布模式 _完全分布模式(或集群模式)_三种。(与Hadoop相同)
  10. HBase 要删除一张表,第一步__disable __‘表名称’, 第二步 __drop__‘表名称’(注:空格内填 HBase Shell 的命令)
  11. Hive 的 Metastore 三 种 运 行 模 式 分 别 是 : _Embedded(或嵌 入)___Local(本地)___Remote (远程)__
  12. Hive 最终都会转化为__MapReduce__程序来运行。

    问答题

    如果把 HBase 看作是一个 Key-Value 型数据库,哪它的 Key 是什么?
    答:表、行键、列族、列限定符和时间戳
    请用图形描述 HBase 的体系结构,并文字描述 HBase 主要组成部分的职责。
    答:image.png
    image.png

第九章

  1. Zookeeper 服务端默认的对外服务端口是 2181