文档库 最新最全的文档下载
当前位置:文档库 › 基于Snort,Mysql,Hadoop,和HBASE实现的异常流量检测与入侵调查系统

基于Snort,Mysql,Hadoop,和HBASE实现的异常流量检测与入侵调查系统

基于Snort,Mysql,Hadoop,和HBASE实现的异常流量检测与入侵调查系统
基于Snort,Mysql,Hadoop,和HBASE实现的异常流量检测与入侵调查系统

基于Snort,Mysql,Hadoop,和HBASE 实现的异常流量检测与入侵调查系统

linxinsnow[N.N.U]

一、前言:

检测企业网络环境中,黑客的入侵行为,是一个难题。对此,一般有两种手段,基于误用检测(misused-based)方法和基于异常检测(anomaly-based)方法,前者通过总结和收集黑客在攻击发生时,采用的工具或者行为特征,对网络流量进行模式匹配,进行告警,优点是检测速率快,告警信息明确,对于已知漏洞可以做到实时检测,如常见的IPS,IDS类设备。但是这种基于特征的检测手段,对于未知漏洞,或者经过黑客精心构造,编制的攻击手段,检测能力不足,特别是针对近年来盛行的APT攻击和数据窃取、内部犯罪等行为,无法检测,同样这种检测方式需要生产厂商长期维护一个昂贵的漏洞库和签名库,并且更新永远是滞后于攻击行为。而后者的检测方法,是基于网络中任意一个节点元素的流量特征行为,通过特定算法建立访问模型或控制矩阵,通过模式匹配和相似度分析,从庞大的流量中挖掘出黑客的攻击行为。本文就是基于后者的检测概念,通过几款开源软件,打造自己的异常流量检测与入侵调查平台。

二、系统设计:

本人公司在架构上属于双业务中心,全国多个分公司专线接入,统一上网出口。根据分公司不同,在网络规划上,将每个分公司使用不同的Vlan进行了隔离,但是Vlan之间的访问时没有访问控制策略的。针对这种情况,为了能够更好地检测可能发生的黑客入侵和内部恶意行为,我需要将所有的Vlan之间访问流量,上网流量全部进行捕获,初步计算下来,整体的流量达到几个G,因此必须进行分部署采集和分布式数据库存储。

针对每个流量采集器的线性流程为:

为了防止可能由于网络原因出现的后端分布式数据库连接中断,中间采用了多级架构,其中缓存数据库,用于进行前端流量采集的缓存,然后通过采集器将Mysql数据库中的流量记录,全部输入分布式数据库Hbase中,通过Hbase进行存储、建模和调查。

1.流量采集器

使用开源的Snort,将多余的Preprocessor和规则全部删除,只留下采集所有流量的规则与黑白名单功能:

其中linxinsnow.rules内容为:

用于记录所有的流量信息,但是不在乎包的内容,保留了White_list.rules和Black_list.rules用于后期对流量的优化功能。配置Snort采用Mysql数据库的方式保存攻击记录:

启动Snort的命令行参数为:

Snort.exe-c linxinsnow.conf-N

其中的-N表示不在本地保存数据,这样可以防止采集器的硬盘被占用。

运行效果如下:

由于关闭了相关的Preprocessor处理功能,在流量达到几百M的网口上,CPU也没有超过10%。

2.前端缓存数据库

前端缓存数据库在选型上没有太多考虑,因为Snort与Mysql结合较好,所以采用了Mysql数据库,但在进行信息收集和处理的时候,需要注意几点:

1.Snort送到Mysql中的记录,并不是流量访问记录,需要通过Base平台进行转换;

2.由于采集器需要对Mysql进行非常频繁的查询、删除操作,因此采用Mysql的默认数据库引擎,即利用磁盘进行存储的方式无法满足,非常容易将Mysql弄宕机。因此需要使用Memory表的方式进行存储。

3.需要修改Mysql的相关配置,根据服务器的内存进行极限调整,尽量增大缓存的数据数量,让Mysql的Memory表能够最大化利用。

其中Base是一款开源的Snort前端,采用php界面,Base的作用是对Snort的原始数据日志进行分析,数据类似:IP1:PORT1->IP2:PORT2:事件,这样的规范格式。因此我们在对数据采集的时候,需要在采集器上做一个定时脚本,调用PHP访问Base的首页,也就是对Snort进行数据分析的程序。

调用的链接为php/var/www/base_main.php

截图中的数字代表目前已经处理完成的访问记录数,刷新Base页面的频度根据流量大小进行调整。

Base的前端页面效果为:

3.采集器

考虑到前端缓存数据库为Mysql,后端的数据库接口为使用了thrift的Hbase,这里使用了python作为中间采集器的开发语言,虽然相对来说,python的执行效率可能有一些弱势,但是我们使用的是高并发多线程的方式,在提高线程数的情况下,可以忽略代码效率。

数据采集部分:

使用了threading的Lock模块进行线程的同步,提取每次查询最后一条记录的CID作为判断条件,当多线程查询发现CID相同时,就会进入3秒的等待,防止过于频繁请求,每次查询的数量为1W条,当结果小于这个数量时,线程也会进入休息等待。

●数据清理部分:

这部分根据前面查询出来的CID,将原有的数据进行清理,需要注意的是,由于部署了BASE,需要将ACID的几个表进行同步删除,否则将会出现“爆表”。

●数据插入部分:

4.分部式数据库:

分布式数据库使用的是开源的K/V数据库——HBASE,由于我们保存的全流量信息,是需要进行后续分析建模的,因此查询效率与保存都是一个很大的问题。

Hbase数据库使用K/V架构,因此在处理Key查询的时候,效率是最高的,为了满足它的特性,我们需要将每一条访问记录都当做Key的形式进行组合,建立如下的关系:

