大数据复习

1、简述HBase的支持的3种检索方式:                                    ^

(1)通过单个Rowkey访问,即按照某个Rowkey键值进行get操作,这样获取唯一一条记录;

(2)通过Rowkey的range进行scan,即通过设置startRowKey和endRowKey,在这个范 围内进行扫描。这样可以按指定的条件获取一批记录;

(3)全表扫描,即直接扫描整张表中所有记录,Hbase按单个Rowkey检索的效率是很高的,耗时在1毫秒以下,每秒钟可获取1000-2000条记录,不过非key列的查询很慢

2、一个MapReduce作业的生命周期大体分为5个阶段

  1. 作业提交与初始化
  2. 任务调度与监控
  3. 任务运行环境准备
  4. 任务执行
  5. 作业完成

3、什么是分布式计算

答:分布式计算是一门计算机科学,主要研究分布式系统。一个分布式系统包括若干通 过网络互联的计算机•这些计算机互相配合以完成一个共同的目标(我们将这个共同的 目标称为“项目”)。具体的过程是:将需要进行大量计算的项目数据分割成小块,由多台 计算机分别计算,再上传运算结果后统一合并得出数据结论。在分布式系统上运行的计 算机程序称为分布式计算程序:分布式编程就是编写上述程序的过程。

4、假如Namenode中没有数据会怎么样?

没有数据的Namenode就不能称之为Namenode,通常情况下,Namenode肯定会有数据。

5、 在Hadoop HDFS中,集群中的DataNode节点需要周期性地向NameNode发送什么信息?

答:在Hadoop HDFS中,DataNode需要周期性地向集群中的DataNode Master节点发送 心跳信息和块报告。接收到心跳信息,说明该DataNode节点工作正常;块报告包含了

6、在 Hadoop HDFS 中,SecondaryNameNode 的主要作用是什么?

答:辅助NameNode,分担其工作量:定期合并镜像文件(fsimage)和编辑日志文件 Cfsedits),并推送给NameNode;在紧急情况下,可辅助恢复NameNode节点。

7、请简要说明Hadoop YARN的一级调度管理与二级调度管理?

yarn作为分布式集群资源管理框架,可用于集群资源的管理以及应用的调度,YARN的一级调度管理包括计算资源管理和Application生命周期的管理;二级调度管理包括Application内部计算模型的管理以及多样化计算模型的管理

8、请列举出曾经修改过的/etc/下面的文件,并说明修改要解决什么问题?

答:/etc/profile这个文件,主要是用来配置环境变量。让hadoop命令可以在任意目录下

面执行。

9、Hadoop中job和tasks之间的区别是什么?
首先通过jobTYacker接收到了用户的操作请求之后,就会产生job任务,job然后将任务 分配给tasks分配给多个机器去并行的执行,通过将job任务分解为多个任务并行的 执行,提高了执行的效率。
11、Maperduce处理过程
(1)输入文件(File)
(2)格式化输入文件(I叩utFormat)
|(3)分割器(InputSplit)
(4)RecordReader
(5)Mapper
⑹分区和洗牌(Partition & Shuffle)
⑺Sort ⑻ Reducer
(9)格式化输出(OutputFormat)
12、 Zookeeper的做什么的
zookeeper是一个开放源码的分布式协调服务,是一种典型的分布式数据一致性解决方案。 由雅虎创建,贡献给了 apache。利用zookeeper可以实现数据发布订阅、负载均衡、命名 服务、分布式协调/通知、集群管理、分布式锁、分布式队列等功能。
13、 试述流计算的一般处理流程,试列举几个流计算的应用领域。
数据实时采集、数据实时计算、实时查询服务
业务分析、实时交通。
14、 Storm 的主要术语包括 Streams、Spouts、Bolts, Topology 和 Stream Groupings,请分别
描述这几个术语。

