Hadoop 知识点整理

Hadoop 知识点整理,第1张

Hadoop 知识点整理

1:大数据的核心特征有哪些?
容量(Volume):数据的大小决定所考虑的数据的价值和潜在的信息;
种类(Variety):数据类型的多样性;
速度(Velocity):指获得数据的速度
可变性(Variability):妨碍了处理和有效地管理数据的过程。 
真实性(Veracity):数据的质量
复杂性(Complexity):数据量巨大,来源多渠道 
低价值密度(value):合理运用大数据,以低成本创造高价值

2:NameNode元数据持久化是如何实现的?
NameNode使用了Fslmage+EditLog整合的方案
滚动将增量的EditLog更新到Fslmage,以保证更近时点的Fslmage和更小的EditLog体积
SecondaryNameNode主要工作是周期性的完成对NomeNode的EditLog向FsImage合并,减少EditLog的体积,减少NameNode的启动时间

3:为什么hadoop中选择hdfs作为分布式文件存储系统?
文件线性按照字节切割成块(block)每个数据块具有偏移量和id等信息
block被分散存放在集群的节点中,具有location
Block具有副本(replication),没有主从概念,副本不能出现在同一个节点
因此在一定程度上块的信息,可以更好的支撑计算向数据移动

4:Hadoop中hdfs是一个主从集群,请说出非HA模式下都有什么角色以及每个角色的功能?
NameNode:NameNode负责存储和管理文件元数据,并维护了一个层次型的文件目录树
DateNode:DataNode负责存储文件数据(Block块),并提供Block块的读写
dataNode与NameNode维持心跳,并汇报自己持有的block信息

5:请简述HDFS下载文件的流程
首先当要下载一个文件的时候,一定会跟NN进行连接,从NN获得文件的数据块信息,
NN返回的数据块信息一定是根据距离进行排序的,就近读取
然后客户端根据数据块信息去与DN建立连接,获取块信息
客户端下载完数据块之后,要进行数据完整性校验

6:hadoop集群部署模式有哪几种?请把每一种都简单描述一下
单机模式:平时不运行任何守护进程,只有在调试代码的时候才暂时的运行守护进程
伪分布式模式:所有的守护进程(Master和Slave类型)都运行在一台服务器上
完全分布式模式:Master和Slave类型的守护进程运行在不同的服务器上

7:请简述主从集群的优点和缺点;并就hdfs主从集群的缺点给出解决方法
主从集群优点就是简单,能够保证数据一致性
缺点是单点故障:HA来解决
内存受限,压力过大:联邦机制解决
NN进行免密设置
搭建ZK集群
配置core-site.xml;在该文件中配置zk集群的信息
配置hdfs-site.xml;在该文件中配置NN物理节点映射和通信地址;配置JN通信地址和数据存储路径;配置HA角色切换的代理类和实现方法;配置zkfc主备切换的时候连接主备的连接方式;配置开启ZKFC

8:请简述在hdfs 高可用集群模式下,第一次启动集群的步骤以及相关命令
先启动JN hadoop-daemon.sh start journalnode
格式化NN   hdfs namenode -format 
启动NN   hadoop-daemon.sh start namenode 
同步另一个NN  hdfs namenode -bootstrapStandby
格式化zk  hdfs zkfc  -formatZK  
启动集群 start-dfs.sh
9:在HDFS HA高可用集群中,为什么没有了SNN?
SNN的作用主要是帮助NN将FSimage和Editlog进行合并,减少重启时间
而在HA高可用集群中,有备机NN帮助主NN进行数据备份,并且数据同步性也由JN集群解决;
因此不再需要SNN

10:请简述搭建HDFS HA模式需要的配置步骤
先启动JN hadoop-daemon.sh start journalnode
格式化NN   hdfs namenode -format 
启动NN   hadoop-daemon.sh start namenode 
同步另一个NN  hdfs namenode -bootstrapStandby
格式化zk  hdfs zkfc  -formatZK  
启动集群 start-dfs.sh

11:请简述hdfs高可用集群中使用ZK集群进行选举的原因
1.Zookeeper集群提供临时节点,可以保证同一时刻创建临时节点只有一个客户端成功
2.临时节点创建成功后,Zookeeper可以在客户端发生错误或者断开连接的时候及时删除临时节点
3.Zookeeper提供watch监听机制,可以让客户端注册监听器监听临时目录;保证锁被删除后可以及时监测到

12:在启动hdfs高可用集群的时候;为什么要先启动JN而不是先启动NN?
JN集群的作用是同步主NN和备机NN之间的元数据;
如果先启动NN会导致主备NN数据不一致;
因此要先启动JN集群

13:请简述hadoop1.x中MapReduce计算模型中的角色和功能
JobTracker 资源管理和任务调度
TaskTracker 任务管理和任务汇报
Client 获取切片清单;上传任务相关文件到hdfs;提交任务到JobTracker

14:假设HDFS集群已经搭建;集群地址为hdfs://tshadoopcluster;并且在HDFS中有一个/root/data.txt文件,配置文件已经下载配置到项目中,请以root用户获取data.txt的文件块信息,写出相关代码
public class TestDFS {
   public Configuration hdfsConfiguration = null;
   public FileSystem hdfsFileSystem = null;
   @Before
   public void  createConnection() throws Exception {
       //构建连接肯定需要配置信息;所以创建连接的步骤应该是
       //1 获取要连接的hadoop的配置信息
       hdfsConfiguration = new Configuration(true);
       //2 自定义连接信息创建对象
       hdfsFileSystem = FileSystem.get(URI.create("hdfs://tshadoopcluster"),hdfsConfiguration,"root");
   }
   @Test
   public void testGetFileInfo() throws IOException {
       Path hdfsFile = new Path("/root/data.txt");
       //获取文件块信息需要的参数
       FileStatus fileStatus = hdfsFileSystem.getFileStatus(hdfsFile);
       //按照字节获取文件块信息
       BlockLocation [] blockLocations = hdfsFileSystem.getFileBlockLocations(fileStatus,0,fileStatus.getLen());
       //打印文件块信息                                   
       for(BlockLocation b : blockLocations){
           System.out.println(b.toString());
       }
   }
   @After
   public void closeConnection() throws Exception {
       hdfsFileSystem.close();
   }
}

15:如果只需要搭建HDFS HA集群;请分析具体的实现步骤
NN进行免密设置
搭建ZK集群
配置core-site.xml;在该文件中配置zk集群的信息
配置hdfs-site.xml;在该文件中配置NN物理节点映射和通信地址;
配置JN通信地址和数据存储路径;
配置HA角色切换的代理类和实现方法;
配置zkfc主备切换的时候连接主备的连接方式;
配置开启ZKFC
 

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5635706.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-16
下一篇 2022-12-16

发表评论

登录后才能评论

评论列表(0条)

保存