用于解决4个问题:

为什么会有这样的不同能,实际上抽象一下:

前两个问题,解决某段时间内,某个某个IP的具体行为建模;后两个问题,解决对IP 的行为调查。

因此,每一条访问记录,实际上都被整理成了4个Key,或者Hash值,使得我们后期的查询分析变得很快速。

5.分部式文件系统:

为了实现大数据的存储和查询,我们采用Hadoop+Zookeeper,部署HBASE的形式构建基础架构,使用12台linux物理机:

编译运行Thrift作为Hbase与python的接口

编译Python接口

之后,就能通过python import hbase来连接数据库了,采集器工作界面如下:

三、访问模型建立

在收集了2亿条访问记录后,我们通过Python语言编写查询接口,从已经收集的数据中进行分析,由于前面已经建立了基于Key的存储,因此所有的查询都被转换成基于整数的组合,核心代码如下:

我们事先定义好了一些变量:

名称功能取值范围

limit限制查询数目0-∞

time是否显示时间0or1

debug是否打印Hbase记录0or1

sdate开始时间2009-1-1-0-0-0至9999-1-1-0-0-0

Edate结束时间2009-1-1-0-0-0至9999-1-1-0-0-0

Sum是否基于IP统计1or0

Scan是否是进行IP扫描0or1

这些变量随后会被拼接成一个长的字符串,也就是Key,通过Hbase的Scan功能,从数据库里查询出我们需要的记录信息。

查询结果示例如下:

根据这些组合,我们就可以很方便地对每个IP地址进行建模或者进行恶意行为的分析,甚至关联分析。

例如:

我们在流量收集之初,对于每个IP地址,从30天的流量数据中,随机挑选了7个工作日的流量,进行了机器学习,将每个IP地址的访问行为,作为模型存储下来,从简单的网站访问,如IP1->百度IP2->QQ,到跨Vlan间的访问记录,如IP1访问Vlan1,IP2访问Vlan1,全部作为一个IP地址的行为数据模型。

四、简单应用

扫描行为发现

当一个IP对其他IP发生扫描行为时,有两种情况:

单目标端口扫描,此时会发生单个IP在一段时间内连接另一个IP的大量端口,并且是0-1023端口。

通过我们的分析脚本,得出的结果会是

多目标单端口扫描,此时会发生单个IP在一段时间内连接另外大量IP的现象。通过我们的分析脚本,得出的结果会是:

如果再结合图形化展示的前台界面,效果将会非常直观。

当我们的监测脚本,发现类似的行为之后,我们进行了以下的自动化流程:

使得整个网络的监控与运维关联了起来。

运维面试题 含答案

运维工程师面试题 姓名: 答题时间: 1.新安装MYSQL后怎样提升MYSQL的安全级别? A.修改mysql默认端口 下可以通过iptables来限制访问mysql端口的IP地址 C.对所有用户设置较复杂密码并严格指定对应账号的访问IP(可在mysql库中user表中指定用户的访问可访问IP地址) 特权账号的处理(建议给root账号设置强密码,并指定只允许本地登录) E.开启二进制查询日志和慢查询日志 安装目录及数据存储目录权限控制:给mysql安装目录读取权限,给mysql日志和数据所在目录读取和写入权限 G.删除无用mysql账号和删除无用的数据库(安装好的mysql默认会有个test库,可将其删除) 2.MYSQL的主从原理,怎么配置文件? 整体上来说,复制有3个步骤: 将改变记录到二进制日志(binary log)中(这些记录叫做二进制日志事件,binary log events); 将master的binary log events拷贝到它的中继日志(relay log); 重做中继日志中的事件,将改变反映它自己的数据。 3.mysql主从复制的优点 <1> 如果主服务器出现问题,可以快速切换到从服务器提供的服务; <2> 可以在从服务器上执行查询操作,降低主服务器的访问压力;

<3> 可以在从服务器上执行备份,以避免备份期间影响主服务器的服务。 4.Mysql复制的基本原理过程 (1)Slave上面的IO线程连接上Master,并请求从指定日志文件的指定位置(或者从最开始的日志)之后的日志内容; (2)Master接收到来自Slave的IO线程的请求后,通过负责复制的IO线程根据请求信息读取指定日志指定位置之后的日志信息,返回给Slave端的IO线程。返回信息中除了日志所包含的信息之外,还包括本次返回的信息在Master端binary log文件的名称以及在Binary log中的位置; (3)Slave的IO线程收到信息后,将接收到的日志内容依次写入到Slave端的RelayLog 文件()的最末端,并将读取到的Master端的bin-log的文件名和位置记录到master-info文件中,以便在下一次读取的时候能够清楚的告诉master“我需要从某个bin-log的哪个位置开始往后的日志内容,请发给我” (4)Slave的SQL线程检测到Relay Log中新增加了内容后,会马上解析该Log文件中的内容成为在Master端真实执行时候的那些可执行的查询或操作语句,并在自身执行那些查询或操作语句,这样,实际上就是在master端和Slave端执行了同样的查询或操作语句,所以两端的数据是完全一样的。 5.为MYSQL添加一个用户? mysql> grant select,insert,update,delete on book.* to test2@localhost identified by “abc”;? ? #增加test2用户,密码为abc。并只能在localhost这台主机上登录,并且只能访问book这个库中的表,具有查询,插入,更新,删除权限; 语法:mysql> GRANT <权限> ON <库>.<表> TO ‘用户’@’主机名’ identified by “密码”; 6.写一个脚本将数据库备份并打包至远程服务器/backup目录下。 mount /mnt cd /mnt /usr/local/mysql/bin/mysqldump -hlocalhost -uroot test > tar czf rm -f

Hadoop试题题库

