大数据基础总结1

1.HDFS中的一个块设计的大小为128M,是因为程序为了减小寻址开销,减低namenode的元数据存储
2.YARN服务功能中的Container对任务运行环境的抽象,封装了CPU、内存等多维资源以及环境变量、启动命令等任务运行相关的信息
3.Secondary namenode就是namenode出现问题时的备用节点,必要时可以直接取代namenode ( ×)
4.Yarn的默认配置是禁用uber组件,不允许JVM重用,但用户可以通过配置来启用uber组件来允许JVM重用
5.SecondaryNameNode是NameNode 的热备,它的目的是帮助 NameNode 合并编辑日志,减少 NameNode 启动时间和压力,提高NameNode的整体性能
6.对多个map任务的输出,按照不同的分区,通过网络copy到不同的reduce节点。
对多个map任务的输出进行合并、排序。写reduce函数自己的逻辑,对输入的key、value处理,转换成新的key、value输出。
把reduce的输出保存到文件中。
Reducetask阶段可以分组
7.执行一个job. 如果这个job的输出路径已经存在,那么程序会 ( CD )
A.覆盖这个输出路径
B.抛出警告,但是能够继续执行
C. 抛出一个异常,然后退出
D.抛出文件路径已存在的异常

8.配置机架感知的下面哪项正确 (ABC )
A.如果一个机架出问题,不会影响数据读写
B.写入数据的时候会写到不同机架的DataNode中
C.MapReduce会根据机架获取离自己比较近的网络数据
D.随机找寻datanode节点进行数存储,可以跨数据中心
9.对mapreduce数据类型理解正确( AB)
A.数据类型都实现Writable接口
B.hadoop的序列化中数据可以被序列化进行网络传输和文件存储
C.Mapreduce中的数据类型和java一模一样
D.Mapreduce中的数据类型完全覆写java中基本类型
10.下面对Combiner描述正确的是( ABC)
A. Combiner的作用提高程序执行效率
B. Combiner的作用减少对本地磁盘的访问次数。
C.Combiner过程设置则执行,否则不执行
D.以上都不正确

11.简单描述Shuffle过程环形缓冲区的作用?
数据从map()输出,经过Partitioner分区操作,在进入环形缓冲区。默认情况下,环形缓冲区大小值为100MB。当map输入的数据进入环形缓冲区的量达到80MB以上时,那么开始执行溢写过程,溢写过程中如果有其他数据进入,那么由剩余的百分之20反向写入。最终溢写文件经过合并、排序后落入本地磁盘。

12.HDFS默认的Block块大小是多少?为什么块的大小不能设置太小,也不能设置太大?
(1)默认的块大小是128M,(2)因为HDFS的块设置太小,会增加寻址时间,程序一直在找块的开始位置;如果块设置的太大,从磁盘传输数据的时间会明显大于定位这个块开始位置所需的时间。导致程序在处理这块数据时,会非常慢。其实HDFS块的大小设置主要取决于磁盘传输速率。

13.简述Hdfs的默认副本策略
第一个副本在客户端所处的节点上。如果客户端在集群外(意思就是执行上传的服务器不属于集群的节点),则随机再机架上选一个;第二个副本和第一个副本位于相同机架不同节点上;第三个副本位于不同机架,随机节点。

14.简述hive及其优点
hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供简单的sql查询功能,可以将sql语句转换为MapReduce任务进行运行。 其优点是学习成本低,可以通过类SQL语句快速实现简单的MapReduce统计,不必开发专门的MapReduce应用,十分适合数据仓库的统计分析。

15.简单描述你对Hadoop集群SafeMode模式的理解
集群处于安全模式,不能执行重要操作(写操作),集群属于只读状态。但是严格来说,只是保证HDFS元数据信息的访问,而不保证文件的访问。集群启动完成后,自动退出安全模式,
如果集群处于安全模式,想要完成写操作,需要离开安全模式。
(1)bin/hdfs dfsadmin -safemode get (功能描述:查看安全模式状态)
(2)bin/hdfs dfsadmin -safemode enter (功能描述:进入安全模式状态)
(3)bin/hdfs dfsadmin -safemode leave (功能描述:离开安全模式状态)
(4)bin/hdfs dfsadmin -safemode wait (功能描述:等待安全模式状态)。

16.是否可以在Windows上运行Hadoop?
你最好不要这么做,Red Hat Linux或者是Ubuntu才是Hadoop的最佳操作系统。在Hadoop安装中,Windows通常不会被使用,因为会出现各种各样的问题。因此,Windows绝对不是Hadoop的推荐系统。

17.简答描述以下TextInputFormat怎么进行文件切分?
TextInputFormat根据文件大小将文件拆分成splits,如果单个文件较小,则每个个文件为一个split,并将文件按行分割形成<key,value>对,如果单个文件较大。超过block块默认大小得1.1倍,则会将文件切分为多个split。这一步由MapReduce框架自动完成,其中偏移量包括了回车所占的字符数。将分割好的<key,value>对交给用户定义的map方法进行处理,生成新的<key,value>对。得到map方法输出的<key,value>对后,Mapper会将它们按照key值进行排序,并执行Combine过程,将key至相同value值累加,得到Mapper的最终输出结果。Reducer先对从Mapper接收的数据进行排序,再交由用户自定义的reduce方法进行处理,得到新的<key,value>对,并作为任务的输出结果。