Streams:是一个无限的Tuple序列。
Spouts: Stream的源头抽象。
Bolts: Streams的状态转换过程。
Topology: Spouts 和 Bolts 组成的网络。
Stream Groupings:用于告知Topology如何在两个组件间进行Tuple的传送。
15、简要描述如何安装配置apache的一个开源hadoop,只描述即可,无需列出具体步骤, 列出具体步骤更好。
(1)使用root账户登录

(2)修改IP
(3)修改host主机名
(4)配置SSH免密码登录
(5)关闭防火墙 ⑹安装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
16、 请列出正常的hadoop集群中hadoop都分别需要启动哪些进程,他们的作用分别都是 什么,请尽董列的详细一些。
答:NameNode:管理集群,存储数据的原信息,并管理记录DataNode中的文件信息。 Secondname:可以做冷备,对一定范围内数据做快照性备份。
Datanode:存储数据
Jobtracker:管理任务,并将任务分配给tasktracker。
Tasktracker:执行 JobTracker 分配的任务。
17、 请写出以下的shell命令
(1)杀死一个job
hadoop job-list
(2)删除HDFS上的/tmp/aaa目录
hadoop fs -rmr /tmp/aaa
(3)加入一个新的存储节点和删除一个节点需要执行的命令
增加一个新的节点在新的几点上执行 Hadoop daemon.sh start datanode Hadooop daemon.sh start tasktracker 

然后在主节点中执行hadoop dfsadmin -refreshnodes 

删除一个节点的时候,只需要在主节点执行hadoopmradmin -refreshnodes 

(4)加入一个新的存储节点和删除一个计算节点需要刷新集群状态命令? hadoop balance

 