精品文档 1. 以下哪一项不属于Hadoop可以运行的模式___C___。 A. 单机(本地)模式 B. 伪分布式模式 C. 互联模式 D. 分布式模式 2. Hadoop的作者是下面哪一位__B____。 A. Martin Fowler B. Doug cutting C. Kent Beck D. Grace Hopper 3. 下列哪个程序通常与 NameNode 在同一个节点启动__D___。 A. TaskTracker B. DataNode C. SecondaryNameNode D. Jobtracker 4. HDFS 默认 Block Size的大小是___B___。 A.32MB B.64MB C.128MB D.256M 5. 下列哪项通常是集群的最主要瓶颈____C__。 A. CPU B. 网络 C. 磁盘IO D. 内存 6. 下列关于MapReduce说法不正确的是_____C_。 A. MapReduce是一种计算框架 B. MapReduce来源于google的学术论文 C. MapReduce程序只能用java语言编写 D. MapReduce隐藏了并行计算的细节,方便使用 8. HDFS是基于流数据模式访问和处理超大文件的需求而开发的,具有高容错、高可靠性、 高可扩展性、高吞吐率等特征,适合的读写任务是 __D____。 A.一次写入,少次读 B.多次写入,少次读 C.多次写入,多次读 D.一次写入,多次读

9. HBase依靠__A____存储底层数据。 A. HDFS B. Hadoop C. Memory D. MapReduce 10. HBase依赖___D___提供强大的计算能力。 A. Zookeeper B. Chubby C. RPC D. MapReduce 11. HBase依赖___A___提供消息通信机制 A. Zookeeper B. Chubby C. RPC D. Socket 12. 下面与HDFS类似的框架是___C____? A. NTFS B. FAT32 C. GFS D. EXT3 13. 关于 SecondaryNameNode 下面哪项是正确的___C___。 A. 它是 NameNode 的热备 B. 它对内存没有要求 C. 它的目的是帮助 NameNode 合并编辑日志,减少 NameNode 启动时间 D. SecondaryNameNode 应与 NameNode 部署到一个节点 14. 大数据的特点不包括下面哪一项___D___。 A. 巨大的数据量 B. 多结构化数据 C. 增长速度快 D. 价值密度高 HBase测试题 1. HBase来源于哪一项? C

hadoop练习题--带答案资料

h a d o o p练习题--带 答案

Hadoop 练习题姓名:分数: 单项选择题 1.下面哪个程序负责HDFS数据存储。 a)NameNode b)Jobtracker c)Datanode √ d)secondaryNameNode e)tasktracker 2.HDfS中的block默认保存几份? a)3份√ b)2份 c)1份 d)不确定 3.下列哪个程序通常与NameNode在一个节点启动? a)SecondaryNameNode b)DataNode c)TaskTracker d)Jobtracker√ 4.Hadoop作者 a)Martin Fowler b)Kent Beck c)Doug cutting√ 5.HDFS默认Block Size a)32MB b)64MB√ c)128MB 6.下列哪项通常是集群的最主要的性能瓶颈 a)CPU b)网络 c)磁盘√ d)内存

7.关于SecondaryNameNode哪项是正确的? a)它是NameNode的热备 b)它对内存没有要求 c)它的目的是帮助NameNode合并编辑日志,减少NameNode启动时间√ d)SecondaryNameNode应与NameNode部署到一个节点 8.一个gzip文件大小75MB,客户端设置Block大小为64MB,请我其占用几个Block? a) 1 b)2√ c) 3 d) 4 9.HDFS有一个gzip文件大小75MB,客户端设置Block大小为64MB。当运行mapreduce 任务读取该文件时input split大小为? a)64MB b)75MB√ c)一个map读取64MB,另外一个map读取11MB 10.HDFS有一个LZO(with index)文件大小75MB,客户端设置Block大小为64MB。当运 行mapreduce任务读取该文件时input split大小为? a)64MB b)75MB c)一个map读取64MB,另外一个map读取11MB√ 多选题: 11.下列哪项可以作为集群的管理工具 a)Puppet√ b)Pdsh√ c)Cloudera Manager√ d)Rsync + ssh + scp√ 12.配置机架感知的下面哪项正确 a)如果一个机架出问题,不会影响数据读写√ b)写入数据的时候会写到不同机架的DataNode中√ c)MapReduce会根据机架获取离自己比较近的网络数据√ 13.Client端上传文件的时候下列哪项正确 a)数据经过NameNode传递给DataNode b)Client端将文件以Block为单位,管道方式依次传到DataNode√ c)Client只上传数据到一台DataNode,然后由NameNode负责Block复制工作 d)当某个DataNode失败,客户端会继续传给其它DataNode √

(完整版)hadoop常见笔试题答案

