Hadoop习题汇总

选择

单选

查看HDFS系统版本的Shell命令,以下正确的是()。
hdfs -ver
hdfs version (答案)
dfsadmin version
hadoop -ver

数据存储单位从小到大排列顺序是()
TB、PB、EB、ZB、YB (答案)
TB、YB、ZB、PB、EB
TB、PB、EB、YB、ZB
TB、EB、PB、YB、ZB

假设已经配置好环境变量,启动Hadoop和关闭Hadoop的命令分别是
start-dfs.sh,stop-dfs.sh (答案)
start-hdfs.sh,stop-hdfs.sh
start-hdfs.sh,stop-dfs.sh
start-dfs.sh,stop-hdfs.sh

Hadoop 可以在单节点上以伪分布式的方式运行,Hadoop 进程以分离的 Java 进程来运行,节点(),同时,读取的是 HDFS 中的文件。
只能作为NameNode
既作为 NameNode 也作为 DataNode (答案)
既不能作为 NameNode 也不能作为 DataNode
只能作为DataNode

以下哪个不是hadoop的特性
高容错性
高可靠性
支持多种编程语言
成本高 (答案)

分布式文件系统HDFS采用了主从结构模型,由计算机集群中的多个节点构成的,这些节点分为两类,一类存储元数据叫 ,另一类存储具体数据叫
从节点,主节点
名称节点,数据节点 (答案)
名称节点,主节点
数据节点,名称节点

采用多副本冗余存储的优势不包含
节约存储空间 (答案)
容易检查数据错误
保证数据可靠性
加快数据传输速度

下列选项中哪一门技术属于大数据平台()。
Tomcat
ASP.NET
Apache
Hadoop (答案)

每种大数据产品都有特定的应用场景,以下哪个产品是用于图计算的:
Storm
Flume
Pregel (答案)
Cassandra

JAVA的String类型对应Hadoop的数据序列化的类型是( )
MapWritable
IntWritable
Text (答案)
ByteWritable

以下哪个不是大数据时代新兴的技术:
Spark
MySQL (答案)
HBase
Hadoop

当前大数据技术的基础是由( )首先提出的。
谷歌 (答案)
阿里巴巴
百度
微软

在使用MapReduce程序WordCount进行词频统计时,对于文本行“hello hadoop hello world”,经过WordCount程序的Map函数处理后直接输出的中间结果,应该是下面哪种形式:
<"hello",2>、<"hadoop",1>和<"world",1>
<"hello",1>、<"hello",1>、<"hadoop",1>和<"world",1> (答案)
<"hello",1,1>、<"hadoop",1>和<"world",1>
<"hello",<1,1>>、<"hadoop",1>和<"world",1>

所谓( )过程,是指对Map输出结果进行分区、排序、合并等处理,并交给Reduce的过程。
combine
merge
shuffle (答案)