18.假如Namenode中没有数据会怎么样?
首先说明Namenode节点肯定不正常,集群肯定不正常的,没有数据的Namenode就不能称之为Namenode,通常情况下,Namenode肯定会有数据,并且存储的是元数据。

19.如何实现服务器之间的免密登录(便捷版),SSH采用的是什么加密?
实现免密登录步骤:

  1. 在服务器生成密钥对 ssh-keygen -t rsa 三次回车
  2. 发送公钥到本机 ssh-copy-id hostname(服务器主机名,一般先发给自己实现本机免密登录) 输入一次密码
    3.将.ssh文件夹中的文件分别分发至集群中其他服务器(节点)
    SSH SSH 为建立在应用层基础上的安全协议,采用非对称加密(rsa加密算法)

20.简单描述MapReduce不合适对哪些场景的使用,其实问得就是他得缺点?
(1).MapReduce不适合做低延迟数据访问场景的使用。
(2).MapReduce不适合处理大量小文件。
(3).MapReduce不适合处理流式计算。

21.MapReduce的基本数据类型包括哪些?
BooleanWritable ByteWritable IntWritable FloatWritable LongWritable DoubleWritable
Text MapWritable ArrayWritable

22.Hive内部表和外部表的区别?
我们在创建外部表的时候要加个关键字 external
内部表 : 当我们在hive中使用命令删除hive表时 hive所对应的hdfs的目录也会被删除, 元数据库中的数据也被删除
外部表 : 在hive中删除了外部表 而外部表所对应的hdfs目录不会被删除 元数据库被删除。

23.yarn有哪几部分组成,作用分别是什么?调度器主要有哪三种,hadoop默认的是哪一种?
由ResourceManager、NodeManager、ApplicationMaster和Container等组件构成;
ResourceManager:处理客户端请求、监控NodeManager、启动或监控ApplicationMaster、资源的分配与调度
NodeManager:管理单个节点上的资源、处理来自ResourceManager的命令、处理来自ApplicationMaster的命令
ApplicationMaster:负责数据的切分、为应用程序申请资源并分配给内部的任务、任务的监控与容错
Container:Container是YARN中的资源抽象,它封装了某个节点上的多维度资源,如内存、CPU、磁盘、网络等。
FIFO、Capacity Scheduler(容量调度器)和Fair Scheduler(公平调度器)。Hadoop2.7.2默认的资源调度器是Capacity Scheduler(容量调度器)
24.如果需要在namenode节点群起集群,你需要如何配置?
首先确保你得集群配置是正确的,单点启动能够成功,如果要群起我们需要在etc/hadoop/Slaves文件中添加数据节点,也就是从节点,来告诉namenode群起的时候启动那些从节点(datanode)

25.Mapreduce执行过程中,在执行Reduce Task之前主要做哪些工作?
reduce task在执行之前的工作是不断地拉取当前job里每个map task的最终的输出文件,然后将不同maptask中某一分区的数据不断地做merge,也最终形成一个文件作为reduce task的输入文件交给reduce

26.简答描述一下hive中的分区表?
Hive的分区表分为动态分区和静态分区两种模式,分区表实际上就是对应一个HDFS文件系统上的独立的文件夹,该文件夹下是该分区所有的数据文件。Hive中的分区就是分目录,把一个大的数据集根据业务需要分割成小的数据集。在查询时通过WHERE子句中的表达式选择查询所需要的指定的分区,这样的查询效率会提高很多。

27.hdfs-site.xml的3个主要属性?
dfs.name.dir决定的是元数据存储的路径以及HDFS的存储方式(磁盘或是远端)
dfs.data.dir决定的是数据存储的路径
fs.checkpoint.dir用于第二Namenode

28.完全分布模式有什么注意点?
完全分布式集群通常被用于生产环境,这里我们使用N台主机组成一个Hadoop集群,需要合理的搭配个服务器运行节点,Hadoop守护进程运行在每台主机之上。这里会存在Namenode运行的主机,Datanode运行的主机,SecondaryNameNode运行的节点,以及task tracker运行的主机,我们需要设置ResourceManager运行的主机,NodeManager运行的主机。在分布式环境下,主节点和从节点会分开。

29.用一句话总结Combiner的作用和意义?
Combiner的意义就是对每一个MapTask的输出进行局部汇总,以减小网络传输量。

32.列出常用的hdfs 命令(至少10个,并说明命令的作用)
Hadoop fs | hdfs dfs 命令分类

本地文件 -> HDFS
-put 将本地数据上传至hdfs
-copyFromLocal 将本地文件数据拷贝到hdfs
-moveFromLocal 将本地文件数据移动到hdfs,成功后本地数据会删除
-appendToFile 追加一个文件到已经存在的文件末尾

HDFS与HDFS之间
-ls 查看hdfs文件目录
-mkdir 在HDFS上创建目录
-rm 删除文件或者文件夹
-rmr 递归删除
-cp 从一个目录拷贝文件至另一目录
-mv 在HDFS目录中移动文件
-chown 修改文件所属用户权限
-chmod 修改文件所属读写权限
-du -h 文件夹暂用的空间大小
-df -h 查看系统分区情况
-cat 查看文件

HFDS -> 本地
-get 从hdfs下载文件至本地
-getmerge 合并hdfs目录下的文件至本地
-copyToLocal 从hdfs拷贝文件至本地

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值