18、写一段代码,利用Java api操作HDFS文件系统,实现文件的上传和下载,Hadoop文 件系统地址为HDFS://hadoop:8020,将本地hadoop.txt文件上传至根目录下的hadoop文件 夹中,将HDFS中hadoop文件中的hadoopl.txt下载到本地

 public class App {
public static final String HDFSJPATH= "HDFS://hadoop:8020";

 public static void main(String[] args) throws Exception {
//创建FileSystem
Configuration configuration = new Configuration();
FileSystem fileSystem = FileSystem.get(new URI(HDFS_PATH), configuration, "hadoop");
//文件上传
Path localPath = new Path("hadoop.txt");
Path HDFSPath = new Path("/hadoop");

 fileSystem.copyFromLocalFile(localPath, HDFSPath);
//文件下载
HDFSPath=new Path("/hadoop/hadoop1 .txt");

localPath = new Path("hadoop1 .txt"); 

fileSystem.copyToLocalFile(HDFSPath, localPath);
}
19、请简述MapReduce中的combine和partion的作用 

答:combiner是发生在map的最后一个阶段,其原理也是一个小型的reducer,主要作用 是减少输出到reduce的个数,减少reducer的输入,提高reducer的执行效率。
Partion的主要作用就是指定输出到reduce的个数的。
20、Hive内部表和外部表的区别
Hive创建内部表时,会将数据移动到数据仓库指向的路径;若创建外部表,仅记录数据 所在的路径,不对数据的位置做任何改变。在删除表的时候,内部表的元数据和数据会 被一起删除,而外部表只删除元数据,不删除数据。这样外部表相对来说更加安全些, 数据组织也更加灵活,方便共享源数据。
21、Hbase的rowKey怎么创建比较好?列簇怎么创建比较好?
答:rowKey最好要创建有规则的rowKey,即最好是有序的。HBase中一张表最好只创建

一到两个列族比较好,因为HBase不能很好的处理多个列族•

22、HDFS的体系结构

答:HDFS采用了主从(Master/Slave)结构棋型,•一个HDFS集群是由一个NameN<>de 和若干个DataNode组成的。其中NameNode作为主服务器, 管理文件系统的命名空间和 客户端对文件的访问操作;集群中的DataNode管理存储的数据

23、 hadoop运行原理

答:hadoop的主要核心是由两部分组成,HDFS和mapreduce,首先HDFS的原理就是分 布式的文件存储系统,将一个大的文件,分割成多个小的文件,进行存储在多台服务器 上。Mapreduce的原理就是使用JobTracker和TaskTracker来进行作业的执行。Map就是 将任务展开,reduce是汇总处理后的结果。

24、mapreduce 的原理

答:mapreduce的原理就是将一个MapReduce框架由一个单独的master JobTracker和毎个 集群节点一个slave TaskTracker共同组成。master负责调度构成一个作业的所有任务,这 些的slave上,master监控它们的执行,重新执行已经失败的任务。而slave仅负责执行由maste指派的任务。

25、 文件大小默认为64M,改为128M有啥影响?

答:更改文件的block块大小,需要根据我们的实际生产中来更改block的大小,如果block 定义的太小,大的文件都会被切分成太多的小文件,减慢用户上传效率,如果block定义 的太大,那么太多的小文件可能都会存到一个block块中,虽然不浪费硬盘资源,可是还 是会增加namenode的管理内存压力。

26、请列出正常工作的hadoop集群中hadoop都需要启动哪些进程,他们的作用分别是什么?

NameNode - HDFS名字节点,存储HDFS元数据

SecondaryNameNode -辅助 NameNode 实现 fsimage 文件和 edits 文件的合并

DataNode -存储数据的节点

ResourceManager --负责集群中所有资源的统一管理和分,它接收来自各个节点 (NodeManager)的资源汇报信息,并把这些信息按照一定的策略分配给各个应用程序 与ResourceManger保持通信,监督Container的生命周期管理,监控每个Container的资 源使用(内存、CPU等)情况,追踪节点健康状况,管理日志和不同应用程序用到的附 属服务(auxiliary service)

27、从本地往hadoop集群导数据,导完后发现hadoop上面没有数据,问题可能是什么(自 己总结的不一定准确)

(1)数据节点(DataNode)没有启动。

(2)未关闭安全模式:hadoop dfsadmin -safemode leave

(3)NameNode与集群间网络通讯出现问题,NameNode无法得到DataNode的响应。

28、Hive与HBase的区别

Hive:

(1)数据保存在HDFS上,以HDFS格式保存数据,映射为Hive中的表:结构

(2)支持SQL语言,调用MapReduce

(3)不能做实时操作

(4)相对数据量较小

HBase:

(1) HBase有自己的存储机构

(2)不文持SQL语言,不调用MapReduce

(3)可以支持实时操作

(4)相对数据量大,对于反复使用的数据比较适用

29、  试述 MapReduce Job 和 Storm Topology 的区别与联系。

在Haoop上运行的是MapReduce作业,而在Storm上运行的是“Topology”。但两者的 任务大不相同,其中主要的不同是一个MapReduce作业最终会完成计算并结束运行,而一 个Topology将持续处理信息。

30、 试述Storm框架的工作流程。

客户端提交Topology到Storm集群中;

Nimbus将分配给Supervisor的任务写入Zookeeper;

Supervisor从Zookeeper中获取所分配的任务,并启动Worker进程;

Worker进程执行具体的任务。

31、试述Storm框架实现单词统计的一般流程。

从Spout中发送Stream;

用于分割单词的Bolts将接受的句子分解为独立的单词,将单词作为TUpie的字段名发 送出去;

用于计数的Bolts接受表示单词的Tuple,并对其进行统计;

输出毎个单词以及单词出现过的次数。

32、几种 Stream Grouping 的方式。

ShuffleGropuing;

 FieldsGrouping; 

AllGrouping; 

GlobalGrouping;

 NonGroupmg:
DirectGrouping.
33、 MapReduce中排序犮生在哪几个阶段?
答:一个MapReduce作业由Map阶段和Reduce阶段两部分组成,这两个阶段会对数据 排序,从这个意义上说,MapReduce框架本质上就是一个Distributed Sort。在Map阶段,Map Task会在本地磁盘输出一个按照key排序(采用的是快速排序)的文件(中间可能 产生多个文件,但最终会合并成一个),在Reduce阶段,毎个Reduce Task会对收到的敗 据排序,这样,数据便按照key分成了若干组,之后以组为单位交给reduceO处理。很多 人的误解在Map阶段,以为如果不使用Combiner便不会排序,这是错误的,不管你用不 用Combiner, Map Task均会对产生的数据进行排序C如果没有Reduce Task,则不会排序,
实际上Map阶段的排序就是为了减轻Reduce端排序负载
34、 介绍下Hive下的表结构?
Hive的表逻辑上由存储的数据和描述表格中的数据形式的相关元数据组成。表存储的 数据存放在分布式文件系统里,例如HDFS,元数据存储在关系数据库里,当我们创建一张 Hive的表,还没有为表加载数据的时候,该表在分布式文件系统,例如HDFS上就是一个 文件夹(文件目录)。
35、 hbase的存储结构?
答:Hbase中的毎张表都通过行鍵(rowkey)按照一定的范围被分割成多个子表(HRegion),
默认一个HRegion超过256M就要被分割成两个,由HRegionServer管理,管理哪些 HRegion由Hmaster分配。HRegion存取一个子表时,会创建一个HRegion对象,然后 对表的每个列族(Column Family)创建一个store实例,毎个store都会有0个或多个 StoreFile与之对应,毎个StoreFile都会对应一个HFile, HFile就是实际的存储文件,因 此,一个HRegion还拥有一个MemStore实例。
36、 什么是jobtracker? jobtracker有哪些特别的函数
提示:jobtracker负责接收用户提交的作业,负责启动、跟踪任务执行。是一个rpc服务端 jobtracker 有哪些特别的函数:JobSubmitProtocol
37、 什么是 tasktracker?
提示:mr的客户端,接收jobtracker的发出的指令,用来执行任务的
38、 hadoop中job和task之间是什么关系?
提示:执行一次mr程序就是一个job, job再执行时会划分maptask,reducetaslu task是job 运行作业的一个重要组成部分。

 

39.假设hadoop一个job产生100个task失败了,Hadoop.会怎么样理?

提示: Hadoop客错机制,当一个任务执行失败,jobTracker发送命令重新执行,如果重新执行四次也不行

任务执行失败

(mapred-site. xml)配置文件里<name>mapred.max.attemp<name>

<value>4</value> )

