大数据实战 Linux 面试题

1.什么是集群技术?集群技术的优点是什么?

 (1)Cluster集群技术可如下定义:一组相互独立的服务器在网络中表现为单一的系统,并以单一系统的模式加以管理。此单一系统为客户工作站提供高可行性的服务。大多数模式下,集群中所有的计算机拥有一个共同的名称,集群内任一系统上运行的服务可被所有的网络客户所使用。Cluster必须可以协调管理各分离的组件的错误和失败,并可透明地向Cluster中加入组件。

一个Cluster包含多台(至少二台)拥有共享数据存储空间的服务器。任何一台服务器运行一个应用时,应用数据被存储在共享的数据空间内。每台服务器的操作系统和应用程序文件存储在其各自的本地储存空间上。Cluster内各节点服务器通过内部局域网相互通讯。

当一台节点服务器发生故障时,这台服务器上所运行的应用程序将在另一节点服务器上被自动接管。当一个应用服务发生故障时,应用服务将被重新启动或被另一台服务器接管。当以上的任一故障发生时,客户都将能很快连接到新的应用服务上。

(2)优点:高可扩展性;高可用性HA。集群中的一个节点失效,它的任务可传递给其他节点。可以有效防止单点失效;

高性能。负载平衡集群允许系统同时接入更多的用户;

高性价比。可以采用廉价的符合工业标准的硬件构造高性能的系统。

 

 

2.NTP是什么?有什么用?

(1) NTP全名“Network TimeProtocol”,即网络时间协议,是由RFC 1305定义的时间同步协议,用来在分布式时间服务器和客户端之间进行时间同步。

NTP基于UDP报文进行传输,使用的UDP端口号为123。

使用NTP的目的是对网络内所有具有时钟的设备进行时钟同步,使网络内所有设备的时钟保持一致,从而使设备能够提供基于统一时间的多种应用。对于运行NTP的本地系统,既可以接收来自其他时钟源的同步,又可以作为时钟源同步其他的时钟,并且可以和其他设备互相同步。

(2)NTP服务器主要用来同步网络中各个计算机的时间的协议。它的用途是把计算机的时钟同步到世界协调时UTC,其精度在局域网内可达0.1ms,在互联网上绝大多数的地方其精度可以达到1-50ms。它可以使计算机对其服务器或时钟源(如石英钟,GPS等等)进行时间同步,它可以提供高精准度的时间校正,而且可以使用加密确认的方式来防止病毒的协议攻击。

3.SSH是什么?有什么用?

(1)SSH 为 Secure Shell 的缩写,由 IETF 的网络小组(Network Working Group)所制定;SSH 为建立在应用层基础上的安全协议。SSH 是较可靠,专为远程登录会话和其他网络服务提供安全性的协议。利用 SSH 协议可以有效防止远程管理过程中的信息泄露问题。SSH最初是UNIX系统上的一个程序,后来又迅速扩展到其他操作平台。SSH在正确使用时可弥补网络中的漏洞。

(2)传输层协议 [SSH-TRANS]

提供了服务器认证,保密性及du完整性。此外zhi它有时还提供压缩功能。 SSH-TRANS 通常运行在TCP/IP连接上,也可能用于其它可靠数据流上。 SSH-TRANS 提供了强力的加密技术、密码主机认证及完整性保护。该协议中的认证基于主机,并且该协议不执行用户认证。更高层的用户认证协议可以设计为在此协议之上。

 

用户认证协议 [SSH-USERAUTH]

用于向服务器提供客户端用户鉴别功能。它运行在传输层协议 SSH-TRANS 上面。当SSH-USERAUTH 开始后,它从低层协议那里接收会话标识符(从第一次密钥交换中的交换哈希H )。会话标识符唯一标识此会话并且适用于标记以证明私钥的所有权。 SSH-USERAUTH 也需要知道低层协议是否提供保密性保护。

 

连接协议 [SSH-CONNECT]

将多个加密隧道分成逻辑通道。它运行在用户认证协议上。它提供了交互式登录话路、远程命令执行、转发 TCP/IP 连接和转发 X11 连接。

 

