


版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、单选题1. 下面哪个程序负责 HDFS 数据存储。a) NameNode b)Jobtracker c)Datanode d)secondaryNameNode e)tasktracker 答案 C datanode2. HDfS 中的 block 默认保存几份?a) 3份b)2份c)1份d)不确定 答案A默认3分3. 下列哪个程序通常与 NameNode 在一个节点启动?a) SecondaryNameNode b)DataNode c)TaskTracker d)Jobtracker答案 D4. Hadoop 作者a)Martin Fowler b)Kent Beck c)Doug cut
2、ting 答案 C Doug cutting5. HDFS 默认 Block Sizea)32MB b)64MB c)128MB答案: 1.X 版本是 64M2. X版本是128M6. 下列哪项通常是集群的最主要瓶颈a)CPU b)网络c)磁盘10 d)内存答案:C磁盘7. Doug Cutting 所创立的项目的名称都受到其家人的启发,以下项目不是由他创立的项目是A HadoopB NutchCLuceneDSolr答案: D8. 配置Hadoop时,JAVA_HOME包含在哪一个配置文件中ABCD 答案:hadoop-default.xmlhadoop-env.sh hadoop-site
3、.xml configuration.xslB9. Hadoop 配置文件中, hadoop-site.xml 显示覆盖 hadoop-default.xml 里的内容。在版本 0.20 中, hadoop-site.xml被分离成三个XML文件,不包括A conf-site.xmlBmapred-site.xmlCcore-site.xmlDhdfs-site.xml答案: A10. HDFS默认的当前工作目录是 的值需要在哪个配置文件内说明A. mapred-site.xmlB. core-site.xmlC.hdfs-site.xmlD. 答案:以上均不是B11. 关于Hadoop单机模
4、式和伪分布式模式的说法,正确是ABCD 答案:两者都起守护进程,且守护进程运行在一台机器上单机模式不使用 HDFS但加载守护进程两者都不与守护进程交互,避免复杂性后者比前者增加了 HDFS输入输出以及可检查内存使用情况 D12. 下列关于Hadoop API的说法错误的是A.Hadoop 的文件 API 不是通用的,只用于HDFS文件系统B.Configuration 类的默认实例化方法是以HDFS系统的资源配置为基础的C.FileStatus 对象存储文件和目录的元数据D.FSDataInputStream 是 java.io.DataInputStream 的子类答案:A13. HDFS的
5、NameNode负责管理文件系统的命名空间,将所 有的文件和文件夹的元数据保存在一个文件系统树中, 这些 信息也会在硬盘上保存成以下文件:A .日志B. 命名空间镜像C. 两者都是答案: C14. HDFS的 namenode保存了一个文件包括哪些数据块,分 布在哪些数据节点上,这些信息也存储在硬盘上。A .正确B.错误答案: B知识点:在系统启动的时候从数据节点收集而成的15.Secondary namenode就是namenode出现问题时的备用节点八、A .正确B.错误答案: B知识点: 它和元数据节点负责不同的事情。 其主要功能就是周期性将元数据节点的命名 空间镜像文件和修改日志合并,
6、以防日志文件过大。合并过后的命名空间镜像文件也在 Secondary namenode 保存了一份,以防 namenode 失败的时候,可以恢复。16. HDFS的是基于流数据模式访问和处理超大文件的需求而 开发的,默认的最基本的存储单位是64M,具有高容错、高可靠性、高可扩展性、高吞吐率等特征,适合的读写任务是A 一次写入,少次读写B. 多次写入,少次读写C. 一次写入,多次读写D. 多次写入,多次读写 答案: C17. HDFS无法高效存储大量小文件,想让它能处理好小文件,比较可行的改进策略不包括A. 利用SequenceFile、MapFile、Har等方式归档小文件B. 多Master
7、设计C. Block大小适当调小D. 调大name node内存或将文件系统元数据存到硬盘里 答案: D18. 关于HDFS的文件写入,正确的是A.B.C.D.答案:支持多用户对同一文件的写操作 用户可以在文件任意位置进行修改 默认将文件块复制成三份存放 复制的文件块默认都存在同一机架上C19. Hadoop fs 中的 -get 和 -put 命令操作对象是A.文件B.目录C.两者都是答案:C20. Namenode 在启动时自动进入安全模式, 在安全模式阶段,说法错误的是A.B.C.D.答案:安全模式目的是在系统启动时检查各个DataNode 上数据块的有效性根据策略对数据块进行必要的复制
8、或删除 当数据块最小百分比数满足的最小副本数条件时,会自动退出安全模式 文件系统允许有修改D21. 下列关于HDFS为存储MapReduce并行切分和处理的数据做的设计,错误的是ABCD 答案:FSDataInputStream 扩展了 DataInputStream 以支持随机读 为实现细粒度并行,输入分片 (Input Split) 应该越小越好 一台机器可能被指派从输入文件的任意位置开始处理一个分片 输入分片是一种记录的逻辑划分,而 HDFS 数据块是对输入数据的物理分割 B多选题1. 关于 SecondaryNameNode 哪项是正确的?a) 它是 NameNode的热备b) 它对内
9、存没有要求c) 它的目的是帮助 NameNode合并编辑日志,减少 NameNode启动时间d) SecondaryNameNode 应与 NameNode 部署到一个节点答案 C D2. 下列哪项可以作为集群的管理?a)Puppet b)Pdsh c)Cloudera Manager d)Zookeeper答案 1: ABC3. 配置机架感知的下面哪项正确a) 如果一个机架出问题,不会影响数据读写b) 写入数据的时候会写到不同机架的DataNode中c) MapReduce 会根据机架获取离自己比较近的网络数据答案 ABC具体可以参考hadoop 机架感知 -加强集群稳固性,该如何配置 ha
10、doop 机架感知4. Client 端上传文件的时候下列哪项正确a) 数据经过 NameNode传递给DataNodeb) Client 端将文件切分为 Block ,依次上传c) Client只上传数据到一台 DataNode,然后由 NameNode负责 Block复制工作答案 B5. 下列哪个是 Hadoop 运行的模式a)单机版b)伪分布式c)分布式答案 ABC6. Cloudera 提供哪几种安装 CDH 的方法a)Cloudera manager b)Tarball c)Yum d)Rpm答案:ABCD具体可以参考Hadoop CDH四种安装方式总结及实例指导简答题1. Hado
11、op集群可以运行的3个模式?1)单机(本地)模式 ;2)伪分布式模式 ;3)全分布式模式 ;2. 单机(本地)模式中的注意点?在单机模式(standalone )中不会存在守护进程,所有东西都运行在一个 JVM上。这里 同样没有 DFS使用的是本地文件系统。单机模式适用于开发过程中运行MapReduce程序,这也是最少使用的一个模式。3. 伪分布模式中的注意点?伪分布式(Pseudo)适用于开发和测试环境,在这个模式中,所有守护进程都在同一台 机器上运行。4. 全分布模式又有什么注意点?N 台主机组成一个 Hadoop 集群,Namenode 运行的主机, Datanode全分布模式通常被用于
12、生产环境,这里我们使用Hadoop 守护进程运行在每台主机之上。这里会存在运行的主机, 以及 task tracker 运行的主机。 在分布式环境下, 主节点和从节点会分开。5. Hadoop 是否遵循 UNIX 模式?是的,在 UNIX 用例下, Hadoop 还拥有“ conf ”目录。6. Hadoop 的核心配置是什么?Hadoop 的核心配置通过两个 xml 文件来完成: 1,hadoop-default.xml ;2,hadoop-site.xml 。 这些文件都使用 xml 格式,因此每个 xml 中都有一些属性, 包括名称和值, 但是当下这 些文件都已不复存在。7. 那当下又该
13、如何配置?Hadoop 现在拥有 3 个配置文件: 1,core-site.xml ;2,hdfs-site.xml ;3,mapred-site.xml 。 这些文件都保存在 conf/ 子目录下。8. fs.mapr.working.dir 只是单一的目录?fs.mapr.working.dir 只是一个目录。9. hdfs-site.xml 的 3 个主要属性?决定的是元数据存储的路径以及DFS的存储方式(磁盘或是远端)dfs.data.dir 决定的是数据存储的路径fs.checkpoint.dir 用于第二 Namenode10. 如何退出输入模式?退出输入的方式有:1,按ESC 2
14、,键入:q (如果你没有输入任何当下)或者键入:wq(如果你已经输入当下) ,并且按下 Enter。11. “ jps ”命令的用处?这个命令可以检查 Name node、Data node、Task Tracke、Job Tracker是否正常工作。12. 如何重启 Namenode?点击 stop-all.sh,再点击 start-all.sh。键 入 sudo hdfs ( Enter ), su-hdfs ( Enter ), /etc/init.d/ha ( Enter ), 及 /etc/init.d/hadoop-0.20-namenode start ( Enter)。13.
15、Fsck的全名?全名是: File System Check。14. mapred.job.tracker 命令的作用?可以让你知道哪个节点是 Job Tracker。15. /etc /init.d 命令的作用是?/etc /init.d 说明了守护进程(服务)的位置或状态,其实是LINUX 特性,和 Hadoop 关系不大。16. 如何在浏览器中查找 Namenode? 如果你确实需要在浏览器中查找 Namenode ,你不再需要 localhost:8021 ,Namenode 的 端口号是 50070 。17. hadoop-env.sh 是用于做什么的?hadoop-env.sh 提
16、供了 Hadoop 中.JAVA_HOME的运行环境。18. Master 文件是否提供了多个入口?是的你可以拥有多个 Master 文件接口。19. Hadoop-env.sh 文件当下的位置?hadoop-env.sh 现在位于 conf。20. 在 Hadoop_PID_DIR中,PID代表了什么?PID代表了“ Process ID'。21. /var/hadoop/pids 用于做什么?/var/hadoop/pids 用来存储 PID。22. Hadoop 需求什么样的网络?Hadoop核心使用Shell (SSH来驱动从节点上的服务器进程,并在主节点和从节点之 间使用 p
17、assword-less SSH连接。23. 全分布式环境下为什么需求password-less SSH?这主要因为集群中通信过于频繁, Job Tracker需要尽可能快的给 Task Tracker发布任务。24. SSH工作的端口号是?SSH工作的端口号是 NO.22,当然可以通过它来配置,22是默认的端口号。25. 为什么SSH本地主机需要密码?在SSH中使用密码主要是增加安全性,在某些情况下也根本不会设置密码通信。26. 如果在SSH中添加key,是否还需要设置密码?是的,即使在 SSH中添加了 key,还是需要设置密码。27. 假如 Namenode 中没有数据会怎么样?没有数据的
18、 Name node就不能称之为 Name node,通常情况下,Name node肯定会有数 据28. 当Job Tracke宕掉时,Namenode会发生什么?当Job Tracker失败时,集群仍然可以正常工作,只要Name node没问题。29. 是否可以在 Windows 上运行 Hadoop?你最好不要这么做, Red Hat Linux 或者是 Ubuntu 才是 Hadoop 的最佳操作系统。在 Hadoop 安装中, Windows 通常不会被使用, 因为会出现各种各样的问题。 因此, Windows 绝对不是 Hadoop 的推荐系统。30. 简要描述如何安装配置一个apa
19、che开源版hadoop,描述即可,列出步骤更好1. 配置主机名2. 配置 Hosts3. 配置面密码互通4. 安装 JDK5. 安装 hadoop6. 配置 hadoop(1) 修改 hadoop-env.sh(2) 修改 core-site.xml(3) 修改 hdfs-site.xml(4) 修改 mapred-site.xml(5) 修改 yarn-site.xml(6) 修改 slaves7. 配置hadoop的环境变量8. 格式化 namenode32. 请列出正常工作的hadoop集群中hadoop都需要启动哪些进程,他们的作用分别是什么?NameNode - hdfs名字节点,
20、存储 hdfs元数据SecondaryNameNode -辅助 NameNode 实现 fsimage 文件和 edits 文件的合并DataNode -存储数据的节点ResourceManager -负责集群中所有资源的统一管理和分,它接收来自各个节点 (NodeManager )的资源汇报信息,并把这些信息按照一定的策略分配给各个应用程序NodeManager -是YARN中每个节点上的代理,它管理Hadoop集群中单个计算节点,包括与ResourceMa nger保持通信,监督 Con tai ner的生命周期管理,监控每个Con tai ner的资源使用(内存、CPU等)情况,追踪节点
21、健康状况,管理日志和不同应用程序用到的附属服务(auxiliary service)33. 请写出以下执行命令1 )杀死一个job?hadoop job -kill job_id2) 删除hdfs上的/tmp/aaa目录hadoop fs -rmdir /tmp/aaa3加入一个新的存储节点和删除一个计算节点需要刷新集群状态命令?hadoop bala nee5. 请列出你所知道的 hadoop调度器,并简要说明其工作方法?(1) 默认的调度器FIFO(2) 计算能力调度器 Cap acity Scheduler(3) 公平调度器 Fair Scheduler(4) 适用于异构集群的调度器LA
22、TE(5) 适用于实时作业的调度器Deadline Scheduler 和 Constraint-based Scheduler |6. 请列出在你以前工作中所使用过的开发map reduce的语言?Java7. 当前日志采样格式为34. hive 有哪些方式保存元数据,各有哪些特点?Hive原生使用derby作为元数据库,无法并发调用hive可以将 Hive 元数据保存在 mysql 数据库中 远程服务器模式,在服务器端启动一个 MetaStoreServer ,客户端利用 Thrift 协议通过 MetaStoreServer 访问元数据库35. 请简述 hadoop 怎么样实现二级排序?
23、有两种方法进行二次排序,分别为: buffer and in memory sort和 value-to-key conversion 。对于 buffer and in memory sort,主要思想是:在 reduce() 函数中,将某个 key 对应的所有 value保存下来,然后进行排序。 这种方法最大的缺点是:可能会造成 out of memory 。对于 value-to-key conversion ,主要思想是:将 key 和部分 value 拼接成一个组合 key (实现 WritableComparable 接口或者调用 setSortComparatorClass 函数
24、),这样 reduce 获取的结果便是先按 key 排序,后按 value 排序的结果,需要注意的是,用户需要自己实现 Paritioner ,以便只按照 key 进行 数据划分36. 简述 hadoop 实现 join 的几种方法?2.1 reduce side joinreduce side join 是一种最简单的 join 方式,其主要思想如下:在 map 阶段, map 函数同时读取两个文件 File1 和 File2 ,为了区分两种来源的 key/value 数据对, 对每 条数据打一个标签( tag ),比如: tag=0 表示来自文件 File1 , tag=2 表示来自文件
25、File2 。即: map 阶 段的主要任务是对不同文件中的数据打标签。在reduce阶段,reduce函数获取key相同的来自Filel和File2文件的value list ,然后对于同一个 key , 对 File1 和 File2 中的数据进行 join (笛卡尔乘积) 。即: reduce 阶段进行实际的连接操作。2.2 map side join之所以存在 reduce side join ,是因为在 map 阶段不能获取所有需要的 join 字段,即:同一个 key 对应 的字段可能位于不同 map 中。 Reduce side join 是非常低效的,因为 shuffle 阶段
26、要进行大量的数据传 输。Map side join 是针对以下场景进行的优化:两个待连接表中,有一个表非常大,而另一个表非常小,以 至于小表可以直接存放到内存中。 这样,我们可以将小表复制多份, 让每个 map task 内存中存在一份 (比 如存放到 hash table 中),然后只扫描大表:对于大表中的每一条记录 key/value ,在 hash table 中查找 是否有相同的 key 的记录,如果有,则连接后输出即可。为了支持文件的复制, Hadoop 提供了一个类 DistributedCache ,使用该类的方法如下:(1 )用户使用静态方法 DistributedCache.
27、addCacheFile() 指定要复制的文件,它的参数是文件的 URI (如果是 HDFS 上的文件,可以这样: hdfs:/namenode:9000/home/XXX/file,其中 9000 是自己配置的NameNode 端口号)。JobTracker在作业启动之前会获取这个 URI列表,并将相应的文件拷贝到各个 TaskTracker 的本地磁盘上。 ( 2 )用户使用 DistributedCache.getLocalCacheFiles() 方法获取文件目 录,并使用标准的文件读写 API 读取相应的文件。2.3 SemiJoinSemiJoin ,也叫半连接, 是从分布式数据库
28、中借鉴过来的方法。 它的产生动机是: 对于 reduce side join , 跨机器的数据传输量非常大,这成了 join 操作的一个瓶颈,如果能够在 map 端过滤掉不会参加 join 操作 的数据,则可以大大节省网络 IO 。实现方法很简单:选取一个小表,假设是 File1 ,将其参与 join 的 key 抽取出来,保存到文件 File3 中, File3 文件一般很小,可以放到内存中。在 map 阶段,使用 DistributedCache 将 File3 复制到各个 TaskTracker 上,然后将 File2 中不在 File3 中的 key 对应的记录过滤掉,剩下的 redu
29、ce 阶段的工作与 reduce side join 相同。2.4 reduce side join + BloomFilter在某些情况下, SemiJoin 抽取出来的小表的 key 集合在内存中仍然存放不下, 这时候可以使用 BloomFiler 以节省空间。BloomFilter 最常见的作用是:判断某个元素是否在一个集合里面。它最重要的两个方法是: add() 和 contains() 。最大的特点是不会存在 false negative ,即:如果 contains() 返回 false ,则该元素一定不在 集合中,但会存在一定的 true negative ,即:如果 conta
30、ins() 返回 true ,则该元素可能在集合中。 因而可将小表中的 key 保存到 BloomFilter 中,在 map 阶段过滤大表,可能有一些不在小表中的记录没 有过滤掉(但是在小表中的记录一定不会过滤掉) ,这没关系,只不过增加了少量的网络 IO 而已。37. 请用Java实现非递归二分查找?public static int binarySearch(IntegersrcArray,int des)/ 第一个位置 .int low=0;/最高位置 .数组长度 -1,因为下标是从 0开始的 .int high=srcArray.length-1;/当low"指针”和hig
31、h不重复的时候. while(low<=high)/ 中间位置计算 ,low+ 最高位置减去最低位置 ,右移一位 ,相当于除 2.也可以用 (high+low)/2int middle=low+(high-low)>>1);/ 与最中间的数字进行判断 ,是否相等 ,相等的话就返回对应的数组下标.if(des=srcArraymiddle)return middle;/如果小于的话则移动最高层的"指针"else if(des<srcArraymiddle)high=middle-1;/ 移动最低的 "指针"else low=midd
32、le+1;return -1;38. 请简述 mapreduce 中,combiner, partition 作用?Partition :分区操作是shuffle操作中的一个重要过程,作用就是将map的结果按照规则分发到不同reduce中进行处理,从而按照分区得到多个输出结果Combi ner:每一个 MapperTask可能会产生大量的输出,combi ner的作用就是在 Map perTask端对输出先做一次合并,以减少传输到reducerTask的数据量39用mapreduce如何处理数据倾斜问题1. 增加reduce的jvm内存2. 增加reduce个数3. customer part
33、iti on4. 其他优化的讨论.5. reduce sort merge 排序算法的讨论6. 正在实现中的 hive skewed join.7. pipeli ne8. dist inct9. index 尤其是 bitmap index40 Hive中内部表和外部表的区别内部表现有表后有数据,数据在hive的hdfs目录下管理外部表先有数据后有表,数据不再hive的hdfs目录下管理删除表时,内部表对应文件被删除删除表时,外部表对应的文件不会被删除41用JAVA使用非递归二分查找参看题3742HADOOP如何处理大量小文件(1)Hadoop ArchiveHadoop Archive或者
34、HAR,是一个高效地将小文件放入 HDFS块中的文件存档工具,它能够 将多个小文件打包成一个 HAR文件,这样在减少 namenode内存使用的同时,仍然允许对 文件进行透明的访问。对某个目录/foo/bar下的所有小文件存档成 /outputdir/ zoo.har :hadoop archive -archiveName zoo.har -p /foo/bar /outputdir当然,也可以指定 HAR的大小(使用-Dhar.block.size)。HAR是在Hadoop file system之上的一个文件系统,因此所有fs shell命令对HAR文件均可用, 只不过是文件路径格式不一
35、样,HAR的访问路径可以是以下两种格式:har:/scheme-hostname:port/archivepath/fileinarchivehar:/archivepath/fileinarchive( 本节点 )可以这样查看HAR文件存档中的文件:hadoop dfs -ls har:/user/zoo/foo.har输出:har:/user/zoo/foo.har/hadoop/dir1har:/user/zoo/foo.har/hadoop/dir2使用HAR时需要两点,第一,对小文件进行存档后,原文件并不会自动被删除,需要用户 自己删除;第二,创建HAR文件的过程实际上是在运行一个m
36、ap reduce作业,因而需要有一个 hadoop 集群运行此命令。此外,HAR还有一些缺陷:第一,一旦创建,Archives便不可改变。要增加或移除里面的文件,必须重新创建归档文件。第二,要归档的文件名中不能有空格,否则会抛出异常,可以将空格用其他符号替换(使用-Dhar.space.replacement.enable=true 禾口 -Dhar.space.replacement 参数 )。(2)Sequence filesequenee file由一系列的二进制 key/value组成,如果为 key小文件名,value为文件内容, 则可以将大批小文件合并成一个大文件。Hadoop-
37、0.21.0 中提供了 SequenceFile,包括 Writer, Reader和 SequenceFileSorter 类进行写, 读和排序操作。如果 hadoop 版本低于 0.21.0 的版本,实现方法可参见 3。(3)CombineFileInputFormatCombineFileInputFormat 是一种新的 inputformat ,用于将多个文件合并成一个单独的 split, 另外,它会考虑数据的存储位置。43hdfs 中的 block 默认保存几份?3份44 hive udf继承那个类创建类继承UDF自己编写一个evaluate方法,返回值和参数任意。45. 请列出正
38、常工作的hadoop集群中hadoop都需要启动哪些 进程,他们的作用分别是什么?参看题3246、Maperduce处理过程1) 输入文件(File)2) 格式化输入文件(InputFormat )3) 分割器(InputSplit)4) RecordReader5) Mapper6) 分区和洗牌(Partition & Shuffle )7) Sort8) Reducer9) 格式化输出(OutputFormat )47、Hadoop 流程参看题4848、Hadoop上传细节使用HDFS提供的客户端开发库 Clie nt,向远程的Name node发起RPC请求;Name node会
39、检查要创建的文件是否已经存在,创建者是否有权限进行操作,成功 则会为文件创建一个记录,否则会让客户端抛出异常;当客户端开始写入文件的时候,开发库会将文件切分成多个packets,并在内部以数据队列"data queue"的形式管理这些 packets,并向Name node申请新的blocks,获取用来 存储replicas的合适的data nodes列表, 列表的大小根据在 Name node中对replicati on的设 置而定。开始以pipeline (管道)的形式将 packet写入所有的replicas中。开发库把 packet 以流的方式写入第一个data n
40、ode,该data node把该packet存储之后,再将其传递给在此pipeli ne中的下一个data node,直到最后一个data node,这种写数据的方式呈流水线的形式。最后一个data node成功存储之后会返回一个ack packet,在pipeli ne里传递至客户端,在客户端的开发库内部维护着"ack queue",成功收到data node返回的ack packet后会从"ack queue"移除相应的 packet。如果传输过程中,有某个data node出现了故障,那么当前的pipeli ne会被关闭, 出现故障的 datano
41、de 会从当前的 pipeline 中移除, 剩余的 block 会继续剩下的 datanode 中 继续以 pipeline 的形式传输,同时 Namenode 会分配一个新的 datanode ,保持 replicas 设定 的数量。49、Zookeeper 的做什么的zookeeper 是一个开放源码的分布式协调服务,是一种典型的分布式数据一致性解决方 案。由雅虎创建,贡献给了apache 。利用 zookeeper 可以实现数据发布订阅、负载均衡、命名服务、分布式协调 / 通知、集 群管理、分布式锁、分布式队列等功能。50、NIO是什么NIO是jdk4提供的一种新的io方式,也叫做非阻
42、塞式10,特点是可以在非阻塞模式下进行工作,ACCEPT CONNECT READ WRITE都不会产生阻塞,从而可以解决 BIO在高并发场景下遇到的问题。51、Hbase的细节hbase中的表在行的方向上分隔为多个HRegion,分散在不同的 RegionServer中这样做的目的是在查询时可以将工作量分布到多个RegionServer中以提高速度region 由startkey,endkey)表示HRegion 是 hbase 分布式存储和负载均衡的最小单元要注意HRegion不在hdfs中,而是在RegionServer的内存中,在内存(其实也有数据在 本地文件系统中, 因为内存空间毕竟
43、是有限的) 中存储数据以提高查询性能, 对于修改会将 数据同步到 hdfs 中,以持久化数据。hbase 中的数据按照 rowkey 的字典顺序(字典顺序! !先比较第一位 如果相同再比较 第二位。)按序存储,所以当以 rowkey 查询数据时,可以提高速度。hregion的分裂,当hregion变的很大时会分裂成两个,存放到不同的 RegionServer 中, 防止一个 Region 过大,导致查询其中数据时速度很慢hbase 的系统结构: 主要有 clie nt master region Server zookeeper52、什么是分布式分布式处理则是将不同地点的, 或具有不同功能的,
44、 或拥有不同数据的多台计算机通过 通信网络连接起来, 在控制系统的统一管理控制下, 协调地完成大规模信息处理任务的计算 机系统。53 函数式编程的好处:1. 代码简洁,开发快速2. 接近自然语言,易于理解3. 更方便的代码管理4. 易于“并发编程”5. 代码的热升级 (函数式编程没有副作用, 只要保证接口不变, 内部实现是外部无关 的。所以,可以在运行状态下直接升级代码,不需要重启,也不需要停机。 )54在linux中,比如启动hadoop,会打印很多日志,什么命令可以不显示这些日志?可以通过在命令前增加上 nohup 命令来实现55 concurrent 的 map 加锁是加部分 锁 是加的
45、哪部分?数据分段上56 环形缓冲区集群搭配的作用和优化?每个 MapperTask 有一个环形内存缓冲区, 用于存储 map 任务的输出。 默认大小 100MB (io.sort.mb 属性),一旦达到阀值 0.8(io.sort.spill.percent ) ,一个后台线程把内容写到 (spill) 磁盘的指定目录( mapred.local.dir )下的新建的一个溢出写文件。写磁盘前, 要 partition,sort,Combiner 。如果有后续的数据, 将会继续写入环形缓冲区中, 最终写入下一个溢出文件中。环形缓冲区是一种缓冲区技术, 通过首尾相接的方式循环使用缓冲区, 解决了数
46、据量过 大时缓冲区大小过大的问题。57、 zookeeper 原理leader 和所有的 follower 都可以提供查询功能 只有 leader 能够提供增删改的功能,如果客户端连接 follower 表示要进行增删改, follower 会将请求转发给 leader 来处理。所有的增删改的操作都会有一个版本号, 这个版本号是递增唯一的, 用来记录提案的顺 序。如何选老大?选老大情况 1:集群刚启动时,谁当老大都可以,一般是最先启动的做老大选老大情况 2:老大挂了,集群会暂时停止对外服务进入选举阶段,所有follower都会广播一个自己的所持有的最高版本给整个集群, 当大家收到其他 foll
47、woer 发过来的最高 版本信息后,就会进行投票,投给收到的版本信息最高的 follwer ,每个机器只能发一票, 此时选择集群中数据版本最高的机器做老大, 任意一个 follower 当发现自己收到了过半的投 票(自己也可以投给自己) ,可以认为获得了选举胜利,可以成为 leader 了。老大如何决定一个提案是否通过?如果老大自己说了算, 那么如果刚好老大挂了, 其他人不知道老大同一的提案, 可 能就造成新选出来的 leader 不知道之前老大同意过的提案,从而造成违反一致性。不可行如果老大把提案发给所有人, 所有人都同意了才能通过提案, 这时如果集群中任意 一台机器出问题,投票都无法进行,
48、相当于存在单节点故障的可能。不可取。折中一下, 老大收到提案后,发给所有人,所有人收到后都要回复老大,当老大收 到过半同意的投票时,则通过这个提案。这样一来, 极端的情况下只要集群中有过半的机器还活着, 选出来的老大是一定知 道之前老大最后提案的。! 引申出来的结论是, zookeeper 集群必须过半存活才能正常工作!!又引申出来的结论是, 偶数台机器提供的集群可靠性和偶数 -1 台机器提供的可靠 性是相同的!所以 zookeeper 集群中机器的数量最好是基数个。58、 hadoop 的 namenode 可以存那些数据包括文件和 Block 之间关系的信息、 Block 数量信息、 Bl
49、ock 和 DataNode 之间的关系信 息59 NIO 和 BIO传统的 BIO 面临的问题:在执行如下操作时会产生阻塞:ACCEPT CONNECT READ WRITE 在高并发场景下,如上的方法产生的阻塞可能会产生一些无法避免的问题。在开发服务器程序时, 通常针对于每一个客户端都要创建一个线程来处理, 而线程 的开辟和运行是相当耗费资源的, 服务器能够运行的并发线程数量是很有限的。 在高并发场 景下, 大量的客户端并发连接导致服务器创建大量线程, 会直接影响服务器的性能。 而一些 场景下客户端连接后传输的数据并不多, 只是保持连接的状态, 此时创建的大量线程闲置着 浪费服务器资源。
50、所以我们想到用少量的线程来处理多个客户端的连接, 但是这种方式下传 统 BIO 会有阻塞的问题决定了是无法实现的。NIO也叫做非阻塞式10,特点是可以在非阻塞模式下进行工作, ACCEPT CONNECT READ WRITE时都不会产生阻塞,从而可以解决 BI0在高并发场景下遇到的问题。BI0:面向流操作的是字节或字符InputStream OutputStream Reader Writer流只能单向传输数据 操作的是字节或字符NI0:面向通道操作的是缓冲区Channel Buffer Selector通道可以双向的传输数据 操作的是缓冲区60 聚类包括那些?一堆数据,怎么用聚类中的一个算法实现?K-MEANSk-means 算法接受输入量 k ;然后将 n 个数据对象划分为 k 个聚类以便使得所获得的聚类 满足: 同一聚类中的对象相似度较高; 而不同聚类中的对象相似度较小。 聚类相似度是利用 各聚类中对象的均值所获得一个“中心对象” (引力中心)来进行计算的。k-means 算法的工作过程说明如下:首先从 n 个数据对象任
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 冬季户外作业防寒措施
- 2025年高校教研室教师发展计划
- 五年级语文下册阅读理解教学计划
- 小学计算机室远程学习计划
- 智能零售电子价签租赁与市场营销服务协议
- 婚姻忠诚协议与股权代持权益调整及处理协议
- 初三化学下学期教学计划的课外拓展活动
- 离婚诉讼管辖法院指定与婚后共同债务处理及财产分割协议
- 抖音青少年网络保护合作协议书
- 新消费品牌线上线下全渠道分销合作协议
- 主要粮食作物机收减损技术-农业农机技术培训课件
- 2024届新高考数学大题训练:数列(30题)(解析版)
- 08J907 洁净厂房建筑构造
- 中医内科学:汗证
- 2024年药学服务技能大赛考试题库大全-上(单选题)
- 山东省菏泽市鄄城县2023-2024学年八年级下学期7月期末历史试题
- 医疗设备巡检和维修保养管理制度
- 2024年云南省中考历史试卷(含答案)
- 初中历史资本主义制度的初步确立 作业设计
- 浙江省温州市2024年高一下学期期末教学质量统测英语试题(B)含解析
- 教科版科学五年级下册《课本问题课后研讨题》参考答案
评论
0/150
提交评论