1. 下列哪项通常是集群的最主要瓶颈(C)

A. CPU

B. 网络

C. 磁盘IO

D. 内存

2. 下列哪项可以作为集群的管理工具?(C)

A.Puppet

B.Pdsh

C.ClouderaManager

D.Zookeeper

3. 下列哪个是Hadoop 运行的模式?(ABC)

A. 单机版

B. 伪分布式

C. 完全分布式

4. 列举几个hadoop 生态圈的组件并做简要描述

Zookeeper:是一个开源的分布式应用程序协调服务,基于zookeeper 可以实现同步服务, 配置维

护,命名服务。

Flume:一个高可用的,高可靠的,分布式的海量日志采集、聚合和传输的系统。

Hbase:是一个分布式的、面向列的开源数据库, 利用Hadoop HDFS 作为其存储系统。

Hive:基于Hadoop 的一个数据仓库工具,可以将结构化的数据档映射为一张数据库表, 并提供

简单的sql 查询功能,可以将sql 语句转换为MapReduce 任务进行运行。

6. 解释“hadoop”和“hadoop 生态系统”两个概念。

Hadoop 是指Hadoop 框架本身;hadoop 生态系统,不仅包含hadoop,还包括保证hadoop框架正常高效运行其他框架,比如zookeeper、Flume、Hbase、Hive、Sqoop 等辅助框架

7. 简要描述如何安装配置apache 的一个开源Hadoop,只描述即可,无需列出具体步骤,列出具体步骤更好。

1) 使用root 账户登录

2) 修改IP

3) 修改host 主机名

4) 配置SSH 免密码登录

5) 关闭防火墙

6) 安装JDK

7) 解压hadoop 安装包

8) 配置hadoop 的核心文件hadoop-env.sh,core-site.xml , mapred-site.xml ,

hdfs-site.xml

9) 配置hadoop 环境变量

10) 格式化hadoop namenode-format

11)启动节点start-all.sh

8. Hadoop 中需要哪些配置文件,其作用是什么?

1) core-site.xml:

fs.defaultFS:hdfs://cluster1(域名),这里的值指的是默认的HDFS 路径。

hadoop.tmp.dir:/export/data/hadoop_tmp,这里的路径默认是NameNode、DataNode、

secondaryNamenode 等存放数据的公共目录。用户也可以自己单独指定这三类节点的目录。

ha.zookeeper.quorum:hadoop101:2181,hadoop102:2181,hadoop103:2181,这里是

ZooKeeper 集群的地址和端口。注意,数量一定是奇数,且不少于三个节点。

2)hadoop-env.sh:

只需设置jdk 的安装路径,如:export JAVA_HOME=/usr/local/jdk。

3)hdfs-site.xml:

dfs.replication:他决定着系统里面的文件块的数据备份个数,默认为3 个。

dfs.data.dir:datanode 节点存储在文件系统的目录。

dfs.name.dir:是namenode 节点存储hadoop 文件系统信息的本地系统路径。

4)mapred-site.xml:

mapreduce.framework.name: yarn 指定mr 运行在yarn 上。

9. 请列出正常工作的Hadoop 集群中Hadoop 都分别需要启动哪些进程,它们的作用分别是什么?

NameNode 它是hadoop 中的主服务器,管理文件系统名称空间和对集群中存储的文件的访问,

保存有metadate。

SecondaryNameNode 它不是namenode 的冗余守护进程,而是提供周期检查点和清理任务。帮

助NN 合并editslog,减少NN 启动时间。

DataNode 它负责管理连接到节点的存储(一个集群中可以有多个节点)。每个存储数据的节点运

行一个datanode 守护进程。

ResourceManager(JobTracker)JobTracker 负责调度DataNode 上的工作。每个DataNode 有一

个TaskTracker,它们执行实际工作。

NodeManager(TaskTracker)执行任务

DFSZKFailoverController 高可用时它负责监控NN 的状态,并及时的把状态信息写入ZK 。它

通过一个独立线程周期性的调用NN 上的一个特定接口来获取NN 的健康状态。FC 也有选择谁作

为Active NN 的权利,因为最多只有两个节点,目前选择策略还比较简单(先到先得,轮换)。

JournalNode 高可用情况下存放namenode 的editlog 文件.

10. 简述Hadoop 的几个默认端口及其含义

dfs.namenode.http-address:50070