4.简述证书登录过程。

首先,客户端生成证书的私钥和公钥。私钥放在客户端,公钥上传到服务端(远程登陆端)。一般为了安全,访问有黑客拷贝客户端的私钥,客户端在生成私钥时,会设置一个密码,以后每次登录ssh服务器时,客户端都要输入密码解开私钥(如果工作中,你使用了一个没有密码的私钥,有一天服务器被黑了,你是跳到黄河都洗不清)。

然后,服务器添加信用公钥。把客户端生成的公钥,上传到ssh服务器,添加到指定的文件中,这样,就完成ssh证书登录的配置了。

5. HDFS的设计理念是什么?

存储超大文件;这里的“超大文件”是指几百MB、GB甚至TB级别的文件;最高效的访问模式是 一次写入、多次读取(流式数据访问)。HDFS存储的数据集作为hadoop的分析对象。在数据集生成后,长时间在此数据集上进行各种分析。每次分析都将设计该数据集的大部分数据甚至全部数据,因此读取整个数据集的时间延迟比读取第一条记录的时间延迟更重要;运行在普通廉价的服务器上。HDFS设计理念之一就是让它能运行在普通的硬件之上,即便硬件出现故障,也可以通过容错策略来保证数据的高可用。

6.简述YARN的架构。

Yarn从整体上还是属于master/slave模型,主要依赖于三个组件来实现功能。

第一个就是ResourceManager,是集群资源的仲裁者,它包括两部分:一个是可插拔式的调度Scheduler,一个是ApplicationManager,用于管理集群中的用户作业。

第二个是每个节点上的NodeManager,管理该节点上的用户作业和工作流,也会不断发送自己Container使用情况给ResourceManager。

第三个组件是ApplicationMaster,用户作业生命周期的管理者它的主要功能就是向ResourceManager(全局的)申请计算资源(Containers)并且和NodeManager交互来执行和监控具体的task。

 

7.HBase特点是什么?

第一,强一致性读写。HBase 不是最终一致性数据存储,这让它很适合高速计数聚合类任务。

第二,自动分片。HBase 表通过region分布在集群中。数据增长时,region会自动分割并重新分布。

第三,RegionServer 自动故障转移。

第四,Hadoop/HDFS 集成。HBase 支持本机外HDFS 作为它的分布式文件系统。

第五,MapReduce集成。HBase 通过MapReduce支持大并发处理, HBase 可以同时做源(Source)和汇(Sink)。

第六,Java 客户端 API。HBase 支持易于使用的 Java API 进行编程访问。

第七,Thrift/REST API。支持Thrift 和 REST 的方式访问HBase。

第八,Block Cache 和 布隆过滤器(Bloom Filter)。HBase支持 Block Cache 和 布隆过滤器进行查询优化,提升查询性能。

第九,运维管理。HBase提供内置的用于运维的网页和JMX 指标。

第十,大表(BigTable)。一个表可以有上亿行,上百万列。

第十一,面向列(族)的存储、检索与权限控制。

第十二,稀疏。表中为空(null)的列不占用存储空间。

 

8.HBase是如何存储数据的?

(1)HRegion是HBASE存储数据的最小单元。一个Table可以有一个或多个Region,他们可以在一个相同的HRegionServer上,也可以分布在不同的HRegionServer上,一个HRegionServer可以有多个HRegion,他们分别属于不同的Table。HRegion由多个Store构成,每个Store对应了一个Table在这个HRegion中的一个Column Family,即每个Column Family就是一个集中的存储单元。

(2)Store是HBase中存储的核心,它实现了读写HDFS功能,一个Store由一个MemStore 和0个或多个StoreFile组成。

(3)MemStore是一个写缓存(In Memory Sorted Buffer),所有数据会先写入WAL日志,后写入MemStore中,由MemStore根据一定的算法将数据Flush到地层HDFS文件中(HFile),通常每个HRegion中的每个 Column Family有一个自己的MemStore。