以下关于云计算、大数据和物联网之间的关系,论述错误的是:
云计算侧重于数据分析 (答案)(侧重于存储、处理和分析
物联网可以借助于大数据实现海量数据的分析
物联网可以借助于云计算实现海量数据的存储
云计算、大数据和物联网三者紧密相关,相辅相成

name为fs.defaultFS的值,表示()。
nameNode的物理名称
nameNode的逻辑名称
hdfs路径的物理名称
hdfs路径的逻辑名称 (答案)

以下对Hadoop的说法错误的是
Hadoop是基于Java语言开发的,只支持Java语言编程 (答案)
Hadoop MapReduce是针对谷歌MapReduce的开源实现,通常用于大规模数据集的并行计算
Hadoop的核心是HDFS和MapReduce
Hadoop2.0增加了NameNode HA和Wire-compatibility两个重大特性

HDFS的命名空间不包含

目录
字节 (答案)
文件

( )就是把内存中的对象,转换成字节序列(或其他数据传输协议)以便于存储(持久化)和网络传输。
反序列化
序列化 (答案)

Hadoop 作者
Kent Beck
Doug cutting (答案)
Martin Fowler

HBase三层结构的顺序是
-ROOT-表,Zookeeper文件,.MEATA.表
Zookeeper文件,.MEATA.表,-ROOT-表
.MEATA.表,Zookeeper文件,-ROOT-表
Zookeeper文件,-ROOT-表,.MEATA.表 (答案)

Hive是建立在__之上的一个数据仓库()
HBase
mysql
hadoop (答案)
mysql

下面哪种类型是不被Hive查询语言所支持的()
String
Array
Varchar (答案)
Map

HBase是一种()数据库
关系数据库
行式数据库
列式数据库 (答案)(列族
文档数据库

NoSQL数据库的三大理论基石不包括
BASE
ACID (答案)
最终一致性
CAP

Hive 自定义的一些配置一般存储在(install-dir)/conf/__()
hive-default.xml
hive-lib.xml
hive-site.xml (答案)
hive-core.xml

对于HBase数据库而言,每个Region的建议最佳大小是
2GB-4GB
100MB-200MB
500MB-1000MB
1GB-2GB (答案)

客户端是通过()级寻址来定位Region



三 (答案)

以下对各类数据库的理解错误的是
HBase数据库是列族数据库,可扩展性强,支持事务一致性 (答案)
文档数据库的数据是松散的,XML和JSON文档等都可以作为数据存储在文档数据库中
图数据库灵活性高,支持复杂的图算法,可用于构建复杂的关系图谱
键值数据库的键是一个字符串对象,值可以是任意类型的数据,比如整型和字符型等



多选

大数据的四种主要计算模式包括:
查询分析计算 (答案)
批处理计算 (答案)
图计算 (答案)
流计算 (答案)

所谓Shuffle,是指对Map输出结果进行( )、( )、( )等处理,并交给Reduce的过程。
合并 (答案)
分区 (答案)
序列化
排序 (答案)

大数据带来思维方式的三个转变是:
精确而非全面
效率而非精确 (答案)
相关而非因果 (答案)
全样而非抽样 (答案)

对Hadoop中JobTacker的工作角色,以下说法正确的是()。
监控CPU运行效率
监控任务执行进度 (答案)
分配任务 (答案)
作业调度 (答案)

HDFS与传统数据存储对比,主要特点包含()。
流式的数据访问 (答案)
适合存储大量小文件
适合存储大量大文件 (答案)
数据冗余,硬件容错 (答案)

云计算的典型服务模式包括三种:
PaaS (答案)
SaaS (答案)
IaaS (答案)
MaaS

HADOOP两大核心是什么?
Oracle
HDFS (答案)
HBase
MapReduce (答案)

Hadoop核心组成部份包含()
HDFS存储系统 (答案)
Hive数据仓库
MapReduce运算框架 (答案)
HBase分布式数据库

Hadoop生态系统的优势包含()
低成本 (答案)
大型关系数据库系统
开源工具成熟 (答案)
高扩展 (答案)

大数据的数据类型有哪些( )
半结构化数据
非结构化数据 (答案)
以上全不是
结构化数据 (答案)

大数据的特征
Value(数据价值密度低) (答案)
Velocity(数据产生的速度快) (答案)
Variety(数据类型繁多) (答案)
Volume(数据体量大) (答案)

以下对数据节点理解正确的是
数据节点用来存储具体的文件内容 (答案)
数据节点在名称节点的统一调度下进行数据块的创建、删除和复制等操作 (答案)
数据节点通常只有一个
数据节点的数据保存在磁盘中 (答案)

以下哪些工具属于Hadoop生态系统的开源工具。()
Hive (答案)
HBase (答案)
Zookerper (答案)
Mysql

HDFS只设置唯一一个名称节点带来的局限性包括
命名空间的限制 (答案)
隔离问题 (答案)
集群的可用性 (答案)
性能的瓶颈 (答案)

对HDFS内的文件进行操作,以下说法正确的是()。
文件操作命令与Linux相似 (答案)
采用Windows系统对文件进行操作
不允许对文件进行列表查看
HDFS提供了Shell的操作接口 (答案)

HDFS的适用性和局限性,以下说法正确的是()
不支持多用户并发写相同文件 (答案)
不适合交互式应用,低延迟很难满足 (答案)
适合一次写入多次读取、顺序读写 (答案)
适合数据批量读写、吞吐量高 (答案)

以下对名称节点理解正确的是
名称节点通常用来保存元数据 (答案)
名称节点的数据保存在内存中 (答案)
名称节点用来负责具体用户数据的存储
名称节点作为中心服务器,负责管理文件系统的命名空间及客户端对文件的访问 (答案)

hadoop序列化机制(Writable),特点:
互操作 (答案)
可扩展 (答案)
快速 (答案)
紧凑 (答案)

下列哪个是Hadoop 运行的模式
以上全不是
完全分布式 (答案)
单机版 (答案)
伪分布式 (答案)

HDFS中的NameNode节点用于存放元数据,数据内容包含()。
客户端硬件配置数据
数据块与数据节点的映射表 (答案)
每个数据块的内容
文件与数据块的映射表 (答案)

关于Flume的架构中,理解正确的是?
一个channel对应多个sink
一个channel对应一个sink (答案)
一个sink对应一个channel (答案)
一个Source可以对应多个Channel (答案)

关于Hive嵌入模式说法正确的有?
一般用于测试使用 (答案)
只允许创建一个连接 (答案)
一般用于生产环境
元数据存储在Derby中 (答案)

HBase和传统关系型数据库的区别在于哪些方面:
数据索引 (答案)
可伸缩性 (答案)
存储模式 (答案)
数据操作 (答案)

zookeeper在kafka中的作用
发送到topic的数据需要经过zookeeper
kafka使用zookeeper来实现动态的集群扩展 (答案)
kafka的producer、consumer、topic、partition都需要依赖zookeeper
kafka 将元数据信息维护在zookeeper上 (答案)

关于Hive的描述正确的是?
Hive可以使用类SQL语句进行查询 (答案)
Hive可以用来建立数据仓库 (答案)
Hive低延迟进行查询
Hive依赖Hadoop (答案)

NoSQL数据库的BASE特性是指
基本可用 (答案)
软状态 (答案)
最终一致性 (答案)
持续性

NoSQL数据库的类型包括
文档数据库 (答案)
键值数据库 (答案)
列族数据库 (答案)
图数据库 (答案)

Hive的元数据能够存储在哪些位置?
文本文件
derby (答案)
oracle (答案)
mysql (答案)

Hive提供了哪些访问接口来进行查询?
命令行 (答案)
JDBC/ODBC (答案)
web界面 (答案)
java api (答案)

关于NoSQL数据库和关系数据库,下列说法正确的是:
大多数NoSQL数据库很难实现数据完整性 (答案)
NoSQL数据库可以支持超大规模数据存储,具有强大的横向扩展能力 (答案)
关系数据库有关系代数理论作为基础,NoSQL数据库没有统一的理论基础 (答案)
NoSQL数据库和关系数据库各有优缺点,但随着NoSQL的发展,终将取代关系数据库

Flume的数据来源有哪些?
syslogtcp (答案)
thrift (答案)
spooldir (答案)
exec (答案)

sqoop连接mysql查看数据库和表信息,都需要做哪些操作?
mysql的lib下,必须有mysql jdbc连接jar包 (答案)
mysql必须可访问 (答案)
.hadoop相关经常必须启动
mysql必须启动 (答案)

Flume中,sink的输出都有哪些?
elasticsearch (答案)
hdfs (答案)
hbase (答案)
null (答案)

Hive的安装模式有哪些?
伪分布模式
本地模式 (答案)
嵌入模式 (答案)
远程模式 (答案)

Flume中,有哪些channel类型?
file (答案)
仅memory和File
jdbc (答案)
memory (答案)

Hive中HQL语句执行,会经历哪些过程?
执行器 (答案)
解释器 (答案)
优化器 (答案)
编译器 (答案)

关于sqoop版本问题,描述正确的有?
sqoop2还不完善尽量选择sqoop1 (答案)
尽量选择较为稳定的版本 (答案)
可选择Sqoop1.4.6 (答案)
越新的越好选择Sqoop2

以下哪个命令,可以查询Hive表结构?
describe tableName (答案)
show tables
show table tableName
desc tableName (答案)

Kafka的特性
容错性 (答案)
高吞吐量、低延迟 (答案)
高并发 (答案)
可扩展性、持久性、可靠性 (答案)

下列说法正确的是
HiveQL语法与传统的SQL语法很相似 (答案)
Hive本身不存储和处理数据,依赖HDFS存储数据,依赖MapReduce处理数据 (答案)
Hive、HDFS、HBase等工具可以统一部署在一个Hadoop平台上 (答案)
数据仓库Hive不需要借助于HDFS就可以完成数据的存储



判断

sqoop1默认支持将数据从HDFS导入到mysql()
正确 (答案)
错误



填空

Hadoop的创始人
Doug Cutting


同时启动HDFS和YARN的命令
start-all.sh


Hadoop的运行模式
本地模式,伪分布式,完全分布式


大数据的计算模式和使用工具
批处理:MapReduce
流计算:Storm
图计算:Pregel
查询分析计算:Hive


分布式文件系统是谷歌GFS的开源在线


流计算的框架
storm和spark streaming


Flume中,有哪些channel类型?
memory,file,jdbc



简答


大数据的定义及特征
定义:大数据是具有数量巨大,来源多样,生成极快且多变等特征,难以用传统数据体系结构有效处理的包含大量数据集的数据。
特征:多样性,速度快,数据量大,价值密度低。


大数据中的数据单位
Byte、KB、MB、GB、TB、PB、EB、ZB、YB、DB、NB


多副本冗余的优势
容易检查数据错误
加快数据传输速度
保证数据可靠性


HDFS的体系结构
(1)HDFS Client(客户端)

    1)文件分割为Block(块);

    2)与NameNode交互,获取位置信息;

    3)与DataNode交互,读写操作;

    4)提供管理HDFS的命令;

    5)通过命令访问HDFS。

