龙空技术网

Hadoop和hive的常见面试问题,考验你技术的时刻啦

优悠严选 2996

前言:

目前同学们对“hadoop分区表”大约比较着重,姐妹们都想要了解一些“hadoop分区表”的相关文章。那么小编同时在网络上汇集了一些对于“hadoop分区表””的相关内容,希望大家能喜欢,看官们一起来了解一下吧!

Hadoop新节点上线如何操作???

关闭新增节点的防火墙

在 NameNode 节点的 hosts 文件中加入新增数据节点的 hostname

在每个新增数据节点的 hosts 文件中加入 NameNode 的 hostname

在 NameNode 节点上增加新增节点的 SSH 免密码登录的操作

在 NameNode 节点上的 dfs.hosts 中追加上新增节点的 hostname,

在其他节点上执行刷新操作:hdfs dfsadmin -refreshNodes

在 NameNode 节点上,更改 slaves 文件,将要上线的数据节点 hostname 追加到 slaves 文件中

启动 DataNode 节点

查看 NameNode 的监控页面看是否有新增加的节点

请描述mapReduce中排序发生的几个阶段???

map side发生在spill后partition前。

reduce side发生在copy后 reduce前。

mapReduce的四个阶段???

Splitting :在进行map 计算之前,mapreduce 会根据输入文件计算输入分片(inputsplit),每个输入分片(input split)针对一个map 任务。输入分片(input split)存储的并非数据本身,而是一个分片长度和一个记录数据位置的数组,输入分片(input split)往往和hdfs 的block(块)关系很密切,假如我们设定hdfs的块的大小是64mb,如果我们输入有三个文件,大小分别是3mb、65mb 和127mb,那么mapreduce 会把3mb 文件分为一个输入分片(input split),65mb 则是两个输入分片(input split)而127mb 也是两个输入分片(input split),换句话说我们如果在map 计算前做输入分片调整,例如合并小文件,那么就会有5 个map 任务将执行,而且每个map 执行的数据大小不均,这个也是mapreduce 优化计算的一个关键点。

Mapping:就是程序员编写好的map 函数了,因此map 函数效率相对好控制,而且一般map 操作都是本地化操作,也就是在数据存储节点上进行;

Shuffle:描述着数据从map task 输出到reduce task 输入的这段过程。R

Reduce:对Map阶段多个文件的数据进行合并。

两个类TextInputFormat和KeyValueInputFormat的区别是什么???

相同点:TextInputformat和KeyValueTextInputFormat都继承了FileInputFormat类,都是每一行作为一个记录;

区别:TextInputformat将每一行在文件中的起始偏移量作为 key,每一行的内容作为value。默认以 或回车键作为一行记录。KeyValueTextInputFormat 适合处理输入数据的每一行是两列,并用 tab 分离的形式。

简述hadoop的调度器???

FIFO schedular:默认,先进先出的原则

Capacity schedular:计算能力调度器,选择占用最小、优先级高的先执行,依此类推

Fair schedular:公平调度,所有的job具有相同的资源。

如何杀死一个job???

hadoop job -list 拿到job-id,

hadoop job -kill job-id

Hive中的内部表,外部表,分区表、桶表有什么区别和作用?

内部表:数据存储在Hive的数据仓库目录下,删除表时,除了删除元数据,还会删除实际表文件。

外部表:数据并不存储在Hive的数据仓库目录下,删除表时,只是删除元数据,并不删除实际表文件。

分区表:跟RDMS的分区概念类似,将一张表的数据按照分区规则分成多个目录存储。这样可以通过指定分区来提高查询速度。

桶表:在表或分区的基础上,按某一列的值将记录进行分桶存放,即分文件存放,也就是将大表变成小表的意思,这样,涉及到Join操作时,可以在桶与桶间关联即可,大大减小Join的数据量,提高执行效率。

标签: #hadoop分区表