40. MapReduce模型的执行步聚,其核心思想及主要技术有哪些

答: MapReduce主要包括两个步骤: Map和Reduce.  山川行作 为一个记录进程处

出: Map阶段的key-value对的格式是由输入的格式式所决定的,;就是此行的字符文本I:Map阶段的

理,其中key为此行的开头相对于文件的起始位置,value )

输出的key-value对的格式必须同Reduce阶段的输入key-value对的格式相对应。 每个阶段

用户指定。用都将一系列ky-auve对作为输入和输出,其中的键和值的类型为MapReduce

户同时指定两个函数: map函数和reduce 函数。用户自定义的map函数,接受一个输入key-alule 对,然后产生一系列临时中间kyvai对。我们把所有具有相同中间key的临时keyvalule 对聚合在一起,然后 把它们传递给reduce 函数。用户自定义的reduce函数,接受一个中间key和相关的一个value集。它合并这些value,形成一个比较小的value集。通常,每次reduce调用只产生1个输出value。以这种函数式编写的程序能自动的在大规模的普通机器上并行的执行。

MapReduce核心思想是对大数据并行处理,分而治之。做一个计算,如果计算过程中如果数据传输消耗的资源大于计算消耗的资源,考虑在计算过程中,将算法(程序)移动到数据存放的服务器中,再进行计算。