(4)HFile(StoreFile是HFile的简单封装,即StoreFile底层就是HFile) 用于存储HBase的数据(Cell/KeyValue)。在HFile中的数据是按RowKey、Column Family、Column排序,对相同的Cell(即这三个值都一样),则按timestamp倒序排列。

(5)WAL即Write Ahead Log,在早期版本中称为HLog,它是HDFS上的一个文件,如其名字所表示的,所有写操作都会先保证将数据写入这个Log文件后,才会真正更新MemStore,最后写入HFile中。WAL文件存储在/hbase/WALs/${HRegionServer_Name}的目录中。

上面图中还有一个BlockCache:读缓存,每次新查询的数据会缓存在BlockCache中。

HBase的LSM存储思想

LSM树(Log-Structured Merge Tree),它的核心思路就是假定内存足够大,因此不需要每次有数据更新就必须将数据写入到磁盘中,等达到指定的大小限制后将这些修改操作批量写入磁盘。

LSM简易模型

 

9.HRegionServer的主要功能是什么?

RegionServer就是存放Region的容器,直观上说就是服务器上的一个服务。RegionServer是真正存储数据的节点,最终存储在分布式文件系统HDFS。当客户端从ZooKeeper获取RegionServer的地址后,它会直接从RegionServer获取数据。对于HBase集群而言,其重要性要比Master服务大。

10.Zookeeper的作用是什么?

RegionServer非常依赖ZooKeeper服务,ZooKeeper在HBase中扮演的角色类似一个管家。ZooKeeper管理了HBase所有RegionServer的信息,包括具体的数据段存放在哪个RegionServer上。客户端每次与HBase连接,其实都是先与ZooKeeper通信,查询出哪个RegionServer需要连接,然后再连接RegionServer。

简单总结Zookeeper在HBase集群中的作用如下:对于服务端,是实现集群协调与控制的重要依赖。对于客户端,是查询与操作数据必不可少的一部分

需要注意的是:当Master服务挂掉时,依然可以进行能读能写操作;但是把ZooKeeper一旦挂掉,就不能读取数据了,因为读取数据所需要的元数据表hbase:meata的位置存储在ZooKeeper上。可见zookeeper对于HBase而言是至关重要的。

11.Hive有什么特点?

第一,海量结构化数据分析汇总。

第二,将复杂的MapReduce编写任务简化为SQL语句。

第三,灵活的数据存储格式,支持JSON,CSV,TEXTFILE,RCFILE,SEQUENCEFILE,ORC(Optimized Row Columnar)这几种存储格式。

 

12.Metastore是什么?它有什么作用?它包含哪些内容?

Hive Metastore(HMS)是一项单独的服务,不是Hive的一部分,甚至不必位于同一集群上。HMS将元数据存储在Hive、Impala、Spark和其他组件的后端。

.Metastore是数据的数据,主要是描述数据的属性的信息。它是用来支持如存储位置、历史数据、资源查找、文件记录等功能。元数据算是一种电子式目录。为了达到编制目录的目的,必须在描述并收藏数据的内容或特色,进而达成协助数据检索的目的。

Metastore即元数据服务,作用是:客户端连接metastore服务,metastore再去连接MySQL数据库来存取元数据。有了metastore服务,就可以有多个客户端同时连接,而且这些客户端不需要知道MySQL数据库的用户名和密码,只需要连接metastore 服务即可。

包含DBS 表,TBLS 表,PARTITIONS 表和SDS 表。

13.表和外部表有什么不同?

(1)建表时带有external关键字为外部表,否则为内部表

(2)内部表和外部表建表时都可以自己指定location

(3)删除表时,外部表不会删除对应的数据,只会删除元数据信息,内部表则会删除

(4)其他用法是一样的

14.HiveServer和HiveServer2有什么不同?

HiveServer2 是一种可选的 Hive 内置服务,可以允许远程客户端使用不同编程语言向 Hive 提交请求并返回结果。HiveServer2 是 HiveServer1 的改进版,主要解决了无法处理来自多个客户端的并发请求以及身份验证问题。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值