(2)DataNode(Slave从节点-执行者)

    1)存储实际的数据块;

    2)执行数据块的读/写操作。

(3)NameNode(Master主节点-管理者)

    1)管理HDFS的名称空间(保存FsImage和EditLog);

    2)管理数据块(Block)映射信息;

    3)配置副本策略;

    4)处理客户端读写请求。

(4)Secondary NameNode(辅助者)

    1)辅助NameNode,分担其工作量;

    2)定期合并Fsimage和Edits,并推送给NameNode;

    3)在紧急情况下,可辅助恢复NameNode。

数据节点的正确理解
数据节点的数据保存在磁盘中
数据节点用来存储具体的文件内容
数据节点在名称节点的统一调度下进行数据块的创建、删除和复制等操作

数据节点通常只有一个(错误)


MapReduce的计算理念
计算向数据靠拢


Hadoop中JobTracker的工作角色
作业调度,分配任务,监控任务执行进度


shuffle的定义,解释map端的shuffle过程和reduce端的shuffle过程

定义:所谓Shuffle,是指对Map输出结果进行分区、排序、合并等处理,并交给Reduce的过程。

Map端:
①输入数据和执行Map任务
②写入缓存
③溢写(分区、排序和合并)
④文件归并

Reduce端:
①“领取”数据
②归并数据
③把数据输入给Reduce任务