其主要技术: (1) 数据划分和计算任务调度。(2) 数据/代码互定位。(3) 系统优化。(4)出错检测和恢复。

41、简述下HDFS数据读流程;

答:步骤如下,能大致描述清楚流程,没有关键错误即可

(1).跟amenede通信查询元数(ook所在的datanode节点)找到文件块所在的dtamoded服务器

(2)、挑选一台datanode (就近原则,然后随机)服务器,请求建立:socket流

(3) danotn开始发送数据(从磁盘里面读取数据放入流,以packet 为单位来做枚胎)(4),客户端以packet为单位接收,先在本地缓存,然后写入目标文件,后面的相当于是append到前面的block块最后合成最终需要的文件。42、如何查看hadoop进程?并列出hadoop的几个进程名block就窖•.使用 iPs 命令可査看 Vmdoop 进程。Namenode, SecondaryNameMode, Datanode,
RcsourceManager, ModeManager
43、请简述 MapReduce 中 combiner、partition 的作用

 答:combiner:有时一个map可能会产生大董的输出,combiner的作用是在map端对输出先做一次合 丼,以减少两络■传输到reducer的数董。
注意:mapper的输出为combiner的输入,reducer的输入为combiner的輸出。 partition:
把map任务输出的中间结果按照key的苑裡划分成R份取是预先定义的reduce任务的个
数),划分时通常使用hash函数,如:hashOcey'JmodR
这样可以保证一段苑围内的key, —定会由一个reduce任务来处理。
44、HBase的检索支持3种方式是哪些?
答:
(1)通过单个Rowkey访问,即按照某个Rowkey键值进行get操作,这祥获取唯一一条 记录;
(2)通过Rowkey的range进行scan,即通过设置startRowKey和endRowKey,在这个苑 围内进行扫描。这样可以按指定的条件获取一批记彔;
C3)全表扫描,即直接扫描整张表中所有行记录。
45、有如T一个场景,有一个Ki大小的一个文件,里面毎一行是一个词,词的大小不超过 16字节,内存限制大小是1M,要求返回频数最高的100个词,写出解央间隨主要思路。
答:主要考察map和reduce的运用分析,能体现出这JI*点即可得分 (1)瓶序读文件中,对于毎个词X,取hasKx)%5000,然后按照该值存到5000个小欠件(记 为f0,fl,".,f4999)中,这样每个文件大概是200k左右,如果其中的有的欠件超过了似大 '小,还可以按照魏的方法继续往下分,苴到分解得到的小欠件的大小都不趄过賊’
(2)对毎个小文件,统计毎个文件中出现的词以反她的跡(可以采用他咖<map 等),并取出出现频率最大的100个词(可以用含100个结点的散小堆),并把■ ^及相 应的频率存入文件,这样又得到了 5000个欠件;
(3)把这5000个文件进行归并(类似与归并排序v,
46、Hive有哪些方式保存元数据,各有哪些优点
三种:内存数据库derby,挺小,不常用。
本地mysqlo.常用远程端mysqlo.不常用网上找了下专业名称:single user mode..multi user mode...remote user mode
47、NameNode 与 SecondaiyNameNode 的区别与联系?
答•• SecondaryNameNode更像是Namenode的一个冷备份,当Namenode宕机之后,可以从 SecondaryNamenode上面恢复部分数据。
48. HBase的检索支持3种方式:
(1)通过单个Rowkey访问,即按照某个Rowkey鍵值进行get操作,这样获取唯一一条 记录:
(2)通过Rowkey的range进行SCan,即通过设置startRowKey和endRowKey,在这个范 围内进行扫描。这样可以按指定的条件获取一批记录;
(3)全表扫描,即直接扫描整张表中所有行记录。
HBASE按单个Rowkey检索的效率是很高的,耗时在!毫秒以下,每秒钟可获取1000~2000 条记录,不过非key列的查询很慢。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值