Hadoop测试题 一.填空题,1分(41空),2分(42空)共125分 1.(每空1分) datanode 负责HDFS数据存储。 2.(每空1分)HDFS中的block默认保存 3 份。 3.(每空1分)ResourceManager 程序通常与NameNode 在一个节点启动。 4.(每空1分)hadoop运行的模式有:单机模式、伪分布模式、完全分布式。 5.(每空1分)Hadoop集群搭建中常用的4个配置文件为:core-site.xml 、hdfs-site.xml 、mapred-site.xml 、yarn-site.xml 。 6.(每空2分)HDFS将要存储的大文件进行分割,分割后存放在既定的存储块 中,并通过预先设定的优化处理,模式对存储的数据进行预处理,从而解决了大文件储存与计算的需求。 7.(每空2分)一个HDFS集群包括两大部分,即namenode 与datanode 。一般来说,一 个集群中会有一个namenode 和多个datanode 共同工作。 8.(每空2分) namenode 是集群的主服务器,主要是用于对HDFS中所有的文件及内容 数据进行维护,并不断读取记录集群中datanode 主机情况与工作状态,并通过读取与写入镜像日志文件的方式进行存储。 9.(每空2分) datanode 在HDFS集群中担任任务具体执行角色,是集群的工作节点。文 件被分成若干个相同大小的数据块,分别存储在若干个datanode 上,datanode 会定期向集群内namenode 发送自己的运行状态与存储内容,并根据namnode 发送的指令进行工作。 10.(每空2分) namenode 负责接受客户端发送过来的信息,然后将文件存储位置信息发 送给client ,由client 直接与datanode 进行联系,从而进行部分文件的运算与操作。 11.(每空1分) block 是HDFS的基本存储单元,默认大小是128M 。 12.(每空1分)HDFS还可以对已经存储的Block进行多副本备份,将每个Block至少复制到 3 个相互独立的硬件上,这样可以快速恢复损坏的数据。 13.(每空2分)当客户端的读取操作发生错误的时候,客户端会向namenode 报告错误,并 请求namenode 排除错误的datanode 后,重新根据距离排序,从而获得一个新的的读取路径。如果所有的datanode 都报告读取失败,那么整个任务就读取失败。14.(每空2分)对于写出操作过程中出现的问题,FSDataOutputStream 并不会立即关闭。 客户端向Namenode报告错误信息,并直接向提供备份的datanode 中写入数据。备份datanode 被升级为首选datanode ,并在其余2个datanode 中备份复制数据。 NameNode对错误的DataNode进行标记以便后续对其进行处理。 15.(每空1分)格式化HDFS系统的命令为:hdfs namenode –format 。 16.(每空1分)启动hdfs的shell脚本为:start-dfs.sh 。 17.(每空1分)启动yarn的shell脚本为:start-yarn.sh 。 18.(每空1分)停止hdfs的shell脚本为:stop-dfs.sh 。 19.(每空1分)hadoop创建多级目录(如:/a/b/c)的命令为:hadoop fs –mkdir –p /a/b/c 。 20.(每空1分)hadoop显示根目录命令为:hadoop fs –lsr 。 21.(每空1分)hadoop包含的四大模块分别是:Hadoop common 、HDFS 、

大数据工程师面试题

大数据工程师面试题 大数据工程师面试,对于很多人来说应该都不陌生了吧,虽说大数据就业前景很好,但想要成功进入名企,并不是一件容易的事情,不仅仅需要专业的技能,还需要你在面试的时候认真准备一下。面试的时候,我们会遇到各种各样的问题,千锋讲师今天就先讲解一下面试经常会遇到的问题,Hadoop是如何工作的? Hadoop是一个分布式文件系统(Hadoop Distributed File System),简称HDFS。Hadoop是一个能够对大量数据进行分布式处理的软件框架,以一种可靠、高效、可伸缩的方式进行数据处理。所以说Hadoop解决了大数据如何存储的问题,因而在大数据培训机构中是必须学习的课程,也是面试中面试官非常注重的一个技术点。 Hadoop是如何工作的? Hadoop是从Google文件系统发源而来,并且他是一个用Java开发的跨平台的应用。核心组件有: Hadoop Common,拥有其他模块所依赖的库和基础

工具,Hadoop分布式文件系统(HDFS),负责存储,Hadoop YARN,管理计算资源,和Hadoop MapReduce,负责处理的过程。 Hadoop把文件拆成小块并且把他们分发给集群中的节点。然后,它使用打包的代码分发到节点上并行处理数据。这意味着可以处理数据的速度会比使用传统的体系结构的更快。 一个典型的Hadoop集群都会有主节点和从节点或者叫工作节点。主节点有一个任务跟踪器,任务调度,名字节点和数据节点组成。从节点通常作为一个数据节点和任务调度器,不过特殊的场景下程序可能只有数据节点然后在其他的从节点进行处理计算。 在大的Hadoop集群中,通常会使用一个专用的名字节点来管理HDFS节点的文件系统索引信息,这防止了文件系统的数据丢失和损坏。 千锋教育拥有一支的强师队伍,在教学研究方面,我们老师不断的推陈出新,探索更新的教学方式,结合时代所需不断更新课程大纲,加强学生对于知识的理解和运用。千锋讲师对于大数据行业时刻保持一定的敏感性和前瞻性,定期与各大企业的技术官交流分析,掌握大数据的发展动向,不仅仅可以帮助同学们更好的学习大数据技术,还会预测一些大数据工程师面试题,为同学们的就业之路披荆斩棘。 关键词:大数据工程师面试题

Hadoop最全面试题整理(附目录)

Hadoop面试题目及答案(附目录) 选择题 1.下面哪个程序负责HDFS 数据存储。 a)NameNode b)Jobtracker c)Datanode d)secondaryNameNode e)tasktracker 答案C datanode 2. HDfS 中的block 默认保存几份? a)3 份b)2 份c)1 份d)不确定 答案A 默认3 份 3.下列哪个程序通常与NameNode 在一个节点启动? a)SecondaryNameNode b)DataNode c)TaskTracker d)Jobtracker 答案D 分析:hadoop 的集群是基于master/slave 模式,namenode 和jobtracker 属于master,datanode 和tasktracker 属于slave,master 只有一个,而slave 有多个SecondaryNameNode 内存需求和NameNode 在一个数量级上,所以通常secondaryNameNode(运行在单独的物理机器上)和NameNode 运行在不同的机器上。 JobTracker 和TaskTracker JobTracker 对应于NameNode,TaskTracker 对应于DataNode,DataNode 和NameNode 是针对数据存放来而言的,JobTracker 和TaskTracker 是对于MapReduce 执行而言的。mapreduce 中几个主要概念,mapreduce 整体上可以分为这么几条执行线索:jobclient,JobTracker 与TaskTracker。 1、JobClient 会在用户端通过JobClient 类将应用已经配置参数打包成jar 文件存储到hdfs,并把路径提交到Jobtracker,然后由JobTracker 创建每一个Task(即MapTask 和ReduceTask)并将它们分发到各个TaskTracker 服务中去执行。 2、JobTracker 是一个master 服务,软件启动之后JobTracker 接收Job,负责调度Job 的每一个子任务task 运行于TaskTracker 上,并监控它们,如果发现有失败的task 就重新运行它。一般情况应该把JobTracker 部署在单独的机器上。 3、TaskTracker 是运行在多个节点上的slaver 服务。TaskTracker 主动与JobTracker 通信,接收作业,并负责直接执行每一个任务。TaskTracker 都需要运行在HDFS 的DataNode 上。 4. Hadoop 作者 a)Martin Fowler b)Kent Beck c)Doug cutting 答案C Doug cutting 5. HDFS 默认Block Size a)32MB b)64MB c)128MB 答案:B 6. 下列哪项通常是集群的最主要瓶颈 a)CPU b)网络c)磁盘IO d)内存 答案:C 磁盘 首先集群的目的是为了节省成本,用廉价的pc 机,取代小型机及大型机。小型机和大型机