SecondaryNameNode 辅助名称节点端口号:50090

dfs.datanode.address:50010

fs.defaultFS:8020 或者9000

yarn.resourcemanager.webapp.address:8088

11. 简述hadoop实现Join的几种方法

reduce side join

reduce side join是一种最简单的join方式,其主要思想如下:在map阶段,map函数同时读取两个文件File1和File2,为了区分两种来源的key/value数据对,对每条数据打一个标签(tag),比如:tag=0表示来自文件File1,tag=2表示来自文件File2。即:map阶段的主要任务是对不同文件中的数据打标签。

在reduce阶段,reduce函数获取key相同的来自File1和File2文件的value list, 然后对于同一个key,对File1和File2中的数据进行join(笛卡尔乘积)。即:reduce阶段进行实际的连接操作。

map side join

之所以存在reduce side join,是因为在map阶段不能获取所有需要的join字段,即:同一个key对应的字段可能位于不同map中。Reduce side join是非常低效的,因为shuffle阶段要进行大量的数据传输。

Map side join是针对以下场景进行的优化:两个待连接表中,有一个表非常大,而另一个表非常小,以至于小表可以直接存放到内存中。这样,我们可以将小表复制多份,让每个map task内存中存在一份(比如存放到hash table中),然后只扫描大表:对于大表中的每一条记录key/value,在hash table中查找是否有相同的key的记录,如果有,则连接后输出即可。

为了支持文件的复制,Hadoop提供了一个类DistributedCache,使用该类的方法如下:

