如何学习Hadoop,面试Hadoop工程师有哪些问题

顶级Hadoop管理员面试问题与回答
在2010年,没有人知道什么是Hadoop,但是今天,房间里的大象这个标志已经成为了大数据的宠儿。根据Wikibon, Hadoop市场在2012年,供应商的收入已经有256美元,预计2017年底增加到17亿、程序员、架构师、系统管理员和数据仓库员都在千方百计地学习存储和处理大数据集的Hadoop。开始一个Hadoop管理员面试将会成为一个单调枯燥的工作,如果你没有花足够的时间来准备。
本文为36大数据专业翻译,未经授权转载视为侵权,欲转载授权者联系36大数据网站,并注明出处。
专业人士正在尝试为hadoop开发者和管理者工作,不仅仅是要努力准备hadoop管理者的面试题。当人们处在hadoop开发者的位置,可以自由的准备与管理相关的hadoop面试问题,这对于那些正在准备进入hadoop管理者的角色的人们是很重要的,获得hadoop管理者面试问题的细节。在我之前的TOP100的帖子里的面试问题及答案和TOP50的Hadoop的面试问题,我们列出了所有可能对Hadoop开发面试者问的问题。本文列举了顶级Hadoop管理员的面试问题及答案,这些问题和答案在hadoop管理工作面试时很可能会被问到的。
计算机研究发现Hadoop的技能差距是整个大数据范围内最大的。在大数据的空间里,Hadoop被各行业应用,Hadoop管理的重要性是不容忽视的。无数的行业招聘Hadoop管理人员,确保他们的大数据系统可以在最复杂和动态的环境下被选中。从金融业到政府部门,各行业招聘hadoop管理人员来管理他们的大数据平台。Hadoop管理专业人才的需求量正不断上升,以满足专业人才的缺乏。
如何准备一个Hadoop管理者面试?
Hadoop管理员面试,围绕Hadoop软件安装,配置和维护,测试一个考生的知识范围,一个Hadoop管理员需要基于利益相关者的需求研究实现特定的平台大数据解决方案。这是一个面试者为Hadoop管理员面试所必要的,精通大型数据管理的概念。为了证明自己是一位合格的Hadoop管理员的候选人,确保对于处理Hadoop项目的知识和管理能力,展示特定领域的兴趣和专业知识,具有多任务处理能力和领导能力。
如果你已经申请了Hadoop的管理员工作,那么它值得你花一些时间去回顾这些列在下面的面试问题,当你准备面试时——
Hadoop管理员面试问题与回答
1、 解释不同的配置文件以及它们位于何处
配置文件位于conf子目录。Hadoop有3个不同的配置文件,hdfs-site.xml, core-site.xml 和 mapred-site.xml。
2、 要求运行Hadoop集群的进程是什么
Namenode,DataNode,TaskTracker和JobTracker
3、 你将如何重新启动节点?
最简单的做法是运行停止运行命令shell脚本,即点击stop-all.sh。一旦这样做了,重启NameNode点击start-all.sh。
4、 解释在Hadoop上的不同的调度程序。
FIFO调度——调度系统中不考虑系统中的异质性,但命令工作是基于排队达到的时间。
COSHH——这个计划考虑工作量,调度决策的聚类和用户异质性。
公平分享——Hadoop调度为每个用户定义。这个地方包含一个资源地图以及减少资源上的狭缝。每个用户都可以使用自己的资源去执行这个作业。
5、 列出几个用于执行复制操作的Hadoop命令
fs –copyToLocal
fs –copyFromLocal
6、 什么是指挥用的JPS?
JPS命令用于验证程序,这种程序运行Hadoop集群是否工作。它命令显示输出者的NameNode的现状,Secondary NameNode, DataNode, TaskTracker 和 JobTracker。
7、 当Hadoop部署生产环境时,什么重要的硬件因素应该考虑?
基于应用程序的工作服务和管理服务之间的内存系统的内存需求会有所不同。
操作系统——一个64位操作系统,避免了任何限制,可用于在工作节点上的内存量。
存储——最好是通过移动计算活动数据实现可扩展性和高性能的Hadoop平台设计。
容量——大形的因子磁盘(3.5”)磁盘的成本比较低,相比比较小的形式因素磁盘允许存储更多内容。
网络——两个TOR网络交换机提供了较好的冗余。
计算能力可以在Hadoop集群的Mapreduce槽可用的数量节点决定。
8、 有多少节点可以运行在一个单一的Hadoop集群?
9、 当Hadoop集群上的节点下来会发生什么呢?
文件系统脱机时,Namenode下来了。
10、 什么是hadoop-env.sh下的文件和在文件应设置为Hadoop的工作上的变量?
这个文件提供hadoop的运行环境,包括以下variables-hadoop_classpath,java_home和hadoop_log_dir。java_home变量应为Hadoop运行。
11)除了利用JPS的命令还有任何其他什么方法,你可以检查是否它是工作。
使用命令/ etc / init.d/hadoop-0.20-namenode状态。
12)在一个MapReduce系统,如果HDFS块大小为64 MB,有3个文件的大小127mb,64K和65mb与fileinputformat。在这种情况下,有多少输入将很可能是由Hadoop框架组成。
2个分别为127 MB和65 MB的文件或者一个是64KB的文件。
13)该命令是检验HDFS是否被破坏?
hadoop fsck(文件系统检查)命令用于检查丢失块。
14)列出了一些使用Hadoop生态系统的案例
文本挖掘,图分析,语义分析,情感分析,推荐系统。
15)你怎样让一个Hadoop不工作
Hadoop的工作–清除工作ID。
16)我想看到所有的工作在Hadoop集群上运行。你该怎么做?
使用命令–Hadoop作业–列表,给出了在Hadoop集群上运行的工作列表。
17)是否可以在多个集群中复制文件?如果是,你怎么能做到这一项呢?
是的,它可能的复制文件到多个Hadoop集群,这可以使用分布式复制实现。distcp命令用于内部或跨集群复制。
18)什么是最好的运行Hadoop操作系统?
Ubuntu和Linux是首选的运行Hadoop的操作系统。虽然Windows操作系统也可以用来运行Hadoop的但它会导致一些问题,所以并不推荐。
19)运行Hadoop的网络要求是什么?
SSH是需要运行启动服务器进程从属节点。
一个密码需要更少的SSH在主人,机器,和所有的苦工之间的连接。
20)将press属性设置为true,以确保所有的输出文件压缩在高效的空间使用Hadoop集群上。在特定情况下,如果群集用户不需要对工作进行压缩数据。你建议他做什么?
如果用户不想压缩数据的一个特定的工作就应该创建自己的配置文件并且设置press属性为false。这个配置文件之后作为一个资源加载到相关工作。
21)什么是实施一次最佳实践的NameNode?
它始终是在一个单独的独立的机器更好地部署第二个Namenode。当次级节点部署在一个单独的机器不受主节点干扰的操作。
22)应该多长时间给NameNode重新格式化吗?
Namenode不能格式化。这样做会导致数据完全的丢失。NameNode是一次格式化开始之后,它创造了整个文件系统的元数据和命名空间ID目录结构。
23)如果Hadoop产生了100个任务工作,并且其中一个任务失败。Hadoop该怎么做呢?
任务将再次开始一个新的TaskTracker,并且默认设置逾期不超过4次,(默认值是可以改变的),工作将会失败。
24)你如何添加和删除节点的Hadoop集群?
在HDFS集群中添加新节点,主机名应该被添加到文件然后在DataNode和TaskTracker开始在新的节点。
删除或退役从HDFS集群的节点,主机名应该是从slaves–refreshnodes删除文件执行。
25)您增加复制级别,但注意到该数据已复制。什么原因导致错误?
其实没有任何错误,如果有大量的数据,因为数据复制通常需要在时间的基础上的数据大小作为集群进行数据复制,它可能需要几个小时。
Hadoop管理面试题
1、当你第一次Hadoop集群启动安装过程,你会怎样设置安装程序?
2、你将如何安装新组件或添加到现有的Hadoop集群服务?
3、如果Hive的元数据服务在下降,那么将对Hadoop集群有什么影响?
4、当你建立一个Hadoop集群,你将如何决集群的大小?
5、你怎么在同一集群运行Hadoop和实时进程?
6、如果你得到一个拒绝连接的案例-当登录到一台机器上的集群,可能是什么原因?你将如何解决这个问题?
7、你如何识别和解决长期运行的工作?
8、你怎么决定一个NameNode和Hadoop服务的堆内存的限制?
9、如果Hadoop服务在Hadoop集群上运行缓慢,什么是它的根源,你将如何鉴别呢?
10、有多少数据节点可以运行在一个单一的Hadoop集群?
11、在Hadoop2.0和Hadoop 1.0配置
12、在高可用性的情况下,如果连接待机和活跃节点丢失。这种Hadoop集群将如何影响?
13、ZooKeeper服务在Hadoop 2和Hadoop1所需的最小数目是多少?
14、如果一个Hadoop集群的一些机器硬件质量很低。如何影响集群的性能和整体性能?
15、如何确定一个特定的节点,节点是死的吗?
16、解释“黑名单节点”和“死区节点”之间的区别。
17、你怎么增加NameNode的内存?
18、在Hadoop的调度配置能力。
19、重新启动后的集群之后,如果MapReduce之前的工作现在没有实现,当重新开始的时候可能会出什么错误?
20、说明添加和删除一个节点的Hadoop集群的步骤。
21、在一个大且繁忙的Hadoop集群,如何识别长期运行的工作?
22、当Namenode关闭时,JobTracker做什么?
23、当手动配置Hadoop,这属性文件的修改应配置槽?
24、如何将新用户添加到集群中?
25、推测执行的优势是什么?在什么情况下,推测执行可能不会是有益的?
开放的Hadoop管理员面试题
这些面试题是以个案为基础的,根据——你在哪里申请这个Hadoop管理员角色,你在这个角色是否有一些经验 。请在下面的评论中分享你的Hadoop管理员面试经验。
1、你目前的Hadoop工作符合你目前的项目角色和责任描述吗?
2、哪些工具用在你的项目监测的hadoop集群和节点?
3、你认为在一个集群中会出现多少个节点?
4、你在任何组织中致力于go-live工程吗?
5、哪一种MapReduce版本适合配置你的Hadoop集群?
6、说明在公司任何明显的Hadoop案例情况,有助于最大限度地提高其盈利能力?
7、你怎么从无到有建立Hadoop集群?
8、你遵从什么标准程序部署Hadoop?
9、你将如何管理一个Hadoop系统?
10、你会更喜欢使用哪种工具监控Hadoop和HBase的集群?
上面的列表只是对Hadoop管理员的不同类型的面试问题的概述。然而,Hadoop管理员面试问题基于你的工作经验,来自的业务领域的不同而完全不同。你是否担心没有经验,如果你清楚你的基础以及Hadoop项目的工作经验,公司是愿意雇佣你的。开始最重要的事情,是准备在hadoop管理中准备一个伟大的职业生涯,并且你一定可以成功的掌控一个hadoop管理员面试。为追求卓越和成功努力吧。
文章来源36大数据,微信公众号dashuju36。36大数据是一个专注大数据创业、大数据技术与分析、大数据商业与应用的网站。分享大数据的干货教程和大数据应用案例,提供大数据分析工具和资料下载,解决大数据产业链上的创业、技术、分析、商业、应用等问题,为大数据产业链上的公司和数据行业从业人员提供支持与服务。
责任编辑:
声明:本文由入驻搜狐号的作者撰写,除搜狐官方账号外,观点仅代表作者本人,不代表搜狐立场。
今日搜狐热点当前位置:
时间: 13:43:42
发布:blogchong | 分类:原创-Hadoop大数据 | 评论:2 | 浏览:
谢谢分享,很精彩
Post: 23:06:09
虫虫,写的很好啊!我和你的看法一致
◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。
博客虫微信公众号
阅读最多文章【hadoop面试|hadoop面试技巧】-看准网
我觉得面试有难度
面试总体感觉一般
我觉得面试很容易
面试总体感觉很好
这里的内容对你有帮助?
分享你的工作感受,让更多的职场新人获得帮助!
或,让我们更懂你,就能更多帮到你
我觉得面试有难度
面试总体感觉很好
或,让我们更懂你,就能更多帮到你
我觉得面试有难度
面试总体感觉不好
或,让我们更懂你,就能更多帮到你
我觉得面试有难度
面试总体感觉不好
或,让我们更懂你,就能更多帮到你
我觉得面试有难度
面试总体感觉一般
或,让我们更懂你,就能更多帮到你
我觉得面试一般
面试总体感觉一般
或,让我们更懂你,就能更多帮到你
我觉得面试困难
面试总体感觉不好
或,让我们更懂你,就能更多帮到你
我觉得面试有难度
面试总体感觉一般
或,让我们更懂你,就能更多帮到你
我觉得面试一般
面试总体感觉不好
该职位相关热门公司
17053条面试
1913条面试
看了该职位的还看了
关注看准官方微信
下载看准官方APP
关注看准官方微信
下载看准官方APP
找工作,下载「看准APP」
23982 位HR实时在线
广告等垃圾信息
违禁信息(色情、欺诈、非法传销)
不友善内容(诽谤,人身攻击、骚扰、侵犯隐私)
违法、政治敏感内容
感谢您的举报,我们会尽快处理~
扫描二维码下载&&&&&搜索&“”&&&&&等老鸟等你来聊
小贴士:问题描述的越清楚,越能吸引老鸟来回答哟~
请输入问题
向老鸟咨询
把你关于hadoop的问题大胆的提出来,这里的9位老鸟很乐意为你解答~
写下问题吧~
提交成功!请静静等待老鸟们回答~
扫描二维码
分享到朋友圈,邀请微信好友帮忙解答&&你准备好面试了吗?呀,需要知识!不要慌!这里有一些可能会问到的问题以及你应该给出的答案。
&&Q1.什么是Hadoop?
&&Hadoop是一个开源软件框架,用于存储大量数据,并发处理/查询在具有多个商用硬件(即低成本硬件)节点的集群上的那些数据。总之,Hadoop包括以下内容:
&&HDFS(HadoopDistributedFileSystem,Hadoop分布式文件系统):HDFS允许你以一种分布式和冗余的方式存储大量数据。例如,1GB(即1024MB)文本文件可以拆分为16*128MB文件,并存储在Hadoop集群中的8个不同节点上。每个分裂可以复制3次,以实现容错,以便如果1个节点故障的话,也有备份。HDFS适用于顺序的“一次写入、多次读取”的类型访问。
&&MapReduce:一个计算框架。它以分布式和并行的方式处理大量的数据。当你对所有年龄&18的用户在上述1GB文件上执行查询时,将会有“8个映射”函数并行运行,以在其128MB拆分文件中提取年龄&18的用户,然后“reduce”函数将运行以将所有单独的输出组合成单个最终结果。
&&YARN(YetAnotherResourceNagotiator,又一资源定位器):用于作业调度和集群资源管理的框架。
&&Hadoop生态系统,拥有15多种框架和工具,如Sqoop,Flume,Kafka,Pig,Hive,Spark,Impala等,以便将数据摄入HDFS,在HDFS中转移数据(即变换,丰富,聚合等),并查询来自HDFS的数据用于商业智能和分析。某些工具(如Pig和Hive)是MapReduce上的抽象层,而Spark和Impala等其他工具则是来自MapReduce的改进架构/设计,用于显著提高的延迟以支持近实时(即NRT)和实时处理。
&&Q2.为什么组织从传统的数据仓库工具转移到基于Hadoop生态系统的智能数据中心?
&&Hadoop组织正在从以下几个方面提高自己的能力:
&&现有数据基础设施:
&&主要使用存储在高端和昂贵硬件中的“structureddata,结构化数据”
&&主要处理为ETL批处理作业,用于将数据提取到RDBMS和数据仓库系统中进行数据挖掘,分析和报告,以进行关键业务决策。
&&主要处理以千兆字节到兆字节为单位的数据量
&&基于Hadoop的更智能的数据基础设施,其中结构化(例如RDBMS),非结构化(例如images,PDF,docs)和半结构化(例如logs,XMLs)的数据可以以可扩展和容错的方式存储在较便宜的商品机器中。
&&可以通过批处理作业和近实时(即,NRT,200毫秒至2秒)流(例如Flume和Kafka)来摄取数据。
&&数据可以使用诸如Spark和Impala之类的工具以低延迟(即低于100毫秒)的能力查询。
&&可以存储以兆兆字节到千兆字节为单位的较大数据量。这使得组织能够使用更强大的工具来做出更好的业务决策,这些更强大的工具用于获取数据,转移存储的数据(例如聚合,丰富,变换等),以及使用低延迟的报告功能和商业智能。
&&Q3.更智能&更大的数据中心架构与传统的数据仓库架构有何不同?
&&传统的企业数据仓库架构
&&基于Hadoop的数据中心架构
&&Q4.基于Hadoop的数据中心的好处是什么?
&&随着数据量和复杂性的增加,提高了整体SLA(即服务水平协议)。例如,“SharedNothing”架构,并行处理,内存密集型处理框架,如Spark和Impala,以及YARN容量调度程序中的资源抢占。
&&缩放数据仓库可能会很昂贵。添加额外的高端硬件容量以及获取数据仓库工具的许可证可能会显著增加成本。基于Hadoop的解决方案不仅在商品硬件节点和开源工具方面更便宜,而且还可以通过将数据转换卸载到Hadoop工具(如Spark和Impala)来补足数据仓库解决方案,从而更高效地并行处理大数据。这也将释放数据仓库资源。
&&探索新的渠道和线索。Hadoop可以为数据科学家提供探索性的沙盒,以从社交媒体,日志文件,电子邮件等地方发现潜在的有价值的数据,这些数据通常在数据仓库中不可得。
&&更好的灵活性。通常业务需求的改变,也需要对架构和报告进行更改。基于Hadoop的解决方案不仅可以灵活地处理不断发展的模式,还可以处理来自不同来源,如社交媒体,应用程序日志文件,image,PDF和文档文件的半结构化和非结构化数据。
&&Q5.大数据解决方案的关键步骤是什么?
&&提取数据,存储数据(即数据建模)和处理数据(即数据加工,数据转换和查询数据)。
&&提取数据
&&从各种来源提取数据,例如:
&&RDBM(RelationalDatabaseManagementSystems)关系数据库管理系统,如Oracle,MySQL等。
&&ERPs(EnterpriseResourcePlanning)企业资源规划(即ERP)系统,如SAP。
&&CRM(CustomerRelationshipsManagement)客户关系管理系统,如Siebel,Salesforce等
&&社交媒体Feed和日志文件。
&&平面文件,文档和图像。
&&并将其存储在基于“Hadoop分布式文件系统”(简称HDFS)的数据中心上。可以通过批处理作业(例如每15分钟运行一次,每晚一次,等),近实时(即100毫秒至2分钟)流式传输和实时流式传输(即100毫秒以下)去采集数据。
&&Hadoop中使用的一个常用术语是“Schema-On-Read”。这意味着未处理(也称为原始)的数据可以被加载到HDFS,其具有基于处理应用的需求在处理之时应用的结构。这与“Schema-On-Write”不同,后者用于需要在加载数据之前在RDBM中定义模式。
&&存储数据
&&数据可以存储在HDFS或NoSQL数据库,如HBase。HDFS针对顺序访问和“一次写入和多次读取”的使用模式进行了优化。HDFS具有很高的读写速率,因为它可以将I/O并行到多个驱动器。HBase在HDFS之上,并以柱状方式将数据存储为键/值对。列作为列家族在一起。HBase适合随机读/写访问。在Hadoop中存储数据之前,你需要考虑以下几点:
&&数据存储格式:有许多可以应用的文件格式(例如CSV,JSON,序列,AVRO,Parquet等)和数据压缩算法(例如snappy,LZO,gzip,bzip2等)。每个都有特殊的优势。像LZO和bzip2的压缩算法是可拆分的。
&&数据建模:尽管Hadoop的无模式性质,模式设计依然是一个重要的考虑方面。这包括存储在HBase,Hive和Impala中的对象的目录结构和模式。Hadoop通常用作整个组织的数据中心,并且数据旨在共享。因此,结构化和有组织的数据存储很重要。
&&元数据管理:与存储数据相关的元数据。
&&多用户:更智能的数据中心托管多个用户、组和应用程序。这往往导致与统治、标准化和管理相关的挑战。
&&处理数据Hadoop的处理框架使用HDFS。它使用“SharedNothing”架构,在分布式系统中,每个节点完全独立于系统中的其他节点。没有共享资源,如CPU,内存以及会成为瓶颈的磁盘存储。Hadoop的处理框架(如Spark,Pig,Hive,Impala等)处理数据的不同子集,并且不需要管理对共享数据的访问。“SharedNothing”架构是非常可扩展的,因为更多的节点可以被添加而没有更进一步的争用和容错,因为每个节点是独立的,并且没有单点故障,系统可以从单个节点的故障快速恢复。
&&Q6.你会如何选择不同的文件格式存储和处理数据?
&&设计决策的关键之一是基于以下方面关注文件格式:
&&使用模式,例如访问50列中的5列,而不是访问大多数列。
&&可并行处理的可分裂性。
&&块压缩节省存储空间vs读/写/传输性能
&&模式演化以添加字段,修改字段和重命名字段。
&&CSV文件CSV文件通常用于在Hadoop和外部系统之间交换数据。CSV是可读和可解析的。CSV可以方便地用于从数据库到Hadoop或到分析数据库的批量加载。在Hadoop中使用CSV文件时,不包括页眉或页脚行。文件的每一行都应包含记录。CSV文件对模式评估的支持是有限的,因为新字段只能附加到记录的结尾,并且现有字段不能受到限制。CSV文件不支持块压缩,因此压缩CSV文件会有明显的读取性能成本。
&&JSON文件JSON记录与JSON文件不同;每一行都是其JSON记录。由于JSON将模式和数据一起存储在每个记录中,因此它能够实现完整的模式演进和可拆分性。此外,JSON文件不支持块级压缩。
&&序列文件序列文件以与CSV文件类似的结构用二进制格式存储数据。像CSV一样,序列文件不存储元数据,因此只有模式进化才将新字段附加到记录的末尾。与CSV文件不同,序列文件确实支持块压缩。序列文件也是可拆分的。序列文件可以用于解决“小文件问题”,方式是通过组合较小的通过存储文件名作为键和文件内容作为值的XML文件。由于读取序列文件的复杂性,它们更适合用于在飞行中的(即中间的)数据存储。
&&注意:序列文件是以Java为中心的,不能跨平台使用。
&&Avro文件适合于有模式的长期存储。Avro文件存储具有数据的元数据,但也允许指定用于读取文件的独立模式。启用完全的模式进化支持,允许你通过定义新的独立模式重命名、添加和删除字段以及更改字段的数据类型。Avro文件以JSON格式定义模式,数据将采用二进制JSON格式。Avro文件也是可拆分的,并支持块压缩。更适合需要行级访问的使用模式。这意味着查询该行中的所有列。不适用于行有50+列,但使用模式只需要访问10个或更少的列。Parquet文件格式更适合这个列访问使用模式。
&&Columnar格式,例如RCFile,ORCRDBM以面向行的方式存储记录,因为这对于需要在获取许多列的记录的情况下是高效的。如果在向磁盘写入记录时已知所有列值,则面向行的写也是有效的。但是这种方法不能有效地获取行中的仅10%的列或者在写入时所有列值都不知道的情况。这是Columnar文件更有意义的地方。所以Columnar格式在以下情况下工作良好
&&在不属于查询的列上跳过I/O和解压缩
&&用于仅访问列的一小部分的查询。
&&用于数据仓库型应用程序,其中用户想要在大量记录上聚合某些列。
&&RC和ORC格式是专门用Hive写的而不是通用作为Parquet。
&&Parquet文件Parquet文件是一个columnar文件,如RC和ORC。Parquet文件支持块压缩并针对查询性能进行了优化,可以从50多个列记录中选择10个或更少的列。Parquet文件写入性能比非columnar文件格式慢。Parquet通过允许在最后添加新列,还支持有限的模式演变。Parquet可以使用AvroAPI和Avro架构进行读写。
&&如果你觉得本文对你有所帮助,请关注大讲台官网、微信等平台,大讲台IT职业在线学习教育平台为您提供权威的大数据课程和视频教程系统,通过大讲台金牌讲师在线录制的第一套自适应hadoop在线视频课程系统,让你快速掌握hadoop从入门到精通大数据开发实战技能。
看完这篇文章的人大多学习了
关注微信@大讲台
来微博关注我 @大讲台科技Hadoop面试题整理-Hadoop-@大数据资讯
你好,游客
Hadoop面试题整理
来源: ITeye-博客 &
作者:fhuadminss1
1. 简单描述如何安装配置一个apache开源版,只描述即可,无需列出完整步骤,能列出步骤更好。
1 ) 安装JDK并配置环境变量(/etc/profile)
2) 关闭防火墙
3) 配置hosts文件,方便hadoop通过主机名访问(/etc/hosts)
4) 设置ssh免密码登录
5) 解压缩hadoop安装包,并配置环境变量
6) 修改配置文件( $HADOOP_HOME/conf )
hadoop-env.sh &core-site.xml &hdfs-site.xml &mapred-site.xml
7) 格式化hdfs文件系统 (hadoop namenode -format)
8) 启动hadoop ( $HADOOP_HOME/bin/start-all.sh )
9) 使用jps查看进程
2. 请列出正常工作的hadoop集群中hadoop都分别需要启动那些进程,他们的作用分别是什么,尽可能写的全面些。
1) NameNode: HDFS的守护进程,负责记录文件是如何分割成数据块,以及这些数据块分别被存储到那些数据节点上,它的主要功能是对内存及IO进行集中管理
2) Secondary NameNode:辅助后台程序,与NameNode进行通信,以便定期保存HDFS元数据的快照。
3) DataNode:负责把HDFS数据块读写到本地的文件系统。
4) JobTracker:负责分配task,并监控所有运行的task。
5) TaskTracker:负责执行具体的task,并与JobTracker进行交互。
3. 请列出你所知道的hadoop调度器,并简要说明其工作方法。
比较流行的三种调度器有:默认调度器FIFO,计算能力调度器Capacity Scheduler ,公平调度器Fair Scheduler
1) 默认调度器FIFO
hadoop中默认的调度器,采用先进先出的原则
2)& 计算能力调度器Capacity Scheduler
选择占用资源小,优先级高的先执行
3)& 公平调度器Fair Scheduler
同一队列中的作业公平共享队列中所有资源
4. Hive有那些方式保存元数据的,各有那些特点。
1) 内存数据库derby,较小,不常用
2) 本地mysql,较常用
3) 远程mysql,不常用
5. 请简述hadoop怎样实现二级排序。
在Hadoop中,默认情况下是按照key进行排序,如果要按照value进行排序怎么办?
有两种方法进行二次排序,分别为: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函数),这样reduce获取的结果便是先按key排序,后按value排序的结果,需要注意的是,用户需 要自己实现Paritioner,以便只按照key进行数据划分。Hadoop显式的支持二次排序,在Configuration类中有个 setGroupingComparatorClass()方法,可用于设置排序group的key值
http://dongxicheng.org/mapreduce/hadoop-join-two-tables/
6. 简述hadoop实现Join的几种方法。
1) reduce side join
reduce side join是一种最简单的join方式,其主要思想如下:
在map阶段,map函数同时读取两个文件File1和File2,为了区分两种来源的key/value数据对,对每条数据打一个标签 (tag),比如:tag=0表示来自文件File1,tag=2表示来自文件File2。即:map阶段的主要任务是对不同文件中的数据打标签。
在reduce阶段,reduce函数获取key相同的来自File1和File2文件的value list, 然后对于同一个key,对File1和File2中的数据进行join(笛卡尔乘积)。即:reduce阶段进行实际的连接操作。
2) map side join
之所以存在reduce side join,是因为在map阶段不能获取所有需要的join字段,即:同一个key对应的字段可能位于不同map中。Reduce side join是非常低效的,因为shuffle阶段要进行大量的数据传输。
Map side join是针对以下场景进行的优化:两个待连接表中,有一个表非常大,而另一个表非常小,以至于小表可以直接存放到内存中。这样,我们可以将小表复制多 份,让每个map task内存中存在一份(比如存放到hash table中),然后只扫描大表:对于大表中的每一条记录key/value,在hash table中查找是否有相同的key的记录,如果有,则连接后输出即可。
为了支持文件的复制,Hadoop提供了一个类DistributedCache,使用该类的方法如下:
(1)用户使用静态方法DistributedCache.addCacheFile()指定要复制的文件,它的参数是文件的URI(如果是 HDFS上的文件,可以这样:hdfs://namenode:9000/home/XXX/file,其中9000是自己配置的NameNode端口 号)。JobTracker在作业启动之前会获取这个URI列表,并将相应的文件拷贝到各个TaskTracker的本地磁盘上。(2)用户使用 DistributedCache.getLocalCacheFiles()方法获取文件目录,并使用标准的文件读写API读取相应的文件。
3) SemiJoin
SemiJoin,也叫半连接,是从分布式数据库中借鉴过来的方法。它的产生动机是:对于reduce side join,跨机器的数据传输量非常大,这成了join操作的一个瓶颈,如果能够在map端过滤掉不会参加join操作的数据,则可以大大节省网络IO。
实现方法很简单:选取一个小表,假设是File1,将其参与join的key抽取出来,保存到文件File3中,File3文件一般很小,可以放 到内存中。在map阶段,使用DistributedCache将File3复制到各个TaskTracker上,然后将File2中不在File3中的 key对应的记录过滤掉,剩下的reduce阶段的工作与reduce side join相同。
更多关于半连接的介绍,可参考:半连接介绍:
4) reduce side join + BloomFilter
在某些情况下,SemiJoin抽取出来的小表的key集合在内存中仍然存放不下,这时候可以使用BloomFiler以节省空间。
BloomFilter最常见的作用是:判断某个元素是否在一个集合里面。它最重要的两个方法是:add() 和contains()。最大的特点是不会存在false negative,即:如果contains()返回false,则该元素一定不在集合中,但会存在一定的true negative,即:如果contains()返回true,则该元素可能在集合中。
因而可将小表中的key保存到BloomFilter中,在map阶段过滤大表,可能有一些不在小表中的记录没有过滤掉(但是在小表中的记录一定不会过滤掉),这没关系,只不过增加了少量的网络IO而已。
更多关于BloomFilter的介绍
7. 请简述MapReduce中combiner、partition的作用。
二. Linux:
1. 某个目录中有两个文件a.txt和b.txt,文件格式为(ip username),例如:
127.0.0.1 zhangsan
127.0.0.1 wangxiaoer
127.0.0.2 lisi
127.0.0.3 wangwu
127.0.0.4 lixiaolu
127.0.0.1 lisi
每个文件至少有100万行,请使用linux命令行完成如下工作:
1) 两个文件各自的ip数,以及总ip数
2) 出现在b.txt而没有出现在a.txt的ip
3) 每个username出现的次数以及每个username对应的ip数
获取【下载地址】
原文链接:/blog/2173686
相关新闻 & & &
& (09月06日)
& (09月01日)
& (昨 15:53)
& (09月05日)
   同意评论声明
   发表
尊重网上道德,遵守中华人民共和国的各项有关法律法规
承担一切因您的行为而直接或间接导致的民事或刑事法律责任
本站管理人员有权保留或删除其管辖留言中的任意内容
本站有权在网站内转载或引用您的评论
参与本评论即表明您已经阅读并接受上述条款}

我要回帖

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信