非关系型数据库的分类
键值数据库Redis,列组数据库Hbase,图数据库Neo4j,文档数据库MongoDB


NoSQL的三大理论基石
CAP,BASE(基本可用,软状态,最终一致性),最终一致性


Hbase寻址的三层结构及其作用

第一层,Zookeeper文件,记录了-ROOT-表的位置信息
第二层,-ROOT-表,记录了.META.表的Region位置信息;-ROOT-表只能有一个Region,绝对不会再进行分裂。通过-ROOT-表,就可以访问.META.表中的数据
第三层,.META.表,记录了用户数据表的Region位置信息,.META.表可以有多个Region,


Hbase系统架构及其作用
1. 客户端 •客户端包含访问HBase的接口,同时在缓存中维护着已经访问过的Region位置信息,用来加快后续数据访问过程 
2. Zookeeper服务器 •Zookeeper可以帮助选举出一个Master作为集群的总管,并保证在任何时刻总有唯一一个Master在运行,这就避免了Master的“单点失效”问题。
3. Master •主服务器Master主要负责表和Region的管理工作: –管理用户对表的增加、删除、修改、查询等操作 –实现不同Region服务器之间的负载均衡 –在Region分裂或合并后,负责重新调整Region的分布 –对发生故障失效的Region服务器上的Region进行迁移
 4. Region服务器 –Region服务器是HBase中最核心的模块,负责维护分配给自己的Region,并响应用户的读写请求


Flume,Kafka,Sqoop,Storm四个工具简介
Flume:分布式日志收集系统,用于收集、聚合和移动大量日志数据。
Kafka:高吞吐量的分布式消息队列系统,适用于构建实时数据管道和流处理应用。
Sqoop:数据迁移工具,用于在Hadoop和结构化数据存储之间高效地传输数据。
Storm:一个开源、分布式、实时大数据处理框架。


zookeeper在Kafka中的作用
kafka 将元数据信息维护在zookeeper上
kafka使用zookeeper来实现动态的集群扩展


Hive的系统架构
1.用户接口:Client。提供Hive对外访问的接口。
2.元数据:Metastore。存储元数据包括:表名、表所属的数据库(默认是default)、表的拥有者、列/分区字段、表的类型(是否是外部表)、表的数据所在目录等。
3.Hadoop:使用HDFS进行存储,使用MapReduce进行计算
4.驱动器:Driver。
(1)解析器(SQL Parser):将SQL字符串转换成抽象语法树AST。
(2)编译器(Physical Plan):将AST编译生成逻辑执行计划。
(3)优化器(Query Optimizer):对逻辑执行计划进行优化。
(4)执行器(Execution):把逻辑执行计划转换成可以运行的物理计划。对于Hive来说,就是MR/Spark。