(1)用户使用静态方法DistributedCache.addCacheFile()指定要复制的文件,它的参数是文件的URI(如果是HDFS上的文件,可以这样:hdfs://namenode:9000/home/XXX/file,其中9000是自己配置的NameNode端口号)。JobTracker在作业启动之前会获取这个URI列表,并将相应的文件拷贝到各个TaskTracker的本地磁盘上。

(2)用户使用DistributedCache.getLocalCacheFiles()方法获取文件目录,并使用标准的文件读写API读取相应的文件。

SemiJoin

SemiJoin,也叫半连接,是从分布式数据库中借鉴过来的方法。它的产生动机是:对于reduce side join,跨机器的数据传输量非常大,这成了join操作的一个瓶颈,如果能够在map端过滤掉不会参加join操作的数据,则可以大大节省网络IO。

实现方法很简单:选取一个小表,假设是File1,将其参与join的key抽取出来,保存到文件File3中,File3文件一般很小,可以放到内存中。在map阶段,使用DistributedCache将File3复制到各个TaskTracker上,然后将File2中不在File3中的key对应的记录过滤掉,剩下的reduce阶段的工作与reduce side join相同。

大数据面试题(一)----HADOOP 面试题的更多相关文章

  1. 大数据平台搭建(hadoop+spark)

    大数据平台搭建(hadoop+spark) 一.基本信息 1. 服务器基本信息 主机名 ip地址 安装服务 spark-master 172.16.200.81 jdk.hadoop.spark.sc ...

  2. 大数据学习系列之四 ----- Hadoop+Hive环境搭建图文详解(单机)

    引言 在大数据学习系列之一 ----- Hadoop环境搭建(单机) 成功的搭建了Hadoop的环境,在大数据学习系列之二 ----- HBase环境搭建(单机)成功搭建了HBase的环境以及相关使用 ...

  3. 大数据学习系列之六 ----- Hadoop+Spark环境搭建

    引言 在上一篇中 大数据学习系列之五 ----- Hive整合HBase图文详解 : http://www.panchengming.com/2017/12/18/pancm62/ 中使用Hive整合 ...

  4. 大数据学习系列之七 ----- Hadoop+Spark+Zookeeper+HBase+Hive集群搭建 图文详解

    引言 在之前的大数据学习系列中,搭建了Hadoop+Spark+HBase+Hive 环境以及一些测试.其实要说的话,我开始学习大数据的时候,搭建的就是集群,并不是单机模式和伪分布式.至于为什么先写单 ...

  5. 大数据实时计算工程师/Hadoop工程师/数据分析师职业路线图

    http://edu.51cto.com/roadmap/view/id-29.html http://my.oschina.net/infiniteSpace/blog/308401 大数据实时计算 ...

  6. 大数据学习笔记之Hadoop(一):Hadoop入门

    文章目录 大数据概论 一.大数据概念 二.大数据的特点 三.大数据能干啥? 四.大数据发展前景 五.企业数据部的业务流程分析 六.企业数据部的一般组织结构 Hadoop(入门) 一 从Hadoop框架 ...

  7. 阿里巴巴飞天大数据架构体系与Hadoop生态系统

    很多人问阿里的飞天大数据平台.云梯2.MaxCompute.实时计算到底是什么,和自建Hadoop平台有什么区别. 先说Hadoop 什么是Hadoop? Hadoop是一个开源.高可靠.可扩展的分布 ...

  8. 大数据软件安装之Hadoop(Apache)(数据存储及计算)

    大数据软件安装之Hadoop(Apache)(数据存储及计算) 一.生产环境准备 1.修改主机名 vim /etc/sysconfig/network 2.修改静态ip vim /etc/udev/r ...

  9. 大数据组件原理总结-Hadoop、Hbase、Kafka、Zookeeper、Spark

    Hadoop原理 分为HDFS与Yarn两个部分.HDFS有Namenode和Datanode两个部分.每个节点占用一个电脑.Datanode定时向Namenode发送心跳包,心跳包中包含Datano ...

  10. 了解大数据的技术生态系统 Hadoop,hive,spark(转载)

    首先给出原文链接: 原文链接 大数据本身是一个很宽泛的概念,Hadoop生态圈(或者泛生态圈)基本上都是为了处理超过单机尺度的数据处理而诞生的.你能够把它比作一个厨房所以须要的各种工具. 锅碗瓢盆,各 ...

随机推荐

  1. Javascript用途,语法特点,难点,调试工具,引入方式,命名规范,变量声明及赋值,数据类型,运算符

    JavaScript用来干什么 数据的验证 将动态的内容写入到网页当中(ajax) 对事件做出相应 读写html当中的内容 检测浏览器 创建cookies 模拟动画 语法特点 基于对象和事件驱动的松散 ...

  2. 小小知识点(三十七)OFDM和OFDMA的区别以及OFDMA与SC-FDMA的区别

    OFDM和OFDMA的区别 OFDM(orthogonal frequency division multiplexing),which assigns one block (in time ) to ...

  3. 小小知识点(十七)——对数形式功率(dBm)与非对数形式功率(w)之间的换算关系

    摘自https://blog.csdn.net/shij19/article/details/52946454 dBm 物理含义是:一个表示功率绝对值的值(也可以认为是以1mW功率为基准的一个比值) ...

  4. 阿里云ECS单节点Kubernetes部署

    参考资料: kubernetes官网英文版 kubernetes官网中文版 环境.工具 阿里云学生机ECS.Ubuntu.docker.kubectl1.15.4.kubelet1.15.4.kube ...

  5. k8s-手动安装

    预先准备信息 以下列节点数与规格来进行部署 Kubernetes 集群,操作系统CentOS 7.x IP Address Role CPU Memory 192.168.2.10 node10 4 ...

  6. PHP 对接 饿了么开放平台 接单

    <?php # 一开始使用的是API方式对接,所以我这里是API的方式+SDK的结合 (除了获取token之外都是使用SDK方式,所以看到的朋友还是直接使用纯SDK方式对接最好),因为我这里使用 ...

  7. 利用Python进行数据分析学习记录(一)

    1.Python的科学计算邮件列表 pydata:这是一个Google Group邮件列表,其中的问题都是Python数据分析和pandas方面的. pystatsmodels:针对Numpy相关的问 ...

  8. 重新认识C语言的指针(上)

    ​ 独创性并不是首次观察某种新事物,而是把旧的.很早就是已知的,或者是人人都视而不见的事物当新事物观察,这才证明是有真正的独创头脑 -尼采 本文已经收录至我的GitHub,欢迎大家踊跃star 和 i ...

  9. Promise里的代码为什么比setTimeout先执行

    当浏览器或者Node拿到一段代码时首先做的就是传递给JavaScript引擎,并且要求它去执行. 然而,执行 JavaScript 并非一锤子买卖,宿主环境当遇到一些事件时,会继续把一段代码传递给 J ...

  10. Asp.Net Core 学习教程1、初始.Net Core与VS Code 第一个web程序

    1..Net Core介绍 .NET Core是.NET Framework的新一代版本, 是微软开发的第一个具有跨平台(Windows.Macosx.Linux) 能力的应用程序开发框架,未来也将会 ...