Hadoop试题题库

1.以下哪一项不属于H a d o o p可以运行的模式___C___。 A. 单机(本地)模式 B. 伪分布式模式 C. 互联模式 D. 分布式模式 2. Hadoop的作者是下面哪一位__B____。 A. Martin Fowler B. Doug cutting C. Kent Beck D. Grace Hopper 3. 下列哪个程序通常与 NameNode 在同一个节点启动__D___。 A. TaskTracker B. DataNode C. SecondaryNameNode D. Jobtracker 4. HDFS 默认 Block Size的大小是___B___。 5. 下列哪项通常是集群的最主要瓶颈____C__。 A. CPU B. 网络 C. 磁盘IO D. 内存 6. 下列关于MapReduce说法不正确的是_____C_。 A. MapReduce是一种计算框架 B. MapReduce来源于google的学术论文 C. MapReduce程序只能用java语言编写 D. MapReduce隐藏了并行计算的细节,方便使用 8. HDFS是基于流数据模式访问和处理超大文件的需求而开发的,具有高容错、高可靠性、高可扩展性、高吞吐率等特征,适合的读写任务是 __D____。 A.一次写入,少次读 B.多次写入,少次读 C.多次写入,多次读 D.一次写入,多次读 9. HBase依靠__A____存储底层数据。 A. HDFS B. Hadoop C. Memory D. MapReduce 10. HBase依赖___D___提供强大的计算能力。 A. Zookeeper

hadoop练习题--带答案

Hadoop 练习题姓名:分数: 单项选择题 1.下面哪个程序负责HDFS数据存储。 a)NameNode b)Jobtracker c)Datanode √ d)secondaryNameNode e)tasktracker 2.HDfS中的block默认保存几份? a)3份√ b)2份 c)1份 d)不确定 3.下列哪个程序通常与NameNode在一个节点启动? a)SecondaryNameNode b)DataNode c)TaskTracker d)Jobtracker√ 4.Hadoop作者 a)Martin Fowler b)Kent Beck c)Doug cutting√ 5.HDFS默认Block Size a)32MB b)64MB√ c)128MB 6.下列哪项通常是集群的最主要的性能瓶颈 a)CPU b)网络 c)磁盘√ d)内存

7.关于SecondaryNameNode哪项是正确的? a)它是NameNode的热备 b)它对内存没有要求 c)它的目的是帮助NameNode合并编辑日志,减少NameNode启动时间√ d)SecondaryNameNode应与NameNode部署到一个节点 8.一个gzip文件大小75MB,客户端设置Block大小为64MB,请我其占用几个Block? a) 1 b)2√ c) 3 d) 4 9.HDFS有一个gzip文件大小75MB,客户端设置Block大小为64MB。当运行mapreduce 任务读取该文件时input split大小为? a)64MB b)75MB√ c)一个map读取64MB,另外一个map读取11MB 10.HDFS有一个LZO(with index)文件大小75MB,客户端设置Block大小为64MB。当运 行mapreduce任务读取该文件时input split大小为? a)64MB b)75MB c)一个map读取64MB,另外一个map读取11MB√ 多选题: 11.下列哪项可以作为集群的管理工具 a)Puppet√ b)Pdsh√ c)Cloudera Manager√ d)Rsync + ssh + scp√ 12.配置机架感知的下面哪项正确 a)如果一个机架出问题,不会影响数据读写√ b)写入数据的时候会写到不同机架的DataNode中√ c)MapReduce会根据机架获取离自己比较近的网络数据√ 13.Client端上传文件的时候下列哪项正确 a)数据经过NameNode传递给DataNode b)Client端将文件以Block为单位,管道方式依次传到DataNode√ c)Client只上传数据到一台DataNode,然后由NameNode负责Block复制工作 d)当某个DataNode失败,客户端会继续传给其它DataNode √

Hadoop 100道面试题及答案解析