要编写MapReduce程序统计每门课程学生平均成绩。请写出MapReduce程序设计思路。学生的成绩清单格式如下所示,各字段意思分别为学号、性别、数学成绩、语文成绩、计算机成绩,每一行代表一个学生的信息,各字段之间用空白符隔开。

Mapper阶段:
(1)从输入文件中读取每行数据。
(2)每行数据进行分词,提取课程名称和成绩。
(3)对于每条记录,通过context.write(key,value)输出一个键值对。键是课程名称,值是该条记录的成绩。
Reducer阶段:
(1)接收键值对:按照键(即课程名称)进行分组。
(2)计算平均值:对于每个课程名称分组,Reducer遍历该组内的所有成绩值,计算平均值。这通常涉及到对成绩进行累加和计数,然后相除得到平均值。
(3)输出结果:通过context.write(key,value)输出一个键值对,其中键是课程名称,值是计算得到的平均成绩。


按要求写出以下操作命令
(1)为hadoop用户在HDFS中创建用户目录“/user/hadoop”
(2)在HDFS的目录“/user/hadoop”下,创建test文件夹,并查看文件列表
(3)将Linux系统本地的“~/word.txt”文件上传到HDFS的test文件夹中,并查看test文件夹中word.txt文件内容
(4)将HDFS文件夹test复制到Linux系统本地文件系统的“/usr/local/hadoop”目录下
(5)将HDFS文件夹test中的word.txt文件权限修改成只有文件所有者可读写执行,其它用户不可读写执行。

hadoop fs -mkdir -p /user/hadoop
hadoop fs -mkdir /user/hadoop/test
hadoop fs -ls /user/hadoop
hadoop fs -put ~/word.txt /user/hadoop/test
hadoop fs -cat /user/hadoop/test/word.txt
hadoop fs -get /user/hadoop/test /usr/local/hadoop
hadoop fs -chmod 600 /user/hadoop/test/word.txt


-----------------------------------------------------------------

(1)创建新表,表名:student,列族名:infos
create 'student', 'infos'
(2)向student表中插入以下数据。
put 'student', '20230101', 'infos:name', '张三'
put 'student', '20230101', 'infos:age', '20'
put 'student', '20230102', 'infos:name', '李四'
put 'student', '20230102', 'infos:age', '22'
(3)获取student表中RowKey="20230101"行的数据。
get 'student', '20230101'
(4)修改student表中RowKey="20230101"行的name为“王五”。
put 'student', '20230101', 'infos:name', '王五'
(5)统计student表有多少行。
count 'student'
(6)获取student表中所有数据。
scan 'student'
(7)获取student表中RowKey="20230101"行,name列的数据。
get 'student', '20230101', 'infos:name'
(8)查看数据库中有哪些表。
list
(9)修改Student表中的name列名为user。
alter 'student', {NAME=>'infos:name', NEW_NAME=>'infos:user'}
(10)删除student表。
disable 'student'
drop 'student'


-----------------------------------------------------------------

(1)创建教师表。
CREATE TABLE teacher (
id STRING,
name STRING,
age INT,
department STRING,
school STRING
)
row format delimited fields terminated by ','
LINES terminated by '\n'
stored as textfile;
(2)向教师表中导入数据。
LOAD DATA INPATH '/datas/teacher.txt' INTO TABLE teacher;
(3)查询教师表中的所有数据。
SELECT * FROM teacher;
(4)求教师的平均年龄。
SELECT AVG(age) FROM teacher;
(5)求教师的总人数。
SELECT COUNT(*) FROM teacher;
(6)查询所有年龄大于30岁的教师信息。
SELECT * FROM teacher WHERE age > 30;
(7)修改教师表结构,插入新列sex,数据类型boolean。
ALTER TABLE teacher ADD COLUMNS (sex BOOLEAN);
(8)查看当前数据库中包含哪些表。
SHOW TABLES;
(9)查询教师信息按年龄降序排列。
SELECT * FROM teacher ORDER BY age DESC;
(10)删除教师表。
DROP TABLE teacher;


posted @ 2024-06-18 17:15  你这过氧化氢掺水了  阅读(88)  评论(0编辑  收藏  举报