Hadoop学习常见问题及答案整理(二)

1、为什么要把分布式文件系统中的文件抽象(分割)成块?

(1)文件大小可以大于网络中任意一个节点的磁盘容量,即可以不存在同一磁盘上。文件切分之后的块可以存储在集群中的任意一个磁盘上。

(2)用块而不是整个文件作为存储单元,大大简化了存储子系统的设计和管理。(块的大小是固定的,那么一个磁盘能存储多少个块就很好计算)

(3)块适合数据备份,来提高数据的容错能力(多副本策略)和可用性(数据本地化)。

注意:元数据和数据块不一块存储,而是由其他系统单独管理。

 

2、为什么HDFS的块是64M128M?太大或太小会有什么问题?

(1)大点是为了最小化寻址开销,磁盘传输数据的时间会明显大于定位这个块开始位置的时间,所以说传输一个由多个块组成的文件的时间往往取决于磁盘的传输速度,(寻址时间10ms,磁盘传输速度100M/s ,寻址时间占传输时间1%算,那么块的大小设置为100M,那么随着磁盘驱动器传输速度的提升,块的大小就可以设置的更大 )所以说块的大小不能太小。

(2)如果太大也不行,如果块太大,一个map任务一般处理一个块大小的数据,那么每个map任务的处理时间就会比较长,那么整个作业的运行时间也会比较长。

3、防火墙是干什么的?为什么要关闭防火墙?怎么关闭防火墙?

(1)防火墙是对我们的服务器进行的一种保护,但是有时候也会妨碍集群间的相互通讯,所以我们需要关闭防火墙,

(2)怎么关闭防火墙?

两种方法:

1)临时性关闭

service  iptables stop/start

如果要在防火墙中设置某些端口的开关,可以修改编辑/etc/sysconfig/iptables

2)永久性关闭

chkconfig  iptables off/on

(3)关闭防火墙之后,要重新启动linux操作系统,即输入reboot命令

(4)查看防火墙状态

service iptables  status

 

4SSH是什么?为什么要配置ssh免密码登录?

    SSH是一个可以在应用程序中提供安全通信的一个协议,通过SSH可以安全地进行网络数据传输,它的主要原理就是利用非对称加密体系,对所有待传输的数据进行加密,保证数据在传输时不被恶意破坏、泄露或者篡改。但是hadoop使用ssh主要不是用来进行数据传输的,hadoop主要是在启动和停止的时候需要主节点通过SSH协议将从节点上面的进程启动或停止。也就是说如果不配置SSH免密码登录对hadoop的正常使用也没有任何影响,只是在启动和停止hadoop的时候需要输入每个从节点的用户名的密码就可以了,但是我们可以想象一下,当集群规模比较大的时候,比如上百台,如果每次都要输入每个从节点的密码,那肯定是比较麻烦点,所以这种方法肯定是不可取的,所以我们要进行SSH免密码的配置,而且目前远程管理环境中最常使用的也是SSH(Secure Shell)

 

5、为什么要格式化namenode?

    格式化是对HDFS这个分布式文件系统中的Datanode进行分块,统计所有分块后的初始元数据,然后存储在Namenode中,格式化后,查看core-site.xml配置文件中hadoop.tmp.dir指定的目录下是否有dfs目录,如果有,说明格式化成功)

格式化成功之后的目录:

edits:是编辑日志文件,有很多

fsimage:是namenode元数据在内存中满了之后,持久化保存到的文件。

fsimage*.md5是校验文件,用于校验fsimage的完整性

seen_txid是hadoop的版本

version文件里保存的是namespaceID:namenode的唯一ID

clusterID:集群ID,namenode和datanode的集群ID应该一致,表明是一个集群。

在hadoop用户下,使用hadoop目录下的bin目录下的hadoop命令,

即先切换到hadoop用户下的hadoop安装目录下(不是bin目录下的hadoop)

然后输入命令bin/hadoop namenode -format进行namenode格式化操作。

点击看“Hadoop学习常见问题及答案总结系列(一)”

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是一些常见的 Hadoop 面试问题及其答案: 1. 什么是 HadoopHadoop 是一个开源的分布式计算框架,用于存储和处理大规模数据集。它可以在普通的硬件设备上实现分布式存储和计算,通过 MapReduce 算法分布式处理数据。 2. Hadoop 的主要构件是什么? Hadoop 的主要构件包括 HDFS、MapReduce、YARN 和 Hadoop Common。 - HDFS 是一个分布式文件系统,用于存储大规模数据集。 - MapReduce 是一种编程模型,用于处理大规模数据集。 - YARN 是一个资源管理器,用于管理集群资源和任务的调度。 - Hadoop Common 包含 Hadoop 的核心功能和工具,提供必要的库和文件。 3. Hadoop 的优点是什么? Hadoop 的优点包括: - 可以处理大规模数据集。 - 可以在普通的硬件设备上实现分布式存储和计算。 - Hadoop 的可扩展性非常好,可以随着数据集的增长而增长。 - Hadoop 是开源的,不需要支付额外的许可费用。 - Hadoop 生态系统非常丰富,有许多工具和应用程序可用于处理和分析数据。 4. Hadoop 中的 MapReduce 是什么? MapReduce 是一种编程模型,用于处理大规模数据集。它包括两个阶段: - Map 阶段:将输入数据划分为小块,并对每个块执行一个映射函数,将数据转换为键值对。 - Reduce 阶段:将映射函数的输出作为输入,执行一个 reduce 函数,将键值对合并为单个结果。 MapReduce 可以有效地处理大规模数据集,并且可以在分布式集群上并行运行。 5. Hadoop 的核心组件 HDFS 是什么? HDFS 是一个分布式文件系统,用于存储大规模数据集。它将数据划分为块,并将这些块存储在多个节点上,以实现分布式存储。HDFS 可以自动进行备份和恢复,并且可以在节点故障时保持数据的可靠性。 6. Hadoop 中的 YARN 是什么? YARN 是一个资源管理器,用于管理集群资源和任务的调度。它允许多个应用程序在同一集群上共享资源,并动态分配资源以满足应用程序的需求。YARN 还支持多种编程模型,包括 MapReduce、Spark 和 Flink。 7. Hadoop 中的数据压缩是什么? Hadoop 中的数据压缩可以减少存储和网络传输的数据量,从而提高性能。Hadoop 支持多种数据压缩格式,包括 Gzip、Snappy 和 Lzo。 8. Hadoop 中的序列化是什么? Hadoop 中的序列化是将数据结构转换为字节流的过程。这是因为在 Hadoop 中,数据通常以字节流的形式进行处理和传输。Hadoop 支持多种序列化格式,包括 Avro、Thrift 和 Protocol Buffers。 9. Hadoop 中的 ZooKeeper 是什么? ZooKeeper 是一个分布式协调服务,用于管理集群中的配置信息、命名服务和分布式锁等。它可以确保分布式应用程序的协调和一致性。 10. Hadoop 中的 Hive 是什么? Hive 是一个基于 Hadoop 的数据仓库工具,可以将结构化数据映射到 Hadoop 的 HDFS 上,并提供 SQL 接口进行查询和分析。Hive 支持基于 MapReduce 的查询和 Tez 查询引擎,并可以与其他工具如 Pig 和 Spark 集成使用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值