3.6 误) 3.7Hadoop支持数据的随机读写。(错) (8) NameNode负责管理metadata,client端每次读写请求,它都会从磁盘中3.8 读取或则会写入metadata信息并反馈client端。(错误) (8) NameNode本地磁盘保存了Block的位置信息。(个人认为正确,欢迎提出其它意见) (9) 3.9 3.10 3.11DataNode通过长连接与NameNode保持通信。(有分歧) (9) Hadoop自身具有严格的权限管理和安全措施保障集群正常运行。(错误)9 3.12 3.13 3.14Slave节点要存储数据,所以它的磁盘越大越好。(错误) (9) hadoop dfsadmin–report命令用于检测HDFS损坏块。(错误) (9) Hadoop默认调度器策略为FIFO(正确) (9) 100道常见Hadoop面试题及答案解析 目录 1单选题 (5) 1.1 1.2 1.3 1.4 1.5 1.6 1.7下面哪个程序负责HDFS数据存储。 (5) HDfS中的block默认保存几份? (5) 下列哪个程序通常与NameNode在一个节点启动? (5) Hadoop作者 (6) HDFS默认Block Size (6) 下列哪项通常是集群的最主要瓶颈: (6) 关于SecondaryNameNode哪项是正确的? (6) 2 3多选题 (7) 2.1 2.2 2.3 2.4 2.5 下列哪项可以作为集群的管理? (7) 配置机架感知的下面哪项正确: (7) Client端上传文件的时候下列哪项正确? (7) 下列哪个是Hadoop运行的模式: (7) Cloudera提供哪几种安装CDH的方法? (7) 判断题 (8) 3.1 3.2 3.3 Ganglia不仅可以进行监控,也可以进行告警。(正确) (8) Block Size是不可以修改的。(错误) (8) Nagios不可以监控Hadoop集群,因为它不提供Hadoop支持。(错误) 8 3.4如果NameNode意外终止,SecondaryNameNode会接替它使集群继续工作。(错误) (8) 3.5Cloudera CDH是需要付费使用的。(错误) (8) Hadoop是Java开发的,所以MapReduce只支持Java语言编写。(错 8

Hadoop基础知识面试题大汇总

1.Hadoop集群可以运行的3个模式分别是什么, 都有哪些注意点? ?单机(本地)模式:这种模式在一台单机上运行,没有分布式文件系统,而是直接读写本地操作系统的文件系统。在单机模式(standalone)中不会存在守护进程,所有东西都运行在一个JVM上。这里同样没有DFS,使用的是本地文件系统。单机模式适用于开发过程中运行MapReduce程序,这也是最少使用的一个模式。 ?伪分布式模式:也是在一台单机上运行,但用不同的Java进程模仿分布式运行中的各类结点 (NameNode,DataNode,JobTracker,TaskTracker,SecondaryNameNode),伪分布式(Pseudo)适用于开发和测试环境,在这个模式中,所有守护进程都在同一台机器上运行。 ?全分布式模式:全分布模式通常被用于生产环境,使用N台主机组成一个Hadoop集群,Hadoop守护进程运行在每台主机之上。这里会存在Namenode 运行的主机,Datanode运行的主机,以及task tracker运行的主机。 在分布式环境下,主节点和从节点会分开。 2. VM是否可以称为Pseudo? 不是,两个事物,同时Pseudo只针对Hadoop。 3. 当Job Tracker宕掉时,Namenode会发生什么? 当Job Tracker失败时,集群仍然可以正常工作,只要Namenode没问题。 4. 是客户端还是Namenode决定输入的分片? 这并不是客户端决定的,在配置文件中以及决定分片细则。 5. 是否可以在Windows上运行Hadoop? 可以,但是最好不要这么做,Red Hat Linux或者是Ubuntu才是Hadoop的最佳操作系统。 6. Hadoop是否遵循UNIX模式? 是的,在UNIX用例下,Hadoop还拥有“conf”目录。 7. Hadoop安装在什么目录下? Cloudera和Apache使用相同的目录结构,Hadoop被安装在 cd/usr/lib/hadoop-0.20/。 8. Namenode、Job tracker和task tracker的端口号是? Namenode,70;Job tracker,30;Task tracker,60。

hadoop面试题

Hadoop就业面试宝典 1.0简要描述如何安装配置apache的一个开源hadoop,只描述即可,无需列出具体步骤, 列出具体步骤更好。 答:1使用root账户登录 2 修改IP 3 修改host主机名 4 配置SSH免密码登录 5 关闭防火墙 6 安装JDK 7 解压hadoop安装包 8 配置hadoop的核心文件hadoop-env.sh,core-site.xml , mapred-site.xml ,hdfs-site.xml 9 配置hadoop环境变量 10 格式化hadoop namenode-format 11 启动节点start-all.sh 2.0 请;列出正常的hadoop集群中hadoop都分别需要启动哪些进程,他们的作用分别都是什么,请尽量列的详细一些。 答:namenode:管理集群,存储数据的原信息,并管理记录datanode中的文件信息。 Secondname:可以做冷备,对一定范围内数据做快照性备份。 Datanode:存储数据 Jobtracker :管理任务,并将任务分配给tasktracker。 Tasktracker: 执行JobTracker分配的任务。 3.0请写出以下的shell命令 (1)杀死一个job (2)删除hdfs上的/tmp/aaa目录 (3)加入一个新的存储节点和删除一个节点需要执行的命令 答:(1)hadoop job –list 得到job的id,然后执行hadoop job -kill jobId就可以杀死一个指定jobId的job工作了。 (2)hadoop fs -rmr /tmp/aaa (3) 增加一个新的节点在新的几点上执行 Hadoop daemon.sh start datanode Hadooop daemon.sh start tasktracker 然后在主节点中执行hadoop dfsadmin -refreshnodes 删除一个节点的时候,只需要在主节点执行hadoop mradmin -refreshnodes 4.0请列出你所知道的hadoop调度器,并简要说明其工作方法 答:Fifo schedular :默认,先进先出的原则 Capacity schedular :计算能力调度器,选择占用最小、优先级高的先执行,依此类推。 Fair schedular:公平调度,所有的job 具有相同的资源。

hadoop面试题总结1讲课讲稿

hadoop面试题总结1 a)NameNode b)Jobtracker c)Datanode d)secondaryNameNode e)tasktracker 答案C datanode a)3 份 b)2 份c)1 份d)不确定 答案A默认3分 a)SecondaryNameNode b)DataNode c)TaskTracker d)Jobtracker 答案D 分析: hadoop的集群是基于master/slave模式,namenode和jobtracker属于master,datanode和tasktracker属于slave,master只有一个,而slave有多个 SecondaryNameNode内存需求和NameNode在一个数量级上,所以通常secondary NameNode(运行在单独的物理机器上)NameNode运行在不同的机器上。 JobTracker和TaskTracker JobTracker 对应于 NameNode TaskTracker 对应于 DataNode DataNode 和NameNode 是针对数据存放来而言的JobTracker和TaskTracker是对于MapReduce执行而言的mapreduce中几个主要概念,mapreduce整体上可以分为这

么几条执行线索:jobclient,JobTracker与TaskTracker。 并把路径提交到Jobtracker,然后由JobTracker创建每一个Task(即MapTask和ReduceTask) 并将它们分发到各个TaskTracker服务中去执行 并监控它们,如果发现有失败的task就重新运行它。一般情况应该把JobTracker部署在单独的机器上。 TaskTracker都需要运行在HDFS的DataNode上 a)Martin Fowler b)Kent Beck c)Doug cutting 答案C Doug cutting a)32MB b)64MB c)128MB 答案:B (因为版本更换较快,这里答案只供参考) a)CPU b)网络 c)磁盘IO d)内存 答案:C磁盘 处理能力强 2.内存够大 所以集群的瓶颈不可能是a和d 3.网络是一种稀缺资源,但是并不是瓶颈。 4.由于大数据面临海量数据,读写数据都需要io,然后还要冗余数据,hadoop一般备3份数据,所以IO就会打折扣。 同样可以参考下面内容(磁盘IO:磁盘输出输出)

2018年常见Hadoop面试题及答案_光环大数据培训

https://www.wendangku.net/doc/ef4584789.html, 2018年常见Hadoop面试题及答案_光环大数据培训 hadoop的测试题及答案解析,题目种类挺多,一共有98道题,题目难度不大,对于高手来说,90分以上才是你的追求。 1 单选题 1.1 下面哪个程序负责 HDFS 数据存储。 a)NameNode b)Jobtracker c)Datanode d)secondaryNameNode e)tasktracker 答案 C datanode 1.2 HDfS 中的 block 默认保存几份? a)3 份 b)2 份 c)1 份 d)不确定 答案 A 默认 3份 1.3 下列哪个程序通常与 NameNode 在一个节点启动? a)SecondaryNameNode b)DataNode c)TaskTracker

https://www.wendangku.net/doc/ef4584789.html, 答案 D,此题分析: hadoop 的集群是基于 master/slave 模式,namenode 和 jobtracker 属于master,datanode 和 tasktracker 属于 slave , master 只有一个,而slave 有多个SecondaryNameNode 内存需求和 NameNode 在一个数量级上,所以通常 secondary ,NameNode(运行在单独的物理机器上)和 NameNode 运行在不同的机器上。 JobTracker 和 TaskTracker,JobTracker 对应于 NameNode,TaskTracker 对应于 DataNode,DataNode 和 NameNode 是针对数据存放来而言的,JobTracker 和 TaskTracker 是对于 MapReduce 执行而言的,mapreduce 中几个主要概念,mapreduce 整体上可以分为这么几条执行线索:obclient,JobTracker 与 TaskTracker。 JobClient会在用户端通过JobClient类将应用已经配置参数打包成jar文件存储到hdfs,并把路径提交到 Jobtracker,然后由 JobTracker 创建每一个Task(即 MapTask 和ReduceTask)并将它们分发到各个 TaskTracker 服务中去执行。 JobTracker 是一个 master 服务,软件启动之后 JobTracker 接收 Job,负责调度 Job的每一个子任务 task 运行于 TaskTracker 上,并监控它们,如果发现有失败的 task 就重新运行它。一般情况应该把 JobTracker 部署在单独的机器上。 TaskTracker 是运行在多个节点上的 slaver 服务。TaskTracker 主动与JobTracker 通信,接收作业,并负责直接执行每一个任务。TaskTracker 都需要运行在 HDFS 的 DataNode上。 1.4 Hadoop 作者 a)Martin Fowler b)Kent Beck c)Doug cutting 答案 C Doug cutting 1.5 HDFS 默认 Block Size a)32MB

面试必过——50个最受欢迎的Hadoop面试问题

50个最受欢迎的Hadoop面试问题 您是否打算在大数据和数据分析领域找到工作?您是否担心破解Hadoop面试? 我们整理了一份方便的Hadoop面试问题清单。您可能具有关于软件框架的丰富知识,但是在短短的15分钟面试环节中无法测试所有这些知识。因此,面试官会问您一些特定的大数据面试问题,他们认为这些问题易于判断您对主题的了解。 立即注册:Hadoop基础在线培训课程 Hadoop面试的前50名问答 当前,与大数据相关的工作正在增加。五分之一的大公司正在迁移到大数据分析,因此现在是时候开始申请该领域的工作了。因此,我们不需再拖延地介绍Hadoop面试的前50名问答,这将帮助您完成面试。 Hadoop基本面试问题 这些是您在大数据采访中必将面对的最常见和最受欢迎的大数据Hadoop采访问题。通过准备这些Hadoop面试问题,无疑会给您带来竞争优势。 首先,我们将重点关注人们在申请Hadoop相关工作时遇到的常见和基本的Hadoop 面试问题,无论其职位如何。

1. Hadoop框架中使用了哪些概念? 答:Hadoop框架在两个核心概念上起作用: ?HDFS:Hadoop分布式文件系统的缩写,它是一个基于Java的文件系统,用于可扩展和可靠地存储大型数据集。HDFS本身在主从架构上工作,并以块 形式存储其所有数据。 ?MapReduce:这是用于处理和生成大型数据集的编程模型以及相关的实现。 Hadoop作业基本上分为两个不同的任务作业。映射作业将数据集分解为键 值对或元组。然后,reduce作业获取map作业的输出,并将数据元组合并 为较小的元组集。 2.什么是Hadoop?命名Hadoop应用程序的主要组件。 答:Hadoop是“大数据”问题的解决方案。Hadoop被描述为提供许多用于存储和处理大数据的工具和服务的框架。当难以使用传统方法进行决策时,它在大数据分析和制定有效的业务决策中也起着重要作用。 Hadoop提供了广泛的工具集,可以非常轻松地存储和处理数据。以下是Hadoop的所有主要组件:

hadoop练习题--带答案

Hadoop练习题 姓名:分数: 单项选择题 1.下面哪个程序负责HDFS数据存储。 a)NameNode b)Jobtracker c)Datanode√ d)secondaryNameNode e)tasktracker 2.HDfS中的block默认保存几份? a)3份√ b)2份 c)1份 d)不确定 3.下列哪个程序通常与NameNode在一个节点启动? a)SecondaryNameNode b)DataNode c)TaskTracker d)Jobtracker√ 4.Hadoop作者 a)Martin Fowler

b)Kent Beck c)Doug cutting√ 5.HDFS默认Block Size a)32MB b)64MB√ c)128MB 6.下列哪项通常是集群的最主要的性能瓶颈 a)CPU b)网络 c)磁盘√ d)内存 7.关于SecondaryNameNode哪项是正确的? a)它是NameNode的热备 b)它对内存没有要求 c)它的目的是帮助NameNode合并编辑日志,减少NameNode启动时间√d)SecondaryNameNode应与NameNode部署到一个节点 8.一个gzip文件大小75MB,客户端设置Block大小为64MB,请我其占用几个Block?a)1 b)2√ c)3 d)4

9.HDFS有一个gzip文件大小75MB,客户端设置Block大小为64MB。当运行mapreduce任务读取该文件时input split大小为? a)64MB b)75MB√ c)一个map读取64MB,另外一个map读取11MB 10.HDFS有一个LZO(withindex)文件大小75MB,客户端设置Block大小为64MB。当运行mapreduce任务读取该文件时input split大小为? a)64MB b)75MB c)一个map读取64MB,另外一个map读取11MB√ 多选题: 11.下列哪项可以作为集群的管理工具 a)Puppet√ b)Pdsh√ c)Cloudera Manager√ d)Rsync + ssh + scp√ 12.配置机架感知的下面哪项正确 a)如果一个机架出问题,不会影响数据读写√ b)写入数据的时候会写到不同机架的DataNode中√ c)MapReduce会根据机架获取离自己比较近的网络数据√ 13.Client端上传文件的时候下列哪项正确 a)数据经过NameNode传递给DataNode

大数据Hadoop面试题!(附答案解析)

在大数据开发岗位的需求下,工资待遇水涨船高,不少编程人员在面对职业瓶颈期的时候,会选择转编程方向发展。 你是否已经意识这是你人生中的一个重要转机?能不能抓住这个时代的机遇,就在于你对大数据信息的应用和获取。而如何成为大数据时代的弄潮儿,掌握当下最紧缺的软件技能是关键!谷歌、阿里巴巴、百度、京东都在急需掌握hadoop 技术的大数据人才!无论你精通大数据的哪一项类,都将在未来职场脱颖而出! 传智播客上海校区为大家准备了一些面试问题,希望可以帮助到大家 更多大数据知识请关注传智播客上海校区或登录传智播客官网了解更多视频 01 单选题 1、下面哪个程序负责HDFS 数据存储? a)NameNode b)Jobtracker c)Datanode d)secondaryNameNode e)tasktracker 答案 C datanode 2、HDfS 中的block 默认保存几份?

a)3 份 b)2 份 c)1 份 d)不确定 答案 A 默认3份 3、Hadoop 作者? a)Martin Fowler b)Kent Beck c)Doug cutting 答案 C Doug cutting 4、下列哪个程序通常与NameNode 在一个节点启动? a)SecondaryNameNode b)DataNodeb)DataNode c)TaskTracker d)Jobtracker

答案:D 此题分析: hadoop 的集群是基于master/slave 模式,namenode 和jobtracker 属于mast er,datanode 和tasktracker 属于slave,master 只有一个,而slave 有多个SecondaryNameNode 内存需求和NameNode 在一个数量级上,所以通常secondary ,NameNode(运行在单独的物理机器上)和NameNode 运行在不同的机器上。 JobTracker 和TaskTracker,JobTracker 对应于NameNode,TaskTracker 对应于DataNode,DataNode 和NameNode 是针对数据存放来而言的,JobTrack er 和TaskTracker 是对于MapReduce 执行而言的,mapreduce 中几个主要概念,mapreduce 整体上可以分为这么几条执行线索:obclient,JobTracker 与Ta skTracker。 JobClient会在用户端通过JobClient类将应用已经配置参数打包成jar文件存储到h dfs,并把路径提交到Jobtracker,然后由JobTracker 创建每一个Task(即Map Task 和ReduceTask)并将它们分发到各个TaskTracker 服务中去执行。JobTra cker 是一个master 服务,软件启动之后JobTracker 接收Job,负责调度Job 的每一个子任务task 运行于TaskTracker 上,并监控它们,如果发现有失败的t ask 就重新运行它。一般情况应该把JobTracker 部署在单独的机器上。TaskTrac ker 是运行在多个节点上的slaver 服务。TaskTracker 主动与JobTracker 通信,接收作业,并负责直接执行每一个任务。TaskTracker 都需要运行在HDFS 的D ataNode上。

相关文档