Skip to content

1、谈谈Zookeeper理解

Zookeeper 作为一个分布式的服务框架,主要用来解决分布式集群中应用系统的一致性问题( 解决单点故障问题 )。

Zookeeper 并不是用来专门存储数据的,它的作用主要是用来维护和监控你存储的数据的状态变化,通过监控这些数据状态的变化,从而可以达到基于数据的集群管理

总结: Zookeeper=文件系统+通知机制

spark

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

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

/ect/sudoers

/etc/hosts

/etc/sysconfig/network

/etc/inittab

3、宕机分为HMaster宕机和HRegisoner宕机,如果是HRegisoner宕机,HMaster会将其所管理的region重新分布到其他活动的RegionServer上,由于数据和日志都持久在HDFS中,该操作不会导致数据丢失。所以数据的一致性和安全性是有保障的。

如果是HMaster宕机,HMaster没有单点问题,HBase中可以启动多个HMaster,通过Zookeeper的Master Election机制保证总有一个Master运行。即ZooKeeper会保证总会有一个HMaster在对外提供服务。

4、offset是每天消息的偏移量

每个日志文件都有一个offset来唯一标记一条信息,由8个自己数字表示,表示此消息在分区中所处的起始位置

每个分区再物理存储层面,由多个logfile组成(segment)

最小的offset表示segment中起始消息的offset

5、hbase中表的特点

大:上亿行,上百万列

无模式:每行都有一个可排序的主键和任意多的列,列可以根据需要动态增加,同一张表中不同的行可以有截然不同的列

面向列的存储和权限控制,列族独立索引

对于为null的列,并不占用存储空间,因此表可以设置的非常稀疏

数据多版本:可以有多个版本,系统自动分配,时间戳为版本号

数据类型单一:只有字节数组 byte[]

129.hbase 表逻辑结构

表有 行 和 列组成,列划分为若干个列族cloumn

表明 test

rowkey 列族1:base_info 列族2:xxx_info

0001 name:zhangsan age:20 address:bj

0002 name:lishi age:50 sex:male address:shanghai hoppies:sing

rowkey:hbase的行索引,按照rowkey字典顺序排序

cell可以锁定一个值:Rowkey+列族+列族下的列的名字+值+时间戳

6、请写出以下的shell命令

1、 杀死一个job

2、 删除hdfs上的 /tmp/aaa目录

3、 加入一个新的存储节点和删除一个节点需要执行的命令

4、 hadoop job –list 得到job的id,然后执 行 hadoop job -kill jobId就可以杀死一个指定jobId的job工作了。

5、 hadoopfs -rmr /tmp/aaa

6、 增加一个新的节点在新的几点上执行

Hadoop daemon.sh start datanode

Hadooop daemon.sh start tasktracker/nodemanager

下线时,要在conf目录下的excludes文件中列出要下线的datanode机器主机名

然后在主节点中执行 hadoop dfsadmin -refreshnodes à下线一个datanode

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

hadoop mradmin -refreshnodes —下线一个tasktracker/nodemanager

7、简答说一下hadoop的map-reduce编程模型

首先map task会从本地文件系统读取数据,转换成key-value形式的键值对集合

使用的是hadoop内置的数据类型,比如longwritable、text等

将键值对集合输入mapper进行业务处理过程,将其转换成需要的key-value在输出

之后会进行一个partition分区操作,默认使用的是hashpartitioner,可以通过重写hashpartitioner的getpartition方法来自定义分区规则

之后会对key进行进行sort排序,grouping分组操作将相同key的value合并分组输出,在这里可以使用自定义的数据类型,重写WritableComparator的Comparator方法来自定义排序规则,重写RawComparator的compara方法来自定义分组规则

之后进行一个combiner归约操作,其实就是一个本地段的reduce预处理,以减小后面shufle和reducer的工作量

reduce task会通过网络将各个数据收集进行reduce处理,最后将数据保存或者显示,结束整个job

8、MR程序运行的时候会有什么比较常见的问题?

比如说作业中大部分都完成了,但是总有几个reduce一直在运行。

这是因为这几个reduce中的处理的数据要远远大于其他的reduce,可能是对键值对任务划分的不均匀造成的数据倾斜。

解决的方法可以在分区的时候重新定义分区规则对于value数据很多的key可以进行拆分、均匀打散等处理,或者是在map端的combiner中进行数据预处理的操作。

9、hive能像关系型数据库那样建多个库吗?

当然能了。

10、请列出你所知道的hadoop调度器,并简要说明其工作方法

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

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

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

11、请描述如何解决Hbase中region太小和region太大带来的结果。

12、hive如何优化

13、怎么设置RDD cache

14、你们数据库如何导入hive的出现什么错误

15、hadoop 的 namenode 宕机怎么解决

16、shuffle阶段你怎么理解

17、数据导入hive的方式

18、如何从SU转到Cloudera?

19、数据库 OLAP OLTP的介绍和比较

20、hive与传统DB的区别

21、搜索引擎会通过日志文件把用户每次检索使用的所有检索串都记录下来,每个查询串的长度为1-255字节。

22、为什么SSH本地主机需要密码?

23、全分布式环境下为什么需求password-less SSH?

24、为什么会出现hadoop

25、运行hadoop集群需要哪些守护进程?

26、HBase简单读写流程?

27、hive是什么

28、怎么样才能实现去掉reduce阶段

29、使用zk来连接集群

30、上千万或上亿数据(有重复),统计其中出现次数最多的前N个数据。

31、hive中存放的是什么?

32、举一个例子说明mapreduce是怎么运行的。

用心去做高质量的内容网站,欢迎 star ⭐ 让更多人发现