利剑无意之面试题(二)
- 绝对路径用什么符号表示?当前目录、上层目录用什么表示?主目录用什么表示?切换目录用什么命令?
绝对路径: 如/etc/init.d
当前目录和上层目录: ./ ../
主目录: ~/
切换目录: cd
- 查看文件内容有哪些命令可以使用?
vi 文件名 #编辑方式查看,可修改
cat 文件名 #显示全部文件内容
more 文件名 #分页显示文件内容
less 文件名 #与 more 相似,更好的是可以往前翻页
tail 文件名 #仅查看尾部,还可以指定行数
head 文件名 #仅查看头部,还可以指定行数
- HDFS为什么不太适合小文件的存储?
不能高效的对大量的小数据进行存储(大量的小文件会很快沾满nameNode的内存空间)大量的小文件,也会影响NameNode的寻址时间。
1. 小文件过多,会过多占用namenode的内存,并浪费block。
文件的元数据(包括文件被分成了哪些blocks,每个block存储在哪些服务器的哪个block块上),都是存储在namenode上的。
HDFS的每个文件、目录、数据块占用150B,因此300M内存情况下,只能存储不超过300M/150=2M个文件/目录/数据块的元数据。
2. 文件过小,寻道时间大于数据读写时间,这不符合HDFS的设计。
HDFS天生就是为存储大文件而生的,一个块的元数据大小大概在150byte左右,存储一个小文件就要占用150byte的内存,如果存储大量的小文件
很快就将内存耗尽,而整个集群存储的数据量很小,失去了HDFS的意义。
解决方案:
可以将数据合并上传,或者将文件append形式追加在HDFS文件末尾。
- crontab文件的用处,有多少个参数,各是什么含义。
使用crontab你可以在指定的时间执行一个shell脚本或者一系列Linux命令。
六个。
第一个“*” 一小时当中的第几分钟 0-59
第二个“*” 一天当中的第几小时 0-23
第三个“*” 一个月当中的第几天 1-31
第四个“*” 一年当中的第几月 1-12
第五个“*” 一周当中的星期几 0-7(0和7都代表星期日)
【补充】
crontab -e 设置定时任务
-r 删除任务
-l 列出该用户的定时任务
-u 指定定时器的用户名称
- Linux系统是一种典型的多用户系统 ,不同的用户处于不同的地位,拥有不同的权限。为了保护系统的安全性,Linux系统对不同的用户访问同一-文件(包括目录文件)的权限做了不同的规定。那么文件属性一共有多少个字符,各是什么含义?
10个。
(1)0首位表示类型
在Linux中第一个字符代表这个文件是目录、文件或链接文件等等
- 代表文件
?d 代表目录
?c 字符流,装置文件里面的串行端口设备,例如键盘、鼠标(一次性读取装置)
?s socket
?p 管道
?l 链接文档(link file);
?b 设备文件,装置文件里面的可供储存的接口设备(可随机存取装置)
(2)第1-3位确定属主(该文件的所有者)拥有该文件的权限。---User
(3)第4-6位确定属组(所有者的同组用户)拥有该文件的权限,---Group
(4)第7-9位确定其他用户拥有该文件的权限 ---Other
- 软链接和硬链接的区别
软链接文件的大小和创建时间和源文件不同。软链接文件只是维持了从软链接到源文件的指向关系,不是源文件的内容。
硬链接文件和源文件的大小和创建时间一样。硬链接文件的内容和源文件的内容一模一样,相当于copy了一份。
- HDFS的存储机制(读写流程)。
HDFS存储机制,包括HDFS的写入过程和读取过程两个部分
1)客户端向namenode请求上传文件,namenode检查目标文件是否已存在,父目录是否存在。
2)namenode返回是否可以上传。
3)客户端请求第一个 block上传到哪几个datanode服务器上。
4)namenode返回3个datanode节点,分别为dn1、dn2、dn3。
5)客户端请求dn1上传数据,dn1收到请求会继续调用dn2,然后dn2调用dn3,将这个通信管道建立完成。
6)dn1、dn2、dn3逐级应答客户端
7)客户端开始往dn1上传第一个block(先从磁盘读取数据放到一个本地内存缓存),以packet为单位,dn1收到一个packet就会传给dn2,dn2传给dn3;dn1每传一个packet会放入一个应答队列等待应答
8)当一个block传输完成之后,客户端再次请求namenode上传第二个block的服务器。(重复执行3-7步)
1)客户端向namenode请求下载文件,namenode通过查询元数据,找到文件块所在的datanode地址。
2)挑选一台datanode(就近原则,然后随机)服务器,请求读取数据。
3)datanode开始传输数据给客户端(从磁盘里面读取数据放入流,以packet为单位来做校验)。
4)客户端以packet为单位接收,先在本地缓存,然后写入目标文件
- SecondaryNameNode工作机制。
1)第一阶段:namenode启动
(1)第一次启动namenode格式化后,创建fsimage和edits文件。如果不是第一次启动,直接加载编辑日志和镜像文件到内存。
(2)客户端对元数据进行增删改的请求
(3)namenode记录操作日志,更新滚动日志。
(4)namenode在内存中对数据进行增删改查
2)第二阶段:Secondary NameNode工作
(1)Secondary NameNode询问namenode是否需要checkpoint。直接带回namenode是否检查结果。
(2)Secondary NameNode请求执行checkpoint。
(3)namenode滚动正在写的edits日志
(4)将滚动前的编辑日志和镜像文件拷贝到Secondary NameNode
(5)Secondary NameNode加载编辑日志和镜像文件到内存,并合并。
(6)生成新的镜像文件fsimage.chkpoint
(7)拷贝fsimage.chkpoint到namenode
(8)namenode将fsimage.chkpoint重新命名成fsimage
利剑无意之面试题(二)相关推荐
- 利剑无意之面试题(三)
hive的计算是通过什么实现的 hive是搭建在Hadoop集群上的一个SQL引擎,它将SQL语句转化成了MapReduce程序在Hadoop上运行,所以hive的计算引擎是MapReduce,底层存 ...
- 利剑无意之面试题(一)
下列哪项不是zookeeper的应用场景[D] A 服务器节点动态上下线 B统一配置管理 C负载均衡 D实时数据处理 下列哪个不是hbase的Hmaster的功能[D] A ...
- 并查集之面试题 17.07. 婴儿名字
并查集之面试题 17.07. 婴儿名字 前言 一, 面试题 17.07. 婴儿名字 二,解题思路 1, a和b是朋友, b和c是朋友,那a和c也是朋友.这就是典型并查集类型 2, 字典序 3, 三, ...
- 2013年计算机专业对口模拟试题二,计算机对口升学模拟试题全解.doc
计算机对口升学模拟试题全解 2013年计算机专业对口高考模拟试题二 一.选择题 1.计算机硬件系统由( )组成 A.CPU和内存 B.控制器和运算器 C.主机和外设 D.CPU.内存和外存 2.下列叙 ...
- 大学计算机基础实验指导试题,(大学计算机基础实验指导)模拟试题(二)参考答案...
(大学计算机基础实验指导)模拟试题(二)参考答案 (非计算机专业A卷) 一.填空题(共20分,每空1分) 1.电子管2.分时系统.实时系统3..txt 4.主码 5.实体.参照.用户定义6.同轴电缆. ...
- c语言中二次规划函数是哪个好,c语言程序设计规划模拟试题二(含答案).doc
c语言程序设计规划模拟试题二(含答案) C语言程序设计模拟试题二(含答案)1. 下列电子邮件地址中正确的是(其中□表示空格)A) Malin& B) malin@C) Lin□Ma& ...
- 计算机应用基础二00018,2019年10月自学考试00018《计算机应用基础》试题(二)
2019年10月自学考试00018<计算机应用基础>试题(二) 1. [单选题]在Word中,__D______的作用是能在屏幕上显示所有文本内容. (A).标尺 (B).控制框 (C). ...
- 自考c语言程序阅读题,自考C语言程序设计模拟试题二答案.DOC
本资料由广州自考网收集整理,更多自考资料请登录 HYPERLINK "http://www.gzzk.cc" www.gzzk.cc下载 再长的路,一步步也能走完,再短的路,不迈开 ...
- c语言程序设计移动字母,C语言程序设计模拟试题二(含答案)
C语言程序设计模拟试题二(含答案) 1.下列电子邮件地址中正确的是(其中□表示空格) A) Malin&http://www.doczj.com/doc/2969157fa26925c52cc ...
最新文章
- Puppet客户端自动安装脚本
- MySQL DBA面试全揭秘
- wordcloud用来制作中文词云
- java实现base64加密解密
- cnn 验证集 参与训练吗_一个简单的零基础的机器学习教程之二,字母数字验证码识别...
- 9W人脸清洗的问题--20170208
- R语言-plyr包中的函数
- 使用PyTorch实现CNN
- java向上取整和向下取整,万字长文!
- Fisher精确检验【转载】
- 路由器显示DNS服务器异常,路由器dns异常怎么办
- 自学php多久可以工作_php自学要多久,学php难吗,多久能学会?
- 2345恶意篡改修复
- 【bug】vue.runtime.esm.js?2b0e:619 [Vue warn]: Failed to mount component: template or render function
- 社区宽带繁忙是什么意思_十年宽带维修工程师给你解读,为什么宽带越用越慢!...
- 聚合支付PC端-支付宝
- Matlab(4)矩阵
- 推荐电影名字列表04.18
- MES--仓库管理(采购收货)
- python lxml xpath_Python的lxml库学习